2.4.3 インスタンス文書の形式の検証

XMLスキーマ検証,リンクの検証に加え,uCosminexus Business Reporting Processorではインスタンス文書として正しいかをチェックします。ここでは代表的なチェック内容について説明します。より詳細なチェック内容については,「5. 取り扱えるXBRL文書とデータ型」を参照してください。

<この項の構成>
(1) DTSの基点となる位置情報の有無の検証
(2) コンテキスト要素(context)および単位要素(unit)の検証
(3) 脚注リンクの構文の検証
(4) リンク構造の検証
(5) タプルの検証

(1) DTSの基点となる位置情報の有無の検証

インスタンス文書では,DTSの基点となる位置情報がないとDTSを特定できないため,リンクをたどることができません。そのため,uCosminexus Business Reporting Processorでは,DTSの基点となる位置情報がインスタンス文書に指定されているかを確認します。指定されていないインスタンス文書は処理できません。

DTSの基点となる位置情報の詳細については,「2.5 DTSの読み込み」を参照してください。

(2) コンテキスト要素(context)および単位要素(unit)の検証

あるアイテムはあるコンテキストに属している必要があります。uCosminexus Business Reporting Processorでは,アイテム要素が参照するコンテキスト要素が,妥当であるかどうかをチェックします。チェック内容は,XBRLのバージョンによって異なります。

(a) XBRL2.0の場合

XBRL2.0の場合,コンテキスト要素は,数値コンテキストまたは非数値コンテキストに分かれます。コンテキストとアイテムの従属関係は,コンテキスト要素のid属性(xsd:ID型)と,アイテム要素のnumericContext属性値またはnonNumericContext属性値(xsd:IDREF型)とで関係づけられます。uCosminexus Business Reporting Processorは,アイテムの型と,アイテムが属するコンテキストの型が一致するかどうかを確認します。

例えば,アイテム要素のデータ型が数値型であるのに対して,アイテム要素のnumericContext属性値で指し示すコンテキスト要素が<nonNumericContext>要素であっても,XMLスキーマ検証ではチェックできません。この場合,uCosminexus Business Reporting Processorがチェックして,アイテム要素が参照するコンテキスト要素が<numericContext>要素でないというエラーを通知します。

XBRL2.0の場合のコンテキスト検証を次の図に示します。

図2-4 XBRL2.0の場合のコンテキスト検証

[図データ]

(b) XBRL2.1の場合

XBRL2.1の場合,コンテキスト要素は<xbrli:context>要素に統合され,新しく<xbrli:unit>要素が追加されました。そのため,アイテム要素が参照する<xbrli:context>要素および<xbrli:unit>要素が妥当であるかをチェックします。

完全な妥当性検証では,アイテムの単位を示す<xbrli:measure>要素の値(xsd:QName型)が名前空間「http://www.xbrl.org/2003/iso4217」である場合,ローカルパートは妥当なISO4217通貨コードである必要があります。uCosminexus Business Reporting Processorのデフォルトの検証では,java.util.Currencyクラスを使ってローカルパートがISO4217に準拠した通貨コードかをチェックします。そのため,チェックできる通貨コードはSDKのバージョンに依存します。

デフォルトの検証で不十分な場合には,ユーザー独自の通貨コード一覧を指定して,この一覧に含まれている通貨コードであるかどうか検証します。通貨コード一覧の指定の方法については,「4.16.2(17) cbrp.parse.validate.full-checking.iso4217」を参照してください。

(3) 脚注リンクの構文の検証

インスタンス文書では,拡張リンクの一つである脚注リンクを記述できます。インスタンス文書でも,タクソノミー文書と同様に,拡張リンク要素内に含まれるはずのない要素がないかをチェックします。

脚注リンクの構文規則を次の表に示します。

表2-2 脚注リンクの構文規則

要素名日本語名規則
必要な要素xlink:type属性値
footnoteLink脚注リンク<link:loc>要素locator
<link:footnote>要素resource
<link:footnoteArc>要素arc

注※ 拡張リンク要素のxlink:type属性値には,extendedを指定します。


(4) リンク構造の検証

インスタンス文書では,タクソノミー文書と同様に単純リンクを記述できます。単純リンクが記述されていた場合,タクソノミー文書で定義されているリンク構造を,さらに上書きし検証する必要があります。

そのため,インスタンス文書でも,タクソノミー文書と同様のリンク構造の検証を実行します。

(5) タプルの検証

通常の検証では,タプルの定義についてだけ検証します。完全な妥当性検証では,次に示す名前空間を持つ属性がタプルに記述されていないかについても検証します。