C#を使用して脚注リンクと役割参照オブジェクトをXBRLに追加する

前の投稿では、C#を使用してスキーマ参照、コンテキスト、ユニット、およびファクトオブジェクトをXBRLインスタンスドキュメントに追加する方法を学びました。この記事では、C#を使用して脚注リンクとロール参照オブジェクトをXBRLに追加する方法を学習します。

この記事では、次のトピックについて説明します。

XBRLインスタンスドキュメントにロール参照オブジェクトとアークロール参照オブジェクトを追加するには、Aspose.Finance for .NETAPIを使用します。これにより、XBRLインスタンスの作成、解析、およびXBRLまたはiXBRLファイルの検証が可能になります。 APIのXbrlDocumentクラスは、1つ以上のXBRLインスタンスを含むXBRLドキュメントを表します。 XBRLインスタンスはXMLフラグメントであり、ルート要素にはXBRLタグが付いています。 XbrlInstanceクラスは、XBRLインスタンスを操作するためのさまざまなメソッドとプロパティを提供します。 FootnoteLinkクラスには、XBRLインスタンス内のファクト間の関係を記述するためのロケーター、リソース、およびアークが含まれています。 APIは、XBRLインスタンスの脚注リンクで使用されるカスタムロール属性値の定義を参照できるRoleReferenceクラスを提供します。同様に、ArcRoleReferenceクラスを使用すると、リンクベースまたはXBRLインスタンスで使用されるカスタムアークロール値を解決できます。

APIのDLLをダウンロードするか、NuGetを使用してインストールしてください。

PM> Install-Package Aspose.Finance

以下の手順に従って、XBRLインスタンスドキュメントに脚注リンクを追加できます。

  1. まず、XbrlDocumentクラスのインスタンスを作成します。
  2. XbrlDocumentオブジェクトのインスタンスに新しいXBRLインスタンスを追加します。
  3. XbrlInstanceオブジェクトのスキーマ参照に新しいスキーマ参照を追加します。
  4. SchemaRefCollectionからインデックスでSchemaRefを取得します。
  5. Contextインスタンスを初期化し、Contextobjectsコレクションに追加します。
  6. 脚注インスタンスを定義し、そのラベルとテキストを設定します。
  7. Locクラスインスタンスを使用してロケータータイプを初期化します。
  8. FootnoteArcを、ロケーターラベルと脚注ラベルを引数として定義します。
  9. FootnoteLinkクラスのインスタンスを作成します。
  10. Footnote、Locator、およびFootnoteArcを関連するFootnoteLinkコレクションに追加します。 11.その後、FootnoteLinkをFootnoteLinksコレクションに追加します。 12.最後に、XbrlDocument.Save()メソッドを使用してXBRLファイルを保存します。出力ファイルのパスを引数として取ります。

次のコードサンプルは、C#を使用してXBRLインスタンスドキュメントに脚注リンクを追加する方法を示しています。

// XbrlDocumentクラスのインスタンスを作成します
XbrlDocument document = new XbrlDocument();

// XbrlInstancesを取得する
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// XbrlInstanceを追加します
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// スキーマ参照を定義する
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"C:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");
SchemaRef schema = schemaRefs[0];

// コンテキストを定義する
ContextPeriod contextPeriod = new ContextPeriod(DateTime.Parse("2020-01-01"), DateTime.Parse("2020-02-10"));
ContextEntity contextEntity = new ContextEntity("exampleIdentifierScheme", "exampleIdentifier");
Context context = new Context(contextPeriod, contextEntity);
context.Id = "cd1";
xbrlInstance.Contexts.Add(context);

// 脚注を定義する
Footnote footnote = new Footnote("footnote1");
footnote.Text = "Including the effects of the merger.";

// ロケーターを定義する
Loc loc = new Loc("#cd1", "fact1");

// 脚注を定義するArc
FootnoteArc footnoteArc = new FootnoteArc(loc.Label, footnote.Label);

// 脚注を定義する link
FootnoteLink footnoteLink = new FootnoteLink();
footnoteLink.Footnotes.Add(footnote);
footnoteLink.Locators.Add(loc);
footnoteLink.FootnoteArcs.Add(footnoteArc);
xbrlInstance.FootnoteLinks.Add(footnoteLink);

