XBRL:複雑さについて-第6章XBRLへの飛び込み-パート5.新しい次元

6.5。 新しい次元



前のセクションでは、この例のレポートフォームをXBRLレポートとして提示することに大きな成功を収めましたが、完全なコンプライアンスは得られませんでした。 今日、開発者の1人が洞察を得ました:XBRL Dimensionsを適用してみましょう!







第5章を見ると、性別と年齢層をディメンションとして表現できることが明らかになります。







これまでに作成した基本的な分類は、 sample-2006-01-05.xsd



達しました。 ドメインメンバーとテンプレートは、別の分類法sample-2006-01-05-dimension.xsd



定義します。







6.5.1。 基本的な概念



予想どおり、分類法を簡素化できます。 必要な基本概念はnr_employeesです。 ただし、さまざまな測定コンテキストでそれを表します。また、レポートで測定なしのコンテキストの従業員の総数を示す必要があります。 これらの目的のために、 nr_employees_by_gendernr_employees_by_age 、およびnr_employees_totalの概念を定義し、それらにsubstitutionGroup



属性の値としてnr_employeesを指定します。







 <element id="sample_nr_employees" name="nr_employees" xbrli:periodType="instant" type="xbrli:nonNegativeIntegerItemType" substitutionGroup="xbrli:item" nillable="true" /> <element id="sample_nr_employees_by_gender" name="nr_employees_by_gender" xbrli:periodType="instant" type="xbrli:nonNegativeIntegerItemType" substitutionGroup="sample:nr_employees" nillable="true" /> <element id="sample_nr_employees_by_age" name="nr_employees_by_age" xbrli:periodType="instant" type="xbrli:nonNegativeIntegerItemType" substitutionGroup="sample:nr_employees" nillable="true" /> <element id="sample_nr_employees_total" name="nr_employees_total" xbrli:periodType="instant" type="xbrli:nonNegativeIntegerItemType" substitutionGroup="sample:nr_employees" nillable="true" />
      
      





従業員数に関するファクトは、異なる置換nr_employeesを使用して複数のディメンションのコンテキストで表示され、測定(および表示)が分離されます。







6.5.2。 テンプレート分類



ドメイン要素とテンプレート分類は、共通の分類スキームに結合されます。 テンプレート分類は、他のいくつかのスキームをインポートします。







 <import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" /> <import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" /> <import namespace="http://xbrl.org/2006/xbrldi" schemaLocation="http://www.xbrl.org/2006/xbrldi-2006.xsd" /> <import namespace="http://www.sample.com/2006-01-05" schemaLocation="http://www.sample.com/2006-01-05/sample-2006-01-05.xsd" />
      
      





xbrldi



スキーマxbrldi



テンプレート分類自体では使用されませんが、レポートで使用され、テンプレート分類を参照します。 レポートの測定モジュールへの依存を最小限に抑えるために、レポートはテンプレート分類にインポートされます。 彼女はまた、概念に関連するために基本的な分類法にも言及しています。







6.5.3。 型付きディメンション



知っているように、測定には2つのタイプがあります-型付きと明示的です。 このセクションでは、年齢グループを型付きディメンションとしてどのように表現できるかを見ていきます。







まず、age_groupのタイプを決定する要素が必要です。 有効な値をリストする単純なタイプを使用します。







 <element id="sample_age_group_type" name="age_group_type"> <simpleType> <restriction base="string"> <enumeration value=".. - 20" /> <enumeration value="21 - 40" /> <enumeration value="41 - .." /> </restriction> </simpleType> </element>
      
      





タイプがある場合、 typedDomainRef



属性でタイプを参照する年齢グループディメンションを定義できます。







 <element id="sample_dim_age_group" name="dim_age_group" substitutionGroup="xbrldt:dimensionItem" type="xbrli:stringItemType" abstract="true" xbrli:periodType="instant" xbrldt:typedDomainRef="#sample_age_group_type" />
      
      





要素は抽象的であることに注意してください。これは要件です。 substitutionGroup



属性値はxbrldt:dimensionItem



によって指定されます。







6.5.4。 明示的な測定



変更については、このセクションでは、性別グループを明示的なディメンションとして表示する方法を示します。 これは、ディメンションの要素、および実際にはディメンション自体に対して一連の概念を定義する必要があることを意味します。







 <element id="sample_dim_gender" name="dim_gender" substitutionGroup="xbrldt:dimensionItem" type="xbrli:stringItemType" abstract="true" xbrli:periodType="instant" /> <element id="sample_gender" name="gender" xbrli:periodType="instant" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" /> <element id="sample_male" name="male" xbrli:periodType="instant" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" /> <element id="sample_female" name="female" xbrli:periodType="instant" type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true" />
      
      





dimensionItem



の要素dimensionItem



抽象であることに注意してください。これは必須です。 ディメンションメンバーを対象とする概念の場合、 xbrli:item



substitutionGroup



値で指定されます。 性別の概念はディメンションメンバーの階層のルートとして機能し、残りの概念はドメインメンバーです。







要素は、 domain-member



関係によって階層に配置され、定義リンクベースを作成します。 関係をグループ化するために個別のロールを使用し、分類体系に含まれています。







 <link:roleType roleURI="http://www.sample.com/genderDimension" id="genderDimension"> <link:definition> Gender dimension for demographics on employees </link:definition> <link:usedOn>link:definitionLink</link:usedOn> </link:roleType> <link:linkbaseRef xlink:type="simple" xlink:href="sample-2006-01-05-dimension-definition.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" />
      
      





参照データベースでは、ロールを使用し、通常の方法で概念ロケーターを定義します。







 <roleRef xlink:type="simple" xlink:href="sample-2006-01-05-dimension.xsd#genderDimension" roleURI="http://www.sample.com/genderDimension" /> <definitionLink xlink:type="extended" xlink:role="http://www.sample.com/genderDimension" > <loc xlink:type="locator" xlink:href="sample-2006-01-05-dimension.xsd#sample_dimension_gender" xlink:label="dimension_gender" /> <loc xlink:type="locator" xlink:href="sample-2006-01-05-dimension.xsd#sample_gender" xlink:label="domain_gender" /> <loc xlink:type="locator" xlink:href="sample-2006-01-05-dimension.xsd#sample_male" xlink:label="member_male" /> <loc xlink:type="locator" xlink:href="sample-2006-01-05-dimension.xsd#sample_female" xlink:label="member_female" /> </definitionLink>
      
      





ディメンションには、そのドメインとのdimension-domain



関係があります。 ドメイン要素は、定義リンクベース内の概念ロケーター間のdomain-member



関係によって定義されdomain-member









 <definitionArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="dimension_gender" xlink:to="domain_gender" order="1" priority="0" use="optional" /> <definitionArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/int/dim/arcrole/domain-member" xlink:from="domain_gender" xlink:to="member_male" order="1" priority="0" use="optional" /> <definitionArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/int/dim/arcrole/domain-member" xlink:from="domain_gender" xlink:to="member_female" order="2" priority="0" use="optional" />
      
      





6.5.5。 ハイパーキューブ



ドメイン要素の基本的な分類法と分類法ができたので、テンプレートの分類法でそれらをハイパーキューブと組み合わせることができます。







まず、 substitutionGroup



属性のhypercubeItem



値を使用して、抽象要素としてハイパーキューブの概念を定義します。







 <element id="sample_hc_gender" name="hc_gender" xbrli:periodType="instant" type="xbrli:stringItemType" substitutionGroup="xbrli:hypercubeItem" nillable="true" abstract="true" /> <element id="sample_hc_age_group" name="hc_age_group" xbrli:periodType="instant" type="xbrli:stringItemType" substitutionGroup="xbrli:hypercubeItem" nillable="true" abstract="true" />
      
      





基本概念、ハイパーキューブ、およびディメンション間の関係を作成します。







 <loc xlink:type="locator" xlink:href="sample-2006-01-05.xsd#sample_nr_employees_by_gender" xlink:label="primary_nr_employees_by_gender" /> <loc xlink:type="locator" xlink:href="sample-2006-01-05-dimension.xsd#sample_hc_gender" xlink:label="hypercube_gender" /> <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="scenario" xlink:from="primary_nr_employees_by_gender" xlink:to="hypercube_gender" order="1" priority="0" use="optional" /> <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="hypercube_gender" xlink:to="dimension_gender" order="1" priority="0" use="optional" />
      
      





同様に年齢層の場合:







 <definitionLink xlink:type="extended" xlink:role="http://www.sample.com/ageGroupDimension" > <loc xlink:type="locator" xlink:href="sample-2006-01-05.xsd#sample_nr_employees_by_age" xlink:label="primary_nr_employees_by_age" /> <loc xlink:type="locator" xlink:href="sample-2006-01-05-dimension.xsd#sample_hc_age_group" xlink:label="hypercube_age_group" /> <loc xlink:type="locator" xlink:href="sample-2006-01-05-dimension.xsd#sample_dim_age_group" xlink:label="dimension_age_group" /> <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xbrldt:contextElement="scenario" xlink:from="primary_nr_employees_by_age" xlink:to="hypercube_age_group" order="1" priority="0" use="optional" /> <definitionArc xlink:type="arc" xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="hypercube_age_group" xlink:to="dimension_age_group" order="1" priority="0" use="optional" /> </definitionLink>
      
      





リンクでは、ディメンション分類ageGroupDimension



定義されたロールを使用する必要があることに注意してください。







 <link:roleType roleURI="http://www.sample.com/ageGroupDimension" id="ageGroupDimension"> <link:definition> Age group dimension for demographics on employees </link:definition> <link:usedOn>link:definitionLink</link:usedOn> </link:roleType>
      
      





6.5.6。 プレゼンテーション



プレゼンテーションとラベルのリンクベースは、以前に調べたものと似ています。ここでは繰り返しません。







6.5.7。 報告書



測定分類法の準備ができたので、それに関連するレポートを作成できます。 最初に、レポート期間の開始時と終了時の従業員総数のコンテキストを定義します。







 <context id="c_start"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-01-01</instant> </period> </context> <context id="c_end"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-12-31</instant> </period> </context>
      
      





次に、年齢グループのディメンション値のコンテキストを定義します。







 <context id="c_start_age_up_to_20"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-01-01</instant> </period> <scenario> <xbrldi:typedMember dimension="sd:dim_age_group"> <sd:age_group_type>.. - 20</sd:age_group_type> </xbrldi:typedMember> </scenario> </context> <context id="c_end_age_up_to_20"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-12-31</instant> </period> <scenario> <xbrldi:typedMember dimension="sd:dim_age_group"> <sd:age_group_type>.. - 20</sd:age_group_type> </xbrldi:typedMember> </scenario> </context> <context id="c_start_age_21_to_40"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-01-01</instant> </period> <scenario> <xbrldi:typedMember dimension="sd:dim_age_group"> <sd:age_group_type>21 - 40</sd:age_group_type> </xbrldi:typedMember> </scenario> </context> <context id="c_end_age_21_to_40"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-12-31</instant> </period> <scenario> <xbrldi:typedMember dimension="sd:dim_age_group"> <sd:age_group_type>21 - 40</sd:age_group_type> </xbrldi:typedMember> </scenario> </context> <context id="c_start_age_41_and_up"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-01-01</instant> </period> <scenario> <xbrldi:typedMember dimension="sd:dim_age_group"> <sd:age_group_type>41 - ..</sd:age_group_type> </xbrldi:typedMember> </scenario> </context> <context id="c_end_age_41_and_up"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-12-31</instant> </period> <scenario> <xbrldi:typedMember dimension="sd:dim_age_group"> <sd:age_group_type>41 - ..</sd:age_group_type> </xbrldi:typedMember> </scenario> </context>
      
      





変更は、 xbrldi:typedMember



dimension



属性で示されます。 ディメンション値は、 sd:age_group_type



として定義されsd:age_group_type



—ディメンションに定義されたタイプ。







次に、性別のディメンション値のコンテキストを定義します。







 <context id="c_start_gm"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-01-01</instant> </period> <scenario> <xbrldi:explicitMember dimension="sd:dim_gender">sd:male</xbrldi:explicitMember> </scenario> </context> <context id="c_end_gm"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-12-31</instant> </period> <scenario> <xbrldi:explicitMember dimension="sd:dim_gender">sd:male</xbrldi:explicitMember> </scenario> </context> <context id="c_start_gf"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-01-01</instant> </period> <scenario> <xbrldi:explicitMember dimension="sd:dim_gender">sd:female</xbrldi:explicitMember> </scenario> </context> <context id="c_end_gf"> <entity> <identifier scheme="http://www.statistics.org">12-34567</identifier> </entity> <period> <instant>2005-12-31</instant> </period> <scenario> <xbrldi:explicitMember dimension="sd:dim_gender">sd:female</xbrldi:explicitMember> </scenario> </context>
      
      





変更は、 xbrldi:explicitMember



要素のdimension



属性で示されます。 ディメンション値は、ディメンションドメイン要素を参照して決定されます。







レポートは、基本分類ではなく、テンプレート分類を参照していることに注意してください。







 <link:schemaRef xlink:type="simple" xlink:href="http://www.sample.com/2006-01-05/sample-2006-01-05-dimension.xsd" />
      
      





これで、それぞれのコンテキストで事実を伝えることができます。







 <!--       --> <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_by_gender contextRef="c_start_gm" unitRef="u_person" decimals="0">23</s:nr_employees_by_gender> <s:nr_employees_by_gender contextRef="c_end_gm" unitRef="u_person" decimals="0">27</s:nr_employees_by_gender> <s:nr_employees_by_gender contextRef="c_start_gf" unitRef="u_person" decimals="0">12</s:nr_employees_by_gender> <s:nr_employees_by_gender contextRef="c_end_gf" unitRef="u_person" decimals="0">15</s:nr_employees_by_gender> <!--   --> <s:nr_employees_by_age contextRef="c_start_age_up_to_20" unitRef="u_person" decimals="0">5</s:nr_employees_by_age> <s:nr_employees_by_age contextRef="c_end_age_up_to_20" unitRef="u_person" decimals="0">9</s:nr_employees_by_age> <s:nr_employees_by_age contextRef="c_start_age_21_to_40" unitRef="u_person" decimals="0">23</s:nr_employees_by_age> <s:nr_employees_by_age contextRef="c_end_age_21_to_40" unitRef="u_person" decimals="0">21</s:nr_employees_by_age> <s:nr_employees_by_age contextRef="c_start_age_41_and_up" unitRef="u_person" decimals="0">7</s:nr_employees_by_age> <s:nr_employees_by_age contextRef="c_end_age_41_and_up" unitRef="u_person" decimals="0">11</s:nr_employees_by_age>
      
      





6.5.8。 新しい次元を最初に見る



単純なレポート視覚化アプリケーションは測定をサポートしていないため、レポートは次のようになります。







画像







いくつかの手動調整(未使用の列の削除、残りの列の配置、テーブルヘッダーの追加)の後、測定が有効なアプリケーションに期待されるレポートのわずかに優れたバージョンを確認できます。







画像















All Articles