4.5.1 インスタンス文書の読み込み

XBRL2.0に準拠したインスタンス文書を読み込み,XBRL DOMを生成するサンプルコードについて説明します。タクソノミー文書はインスタンス文書内で指定されているため,タクソノミー文書をプログラムで明示的に指定する必要はありません。インスタンス文書のXBRL DOMと同時にタクソノミー文書のXBRL DOMも生成されます。

ここでは,検証時にエラーや警告が発生した場合のレポートを受け取り,出力するエラーハンドラと,検証時にローカルに保存したスキーマ定義を使用させるエンティティリゾルバも実装します。エラーハンドラおよびエンティティリゾルバの詳細については,「4.13 エラーハンドラ」および「4.14 エンティティリゾルバ」を参照してください。

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

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

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

表4-15 インスタンス文書の読み込みで使用するクラスおよびインターフェース

項番使用するクラスおよびインターフェース説明
1com.hitachi.xbrl.XBRLDocumentManagerXBRL文書の入出力や,タクソノミー文書のキャッシュを管理します。
2com.hitachi.xbrl.instance.XBRLInstanceDocumentBuilderFactoryXBRLInstanceDocumentBuilderオブジェクトを生成するためのAPIを定義します。
3com.hitachi.xbrl.instance.XBRLInstanceDocumentBuilderインスタンス文書からXBRLInstanceDocumentオブジェクトを取得するためのAPIを定義します。
4com.hitachi.xbrl.instance.XBRLInstanceDocumentインスタンス文書全体を表します。

(2) サンプルコード

インスタンス文書を読み込み,XBRL DOMを生成するコードは次のとおりです。

// 初期化
XBRLDocumentManager.init();
XBRLDocumentManager dm = XBRLDocumentManager.getInstance();

// XBRLInstanceDocumentBuilderFactoryの作成
XBRLInstanceDocumentBuilderFactory ibf =
   dm.newInstanceDocumentBuilderFactory();

// XBRLInstanceDocumentBuilderの作成
XBRLInstanceDocumentBuilder ib = ibf.newInstanceDocumentBuilder();

// エラーハンドラの設定
SampleErrorHandler eh = new SampleErrorHandler();
ib.setErrorHandler(eh);

// エンティティリゾルバの設定
SampleEntityResolver er = new SampleEntityResolver();
ib.setEntityResolver(er);

// インスタンス文書のパース
String filename = "input/sample_instance1.xml";
XBRLInstanceDocument idoc = ib.parse(new File(filename));

System.out.println("インスタンス文書のパースに成功しました。");