// ドキュメントを保存する
document.Save(@"C:\Files\Finance\document6.xbrl");

C#を使用してXBRLに役割参照オブジェクトを追加する

以下の手順に従って、XBRLインスタンスドキュメントにロール参照を追加できます。

  1. まず、XbrlDocumentクラスのインスタンスを作成します。
  2. 次に、新しいXBRLインスタンスをXbrlDocumentオブジェクトのインスタンスに追加します。
  3. 次に、XbrlInstanceオブジェクトのスキーマ参照に新しいスキーマ参照を追加します。
  4. SchemaRefCollectionからインデックスでSchemaRefを取得します。
  5. 次に、GetRoleTypeByURI()メソッドからRoleTypeを取得します。
  6. 次に、RoleTypeオブジェクトを引数としてRoleReferenceクラスのインスタンスを作成します。
  7. その後、RoleReferenceをRoleReferenceオブジェクトコレクションに追加します。
  8. 最後に、XbrlDocument.Save()メソッドを使用してXBRLファイルを保存します。出力ファイルのパスを引数として取ります。

次のコードサンプルは、C#を使用してXBRLインスタンスドキュメントにロール参照を追加する方法を示しています。

// XbrlDocumentクラスのインスタンスを作成します
XbrlDocument document = new XbrlDocument();

// XbrlInstancesを取得する
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// XbrlInstanceを追加します
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// スキーマ参照を定義する
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"C:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");
SchemaRef schema = schemaRefs[0];

// 役割参照の追加
RoleType roleType = schema.GetRoleTypeByURI("http://abc.com/role/link1");
if (roleType != null)
{
    RoleReference roleReference = new RoleReference(roleType);
    xbrlInstance.RoleReferences.Add(roleReference);
}

// ドキュメントを保存する
document.Save(@"C:\Files\Finance\document7.xbrl");

C#を使用してアークロール参照オブジェクトをXBRLに追加する

以下の手順に従って、XBRLインスタンスドキュメントにArcロール参照を追加できます。

  1. まず、XbrlDocumentクラスのインスタンスを作成します。
  2. 次に、新しいXBRLインスタンスをXbrlDocumentオブジェクトのインスタンスに追加します。
  3. 次に、XbrlInstanceオブジェクトのスキーマ参照に新しいスキーマ参照を追加します。
  4. 次に、SchemaRefCollectionからインデックスでSchemaRefを取得します。
  5. 次に、GetArcroleTypeByURI()メソッドからArcRoleTypeを取得します。
  6. 次に、ArcRoleTypeオブジェクトを引数としてArcRoleReferenceクラスのインスタンスを作成します。
  7. その後、ArcRoleReferenceをArcRoleReferenceオブジェクトコレクションに追加します。
  8. 最後に、XbrlDocument.Save()メソッドを使用してXBRLファイルを保存します。出力ファイルのパスを引数として取ります。

次のコードサンプルは、C#を使用してXBRLインスタンスドキュメントにアークロール参照を追加する方法を示しています。

// XbrlDocumentクラスのインスタンスを作成します
XbrlDocument document = new XbrlDocument();

// XbrlInstancesを取得する
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// XbrlInstanceを追加します
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// スキーマ参照を定義する
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"C:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");
SchemaRef schema = schemaRefs[0];

// アークロールリファレンスの追加
ArcroleType arcroleType = schema.GetArcroleTypeByURI("http://abc.com/arcrole/footnote-test");
if (arcroleType != null)
{
    ArcroleReference arcroleReference = new ArcroleReference(arcroleType);
    xbrlInstance.ArcroleReferences.Add(arcroleReference);
}

// ドキュメントを保存する
document.Save(@"C:\Files\Finance\document8.xbrl");

無料ライセンスを取得する

無料の一時ライセンスを取得して、評価の制限なしにライブラリを試すことができます。

結論

この記事では、次の方法を学びました。

  • C#を使用してXBRLドキュメントを作成します。
  • プログラムでXBRLオブジェクトへの脚注リンクを使用して脚注と脚注アークを追加します。
  • C#のXBRLにロールとアークロールの参照を追加します。

さらに、ドキュメントを使用して、Aspose.Finance for.NET APIについて詳しく知ることができます。あいまいな点がありましたら、フォーラムまでお気軽にお問い合わせください。

関連項目