6. XBRLに飛び込む
前の章では、XBRLが何であり、それで何ができるかを見つけるために、 指で水に触れました。 この豊富な知識により、最終章でこのXBRLに完全に浸ることができます。 分類法とレポートを作成する基本的な手順を説明し、XBRLが実際にどのように見えるかを示します。
この章では、企業の人口統計について既に持っている例を使用して、分類法とそれに関連するレポートを作成するプロセスを示します。 実生活と同様に、私たちは最初からすべてを正しく行うことはできないので、その形成のプロセスはいくつかの異なるバージョンに分割されます。 ほとんどの実際の分類法の開発には、数週間から数ヶ月(さらには数年)かかります。
注:定義リンクベースまたは参照リンクベースは作成しません。 実際には、少なくとも1つを作成して概念を詳細に説明できますが、この章の目的には必要ありません。 ラベルリンクベースデータベースとプレゼンテーションリンクベースデータベースをマスターしたら、定義データベースとリソースデータベースを理解するのに問題はないはずです。
6.1。 降りる
この例の簡単な分類から始めましょう。
6.1.1。 分類スキーマ
まず、分類法を含むドキュメントが必要です。
ドキュメント名に分類法の作成日を使用して、異なる時間に作成された分類法のバージョンを簡単に区別することをお勧めします。
2006年の初日に小さなプロジェクトを開始すると想像してみましょう( 翻訳者のメモ:このパンフレットは10年以上前です )。次に、「sample-2006-01-01.xsd」のように分類法を使用してドキュメントの最初のバージョンに名前を付けます。 少しずつ分類して、段階的に分類法を作成します。 この章の各セクションには1日かかることに同意します(バージョン管理の便宜上)。
6.1.1.1。 スキーマルート
他のXMLスキーマと同様に、ルートschema
要素から始めschema
。
<schema targetNamespace="http://www.sample.com/2006-01-01" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sample="http://www.sample.com/2006-01-01"> ... </schema>
ルート要素内の属性に注意してください。
-
targetNameSpace
スキーマ要素の名前空間を定義します。 分類法または関連レポートの処理に使用されるスキーマサポートソフトウェアは、この名前空間を使用して、スキーマまたはその一部を参照する必要があります。
残りの属性は、回路要素のプレフィックスを定義します。 接頭辞は、要素を定義する名前空間を示します。
-
xmlns
XML Schema名前空間-プレフィックスなしのすべての要素のデフォルト値です。 -
xmlns:xbrli
XBRLレポート名前空間(インスタンス); -
xmlns:link
XBRL Link名前空間。 -
xmlns:xlink
XML Schema XLink名前空間。 -
xmlns:sample
最後に、ターゲット名前空間にある定義済みの要素には、接頭辞sample
が付きsample
。
以下のすべてのドキュメントは、ルート要素に同じ名前空間定義属性を持っています。 新しいタイプの要素ごとに個別に説明しません。
XBRL仕様には、いくつかのスキームが含まれています。
- XBRLインスタンス
事実と概念の宣言に必要な定義(タイプ、属性、要素)が含まれています。- XBRLリンクベース
分類法の一部(またはリンクのデータベース)から別の部分へのリンクを宣言するために必要な定義が含まれています。- XBRL XLink
リンクベース自体を宣言するために使用され、独自のXBRL仕様拡張を作成するときにこの名前空間が必要になります。- W3C XLink
XMLリンクの名前空間。 W3Cはこのスキーマを提供しないが、XBRL仕様には必要であるため、仕様のこの部分のスキーマはxbrl.orgにあることに注意してください。
6.1.1.2。 レポートスキーマのインポート
次の手順では、XBRLレポートスキーマをインポートして、その定義を要素定義で使用できるようにします。
<import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" />
import
要素は、名前空間によって識別されるスキーマを正確に識別する必要があります。schemaLocation
属性のURIによって参照されるスキーマドキュメントは、実際に存在する必要があります。
XBRLレポートスキーマはXBRL Linkbaseスキーマをインポートし、次にXBRL XLinkおよびW3C XLinkスキーマをインポートします。 これは、これらのスキームを自分でインポートする必要がないことを意味します。
W3C XML Schema名前空間は標準化されており、スキーマサポートソフトウェアによって自動的に認識されます。
6.1.1.3。 コンセプト
分類法の概念は、スキーマの要素として定義されます。 この例から、以前に次の概念を受け取りました。
名 | 種類 |
---|---|
nr_employees_total | 非負の整数アイテム |
nr_employees_male | 非負の整数アイテム |
nr_employees_female | 非負の整数アイテム |
nr_employees_age_up_to_20 | 非負の整数アイテム |
nr_employees_age_21_to_40 | 非負の整数アイテム |
nr_employees_age_41_and_up | 非負の整数アイテム |
従業員の総数を反映する概念は、次のように定義されます。
<element id="sample_nr_employees_total" name="nr_employees_total" xbrli:periodType="instant" type="xbrli:nonNegativeIntegerItemType" substitutionGroup="xbrli:item" nillable="true" />
コンセプトの属性を分析しましょう:
-
id
この識別子は、リンクベースなどの他のドキュメントの概念を参照するために使用されます。 回路内で一意でなければなりません。 コンセプトIDには、プレフィックス 'sample_'を使用してグローバルに一意にしました。 -
name
この属性で指定された名前は、分類法およびレポート内の概念を識別します。 分類内で一意である必要があります。 -
xbrli:periodType
各コンセプトには、期間タイプが関連付けられている必要があります。 この例では、従業員数は期間の開始時と終了時、つまり日付に示されています 。 このような概念の場合、instant
値instant
ます。 -
type
従業員数は整数です。 パートタイムの従業員も、割合ではなく単位と見なされます。 負の数の従業員は存在できないため、XBRLレポートスキーマで定義されたnonNegativeIntegerItemType
タイプを使用します。 -
substitutionGroup
これは単純な概念であり、タプルではないため、ここではXBRLレポートスキーマで定義されたitem
の値を指定します。 -
nillable
概念を常にnillable
として示すことをお勧めします。これにより、空の事実を伝えることができます。
他の概念も同様に定義されていますが、それぞれに独自のid
およびname
属性値があります。
また、レポートのプレゼンテーション階層のルートとして機能する抽象概念も必要です。 (任意に)タイプxbrli:stringItemType
ます。 アブストラクトは事実を伝えるために使用されないため、XBRL仕様の要件を満たす任意のタイプを指定できます。
<element id="sample_presentation_root" name="presentation_root" xbrli:periodType="instant" type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true" nillable="true" />
抽象概念には、値true
abstract
属性が必要true
。
6.1.1.4。 リンクデータベースへのリンク
完全な分類またはレポートを表示する場合は、リンクデータベースの形式で概念に関する追加情報を提供する必要があります。 ラベルのベースとプレゼンテーションのベースの2つから始めましょう。
リンクベースとの接続は、 annotation
要素内にあるappinfo
要素で示されます。
<annotation> <appinfo> <link:linkbaseRef xlink:type="simple" xlink:href="sample-2006-01-01-label.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" /> <link:linkbaseRef xlink:type="simple" xlink:href="sample-2006-01-01-presentation.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" /> </appinfo> </annotation>
リンクデータベースには次の属性があります。
-
xlink:type
ここでsimple
常にsimple
示されます。 -
xlink:href
この属性は、データベース自体へのリンクを示します。 この例では、ラベルとプレゼンテーションのデータベースを参照しますが、これについては後で説明します。 -
xlink:role
ロール属性は、リンクベースのタイプを定義します。 XBRL Linkingスキーマで定義されたlabelLinkbaseRef
およびpresentationLinkbaseRef
値を使用します。 -
xlink:arcrole
リンクデータベースに対するアークの役割は、XLinkで定義されたlinkbase
値によって常に示されます。
6.1.2。 ショートカットリンクベース
ショートカットデータベースには、3種類の要素が含まれています。
- ラベル付けされた分類概念を定義するためのロケーター
- ラベル自体を含むリソース
- (ロケーターを介して)コンセプトをラベルに接続するラベルアーク。
これらの要素はlabelLink
要素内に配置されます。
<?xml version="1.0" encoding="UTF-8"?> <linkbase xmlns="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xsi:schemaLocation="http://www.xbrl.org/2003/instance http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sample="http://www.sample.com/2006-01-01"> <labelLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link"> ... </labelLink> </linkbase>
labelLink
要素には次の属性があります。
-
xlink:type
extended
常にここに示されます。 -
xlink:role
リンクの場合、link
ロールがデフォルトで使用されます。
6.1.2.1。 ロケーター
ロケーターはloc
要素に配置されます。 それらは、関連する分類法の概念を示しています。
<loc xlink:type="locator" xlink:href="sample-2006-01-01.xsd#sample_nr_employees_total" xlink:label="concept_nr_employees_total" />
-
xlink:type
locator
タイプは、常にloc
要素タイプによって指定されます。つまり、ロケーター(概念の)として使用されます。 -
xlink:href
コンセプトの実際の場所を示します。 ここではid
を使用していることに注意してください。 -
xlink:label
ロケーターには、リンクデータベース内でアクセスするためのショートカットが割り当てられます。 ラベル値として、接頭辞「concept_」が付いたコンセプトIDを使用します。
6.1.2.2。 ショートカット
ラベルを定義するには、 label
要素を使用します。
<label xlink:type="resource" xlink:label="label_nr_employees_total" xlink:role="http://www.xbrl.org/2003/role/label" xml:lang="en">Total number employees</label> <label xlink:type="resource" xlink:label="label_nr_employees_total" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xml:lang="en">Total</label> <label xlink:type="resource" xlink:label="label_nr_employees_total" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xml:lang="en">Total number of employees</label>
-
xlink:type
タイプは常に値 'resource'であり、ショートカットがローカルリンクベースリソースであることを示します。 -
xlink:label
ロケーターと同様に、label
属性の値により、リンクデータベース内のラベルにアクセスできます。 上記の各ラベルは同じ概念に関連付けられており、すべてのラベルが同じ属性値を使用していることに注意してください。 これにより、概念からそのショートカットへの1対多の関係を使用できます。 この例では、これらは「nr_employees_total」の概念に対する3種類のラベルです。 -
xlink:role
役割は、使用されるラベルのタイプを決定します。 XBRL仕様は、多数の事前定義されたロールを提供します。 例では、通常のショートカット、拡張されたショートカットの3つのタイプを使用します。 分類法またはXBRLレポートを操作するアプリケーションを使用すると、最も適切なタイプのラベルを選択できます。 プレゼンテーションリンクデータベースは、好みのショートカットビューを示すこともできます。 -
xml:lang
この属性は、ラベルの言語を示します。 この例では、英語のみを使用していますが、リンクデータベースの任意の言語のショートカットを含めることができます。
6.1.2.3。 ショートカットアーク
最後に、概念とショートカットリソースのロケーターを定義した後、ショートカットアークを使用してそれらをリンクできます。
<labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="concept_nr_employees_total" xlink:to="label_nr_employees_total" />
-
xlink:type
タイプは常に「arc」、つまりアーク( だれが考えたでしょうか )を示します。 -
xlink:arcrole
アークの役割により、接続のタイプが決まります。 ラベルの場合、「概念ラベル」が指定されます。これは、概念とラベルの間の弧です。 -
xlink:from
アークの側面の1つ、この場合は概念を示します。 この属性の値としてロケーターlabel
を使用します。 -
xlink:to
ラベルリソースを使用して、アークの2番目の側面であるラベルリソースを示します。
3つの異なるラベルに同じlabel
を使用したため、アークはコンセプトとそのラベルの間に1対多の関係を形成します。
6.1.3。 プレゼンテーションリンクベース
プレゼンテーションには2種類の要素が含まれます。
- プレゼンテーション階層で使用される分類概念のロケーター。
- ロケーターを介して概念を相互に接続する表現の弧。
それらはすべてpresentationLink
要素内にあります。
<?xml version="1.0" encoding="utf-8"?> <linkbase xmlns="http://www.xbrl.org/2003/linkbase" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xbrli="http://www.xbrl.org/2003/instance" xsi:schemaLocation="http://www.xbrl.org/2003/instance http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > <presentationLink xlink:type="extended" xlink:role="http://www.xbrl.org/2003/role/link" > ... </presentationLink> </linkbase>
6.1.3.1。 ロケーター
ここでは、すべてがショートカットリンクのデータベースに似ているため、繰り返しません。
6.1.3.2。 プレゼンテーションアーク
プレゼンテーションアークは、概念を親子階層( ツリー )にリンクします。
<presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="concept_presentation_root" xlink:to="concept_nr_employees_total" order="1" priority="0" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label" /> <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="concept_presentation_root" xlink:to="concept_nr_employees_male" order="2" priority="0" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" /> <presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="concept_presentation_root" xlink:to="concept_nr_employees_female" order="3" priority="0" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel" /> ...
-
xlink:type
前と同じように、「アーク」。 -
xlink:arcrole
プレゼンテーションアークの役割は「親子」であり、プレゼンテーションリンクベースが階層構造であることを示します。 -
xlink:from
ロケーターを介して親階層の概念を指します。 この例では、適切な概念がなかったため、階層のルートには「presentation_root」という抽象概念を使用します。 -
xlink:to
ロケーターを介して子階層の概念を指します。 この例では、すべての概念は「presentation_root」のルート概念の下にあります。 -
order
この属性は、共通の親の下にある子の順序を設定します。 -
priority
リンクベースの再定義に使用されます。 この例では、(今のところ)これを行っていません。 -
use
optional
を指定することoptional
、概念がプレゼンテーションネットワークの一部になることができることを意味します。 この値を示すことは一般的な習慣ですが、属性がない場合はデフォルトで使用されます。 -
preferredLabel
前に、ショートカットリンクデータベースにいくつかの種類のショートカットを作成しました。 ここでは、子(to)アークコンセプトの優先ショートカットタイプがプレゼンテーションリンクデータベースでどのように示されるかを確認します。
注: preferredLabel
属性は子概念に対してのみ指定できるため、プレゼンテーション階層のルート要素に優先ラベルビューを含めることはできません。
6.1.4。 XBRLレポート
分類法を作成したら、それを使用してレポートを作成できます。
XBRLレポートドキュメントには、次のタイプの要素が含まれます。
- 分類法への参照。
- 事実のコンテキスト。
- 数値的事実の単位。
- 事実自体の意味。
これらの要素はすべて、 xbrl
要素内に配置されます。
<?xml version="1.0" encoding="utf-8"?> <xbrl xmlns="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:s="http://www.sample.com/2006-01-01"> ... </xbrl>
6.1.4.1。 分類法スキーマへのリンク
スキーマへの参照は、 schemaRef
要素で示されます。
<link:schemaRef xlink:type="simple" xlink:href="http://www.sample.com/2006-01-01/sample-2006-01-01.xsd" />
-
xlink:type
接続のタイプ「単純」を指定します。 -
xlink:href
リンクはhref
属性として指定されます。 作成者のサイトでの分類スキーマの場所を示します。
6.1.4.2。 コンテキスト
この例では、レポート期間の開始とレポート期間の終了という2つのコンテキストがあります。
<context id="c_start"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2016-01-01</instant> </period> </context> <context id="c_end"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2016-12-31</instant> </period> </context>
-
id
事実をコンテキストに関連付けるために使用されます。 この値は、レポート内で一意である必要があります。 -
entity
レポートがコンパイルされる組織を示します。
-
identifier
この要素は、scheme
を使用して、どの組織が報告しているかを判断します。 この例では、架空のサイトで存在しないスキームを使用しています。
-
-
period
コンテキストの期間または日付がここに示されます。
-
instant
この例では、レポート期間の開始日と終了日に対して、それぞれ2つのインスタントコンテキストがあります。
-
identifier
要素で提供されるリンクは、レポート組織の識別子を公開する存在しない統計組織を指します。 架空の会社の識別子は「12 -34567」です。 現実の世界では、たとえば国税当局で株式市場のティッカーや組織識別子を使用します。
6.1.4.3。 単位
すべての数値的事実について、測定単位を示す必要があります。
<unit id="u_person"> <measure>Person</measure> </unit>
-
id
ファクトを測定単位に関連付けるために使用されます。 この値は、レポート内で一意である必要があります。 -
measure
測定単位を識別します。 この例では、独自の測定単位「Person」を定義しました。
6.1.4.4。 事実
これで、演習全体の最終目標である事実の転送にようやく到達しました。
<s:nr_employees_total contextRef="c_start" unitRef="u_person" decimals="0">35</s:nr_employees_total> <s:nr_employees_total contextRef="c_end" unitRef="u_person" decimals="0">41</s:nr_employees_total> <!-- --> <s:nr_employees_male contextRef="c_start" unitRef="u_person" decimals="0">23</s:nr_employees_male> <s:nr_employees_male contextRef="c_end" unitRef="u_person" decimals="0">27</s:nr_employees_male> <s:nr_employees_female contextRef="c_start" unitRef="u_person" decimals="0">12</s:nr_employees_female> <s:nr_employees_female contextRef="c_end" unitRef="u_person" decimals="0">15</s:nr_employees_female> <!-- --> <s:nr_employees_age_up_to_20 contextRef="c_start" unitRef="u_person" decimals="0">5</s:nr_employees_age_up_to_20> <s:nr_employees_age_up_to_20 contextRef="c_end" unitRef="u_person" decimals="0">9</s:nr_employees_age_up_to_20> <s:nr_employees_age_21_to_40 contextRef="c_start" unitRef="u_person" decimals="0">23</s:nr_employees_age_21_to_40> <s:nr_employees_age_21_to_40 contextRef="c_end" unitRef="u_person" decimals="0">21</s:nr_employees_age_21_to_40> <s:nr_employees_age_41_and_up contextRef="c_start" unitRef="u_person" decimals="0">7</s:nr_employees_age_41_and_up> <s:nr_employees_age_41_and_up contextRef="c_end" unitRef="u_person" decimals="0">11</s:nr_employees_age_41_and_up>
各ファクトは、概念に関連する個別の要素です。 要素の値は、ファクトの値です。
-
contextRef
各ファクトは、コンテキストid
を通じてそのコンテキストを参照します。 この例には、各コンテキストの各コンセプトのファクトが含まれています。 -
unitRef
すべての数値的事実について測定単位を指定する必要があるため、この例では「u_person」をここに入力します。 -
decimals
数値ファクトの場合、属性の1つ(decimals
(小数位)またはprecision
(精度))を指定する必要があります。 この例では、すべてのファクトは整数であるため、「0」の値でdecimals
を指定します。
6.1.5。 誇りを持ってサービスを提供-XBRLレポート
すべての作業が完了した後、分類法、特にプレゼンテーションとラベルのリンクベースに関連してレポートがどのように形成されるかを確認したいと思います。
これを行うために、レポート用のWebページを作成し、表形式で事実を表示するシンプルなツールを使用します。 テーブルの列にコンテキストを配置し、その左側にあるラベルリンクデータベースのコンセプトラベルを配置します。 プレゼンテーションリンクベースで定義された概念階層は、ファクトの順序とインデントを設定します。
結果は次のようになります。
さて、今日は良い仕事をしました!