3.2.1 インスタンス文書の出力フォーマット

ここでは,uCosminexus Business Reporting Processorがインスタンス文書をファイルまたはストリームに出力する場合の,出力フォーマットを示します。XBRL Internationalで提供されるスキーマに従う内容は,このマニュアルでは説明しません。

<この項の構成>
(1) 名前空間宣言
(2) 要素や属性の出力順序
(3) タプル型要素(tuple)の子要素
(4) 脚注リンク
(5) グループ要素(group)(XBRL2.0の場合)
(6) アイテム(item)またはタプル(tuple)の出力順序(XBRL2.0の場合)

(1) 名前空間宣言

ここでは,インスタンス文書を新規に作成する場合と,既存のインスタンス文書を編集する場合の,名前空間宣言の出力について説明します。

インスタンス文書を新規に作成する場合
名前空間宣言は,uCosminexus Business Reporting Processorが自動的に標準値を設定します。標準値以外の名前空間宣言を記述するには,APIを使用して追加します。自動設定された標準値の名前空間宣言でも,APIを使用して名前空間宣言を削除したり変更したりできます。
設定した名前空間と名前空間接頭辞は,インスタンス文書出力時にルート要素に宣言されます。
既存のインスタンス文書を編集する場合
既存のインスタンス文書を編集する場合,要素に指定されている名前空間宣言はルート要素に宣言し直されます。これを名前空間の正規化と呼びます。名前空間の正規化の詳細については,「3.4 名前空間の正規化」を参照してください。

(2) 要素や属性の出力順序

インスタンス文書をファイルに出力する場合,XBRL DOMを操作して作成した,メモリ上のW3C DOMのツリー構造に従って,出力します。インスタンス文書を参照するだけの場合も,インスタンス文書をXBRL DOMへ展開するときのパースオプションによっては,CDATAノードがTextノードに展開されたW3C DOMとなります。ノードの位置や内容は同じでも,ノードのデータ形式がCDATAかTextかによって,バイナリレベルでは差異が生じます。加えて,要素の各属性については,W3C DOMの実装に依存しており,出現順序が変更されるおそれもあります。

そのため,インスタンス文書をいったんXBRL DOMに展開し出力(保存)したインスタンス文書と,展開前のインスタンス文書とのバイナリ互換は保証できません。ただし,XBRL文書としての意味や構造を変えるものではありません。

(3) タプル型要素(tuple)の子要素

タプル型要素の子要素には,アイテム型要素またはタプル型要素を含むことができます。タクソノミー文書での定義によっては,出現順序や必須要素などを指定できます。

インスタンス文書をファイルに出力する場合,XBRL DOMを操作して作成した,メモリ上のW3C DOMのツリー構造に従い,出力します。このため,子要素を含むタプル型要素を定義したタクソノミー文書を使用する場合は,ユーザーが要素の出現順序や必須要素を意識して,XBRL DOMを操作する必要があります。

(4) 脚注リンク

脚注リンクは,次の要素で構成されます。

脚注リンクの出力について,次の点に注意してください。

(5) グループ要素(group)(XBRL2.0の場合)

XBRL2.0の場合,<xbrli:group>要素は,ルート要素以外でも,任意のコンテナ要素として使用できます。uCosminexus Business Reporting Processorは,既存インスタンス文書のルート要素の子要素として記述されている<xbrli:group>要素をそのまま出力します。W3C DOMから削除されません。

(6) アイテム(item)またはタプル(tuple)の出力順序(XBRL2.0の場合)

インスタンス文書に,アイテムやタプルを新規に追加する場合,ルート要素の子要素として追加されます。すでにアイテムやタプルがインスタンス文書内にある場合,新規に追加する要素は,すでにある要素の前後に追加できます。

ルート要素ではない<xbrli:group>要素の子要素であるアイテムやタプルの前後に,アイテムやタプルを追加した場合は,それらの親要素である<xbrli:group>要素の子要素として追加されます。また,ルート要素でない<xbrli:group>要素から,子要素であるアイテムやタプルをすべて削除した場合,削除後にその<xbrli:group>要素の子要素として,再度アイテムやタプルを追加できません。