uCosminexus Business Reporting Processor 開発者ガイド

[目次][用語][索引][前へ][次へ]

4.4.1 インスタンス文書の新規作成

XBRL2.0に準拠したインスタンス文書を新規に作成するサンプルコードについて説明します。

インスタンス文書の新規作成では,まずスキーマとなるタクソノミー文書のXBRL DOMを生成します。生成したタクソノミー文書のXBRL DOMを基に,インスタンス文書のXBRL DOMを生成します。また,名前空間宣言,およびxsi:schemaLocation属性を設定します。

<この項の構成>
(1) 使用するクラスおよびインターフェース
(2) サンプルコード

(1) 使用するクラスおよびインターフェース

インスタンス文書の新規作成で使用するクラスおよびインターフェースを次の表に示します。

表4-5 インスタンス文書の新規作成で使用するクラスおよびインターフェース

項番 使用するクラスおよびインターフェース 説明
1 com.hitachi.xbrl.XBRLDocumentManager XBRL文書の入出力や,タクソノミー文書のキャッシュを管理します。
2 com.hitachi.xbrl.taxonomy.XBRLTaxonomyDocumentBuilderFactory XBRLTaxonomyDocumentBuilderオブジェクトを生成するためのAPIを定義します。
3 com.hitachi.xbrl.taxonomy.XBRLTaxonomyDocumentBuilder タクソノミー文書からXBRLTaxonomyDocumentオブジェクトを取得するためのAPIを定義します。
4 com.hitachi.xbrl.taxonomy.XBRLTaxonomyDocument タクソノミー文書全体を表します。
5 com.hitachi.xbrl.instance.XBRLInstanceDocumentBuilderFactory XBRLInstanceDocumentBuilderオブジェクトを生成するためのAPIを定義します。
6 com.hitachi.xbrl.instance.XBRLInstanceDocumentBuilder インスタンス文書からXBRLInstanceDocumentオブジェクトを取得するためのAPIを定義します。
7 com.hitachi.xbrl.instance.XBRLInstanceDocument インスタンス文書全体を表します。
8 com.hitachi.xbrl.util.XBRLNamespaceDeclaration 名前空間接頭辞とそれに対応する名前空間URIの組を管理します。
9 com.hitachi.xbrl.util.XBRLSchemaLocation xsi:schemaLocation属性に指定する名前空間URIとスキーマ文書の位置を示すURIの組を管理します。

(2) サンプルコード

インスタンス文書の新規作成のコードは次のとおりです。

/*
 * 新たなインスタンス文書作成の前準備
 */
 
// 初期化
XBRLDocumentManager.init();
XBRLDocumentManager dm = XBRLDocumentManager.getInstance();
 
// XBRLTaxonomyDocumentBuilderFactoryの作成
XBRLTaxonomyDocumentBuilderFactory tbf =
    dm.newTaxonomyDocumentBuilderFactory();
 
// XBRLTaxonomyDocumentBuilderの作成
XBRLTaxonomyDocumentBuilder tb = tbf.newTaxonomyDocumentBuilder();
 
// エラーハンドラの設定
SampleErrorHandler eh = new SampleErrorHandler();
tb.setErrorHandler(eh);
 
// エンティティリゾルバの設定
SampleEntityResolver er = new SampleEntityResolver();
tb.setEntityResolver(er);
 
// タクソノミー文書のパース
String filename = "input/sample_taxonomy1.xsd";
File[] taxonomy = { new File(filename) };
XBRLTaxonomyDocument tdoc = tb.parse(taxonomy);
 
System.out.println("タクソノミー文書のパースに成功しました。");
 
/*
 * ここから新たなインスタンス文書の作成
 */
 
// XBRLInstanceDocumentBuilderFactoryの作成
XBRLInstanceDocumentBuilderFactory ibf =
    dm.newInstanceDocumentBuilderFactory();
 
// XBRLInstanceDocumentBuilderの作成
XBRLInstanceDocumentBuilder ib = ibf.newInstanceDocumentBuilder();
 
// 新たなインスタンス文書の作成
XBRLInstanceDocument idoc = ib.newInstanceDocument(tdoc);
 
// 名前空間宣言 - hi - の作成
// (xmlns:hi="http://www.hitachi.com/2003/XBRL")
XBRLNamespaceDeclaration nd1 =
    new XBRLNamespaceDeclaration(
        "hi",
        "http://www.hitachi.com/2003/XBRL");
 
// 名前空間宣言 - iso4217 - の作成
// (xmlns:iso4217="http://www.xbrl.org/2003/iso4217")
XBRLNamespaceDeclaration iso =
    new XBRLNamespaceDeclaration(
        "iso4217",
        "http://www.xbrl.org/2003/iso4217");
 
// xsi:schemaLocation属性値の作成
XBRLSchemaLocation sl =
    new XBRLSchemaLocation(
        "http://www.hitachi.com/2003/XBRL",
        "sample_taxonomy1.xsd");
 
// インスタンス文書に名前空間宣言とxsi:schemaLocation属性値を追加
idoc.addNamespaceDeclaration(nd1);
idoc.addNamespaceDeclaration(iso);
idoc.addSchemaLocation(sl);