5.5.3 ユーザーデータ型(XBRL2.1の場合)
(1) 外部とのインターフェース
ユーザーデータ型と外部とのインターフェースについて説明します。
ユーザーデータ型とXBRLデータ型と区別するために,ユーザーデータ型では,データ型を表すコードが常にその他(OTHER_ITEM)となります。
ユーザーデータ型をXBRLデータ型から派生して作成し,使用できるユーザーデータ型の条件に合っている場合は,ユーザーデータ型が数値または非数値データ型かどうかが判断されます。条件に合っていない場合,ユーザーデータ型は文字列として保持・参照されます。さらにXBRL2.1の場合は,派生元のデータ型を取得することもできます。
それぞれの場合で使用できるメソッドを次に示します。
- データ型を表すコードを取得するには,XBRLTaxonomyItemおよびXBRLInstanceItemインターフェースのgetItemType()メソッドを使用できます。
- アイテムが数値型かどうかを調べるには,XBRLTaxonomyItemおよびXBRLInstanceItemインターフェースのisNumeric()メソッドを使用できます。
- 文字列として保持されているユーザーデータ型を参照するには,XBRLInstanceItemインターフェースのgetValue()メソッドを使用できます。ユーザーデータ型の内容を設定および変更するには,setValue()メソッドを使用できます。
- 派生元のデータ型を取得するには,XBRLTaxonomyItemおよびXBRLInstanceItemインターフェースのgetBaseItemType()メソッドを使用できます。
(2) 使用できるユーザーデータ型の条件
制約を追加する<xsd:restriction>要素と,<xsd:element>要素の定義は同一ドキュメント内である必要はありません。さらに,局所的な宣言も使用できます。
ここでは,大域的な宣言(グローバル宣言)の場合と局所的な宣言(ローカル宣言)に分けて,使用できるユーザーデータ型の条件を示します。
なお,完全な妥当性検証を実行した場合は,ユーザーデータ型にXBRL2.1で禁止されている定義内容がないかを検証します。この場合,xbrli:fractionItemType型以外から派生したユーザーデータ型が構造を持っているとエラーとなるため,次に示すユーザーデータ型定義(<xsd:complexType>要素)の子要素に<xsd:simpleContent>要素や<xsd:annotation>要素以外が使用されているとエラーになります。
- あるアイテムとして認識された<xsd:element>要素の子要素である<xsd:complexType>要素(局所定義)
- あるアイテムとして認識された<xsd:element>要素のtype属性値で参照される<xsd:complexType>要素(大域定義)
(a) 大域定義の場合
- 次のいずれかのドキュメント内で定義されているユーザーデータ型。
- <xsd:element>要素定義と同じドキュメント。
- <xsd:element>要素が定義されているドキュメント内の<xsd:include>要素または<xsd:import>要素によって取り込まれるドキュメント。
- <xsd:element>要素が定義されているドキュメントを,<xsd:include>要素で取り込むドキュメント。
- <xsd:complexType>要素で大域複合型として定義されたユーザーデータ型。
- <xsd:simpleContent>要素で単純内容複合型を派生して単純内容モデルを定義したユーザーデータ型。
ただし,xbrli:fractionItemTypeからの派生の場合は,<xsd:complexContent>要素で複合型を派生した複合内容モデルを定義したユーザーデータ型。
- <xsd:restriction>要素で単純内容モデルに新しく制約を追加したユーザーデータ型。
- <xsd:restriction>のbase属性がXBRLデータ型であるユーザーデータ型,または,そのbase属性がXBRLデータ型から派生したユーザーデータ型。
(b) 局所定義の場合
- <xsd:element>要素の子要素として定義されたユーザーデータ型。
- <xsd:complexType>要素で局所複合型として定義されたユーザーデータ型。
- <xsd:simpleContent>要素で単純内容複合型を派生して単純内容モデルを定義したユーザーデータ型。
ただし,xbrli:fractionItemTypeからの派生の場合は,<xsd:complexContent>要素で複合型を派生した複合内容モデルを定義したユーザーデータ型。
- <xsd:restriction>要素で単純内容モデルに新しく制約を追加したユーザーデータ型。
- <xsd:restriction>のbase属性がXBRLデータ型であるユーザーデータ型,または,そのbase属性がXBRLデータ型から派生したユーザーデータ型。
(3) 大域定義の例
<schema
:
xmlns:cbrpi="http://cosminexus.com/xbrl/"
:
<element id ="paymentOfdividends.preferredDividends"
name ="paymentOfdividends.preferredDividends"
type ="cbrpi:totalDigits"
substitutionGroup ="xbrli:item"
/>
:
<complexType name ="totalDigits">
<simpleContent>
<restriction base ="xbrli:integerItemType">
<totalDigits value="5">
</restriction>
</simpleContent>
</complexType>
:
</schema> |
(4) 局所定義の例
<schema
:
xmlns:cbrpi="http://cosminexus.com/xbrl/"
:
<element id ="paymentOfdividends.preferredDividends"
name ="paymentOfdividends.preferredDividends"
substitutionGroup ="xbrli:item">
<complexType>
<simpleContent>
<restriction base="xbrli:integerItemType">
<totalDigits value="5">
</restriction>
</simpleContent>
</complexType>
</element>
:
</schema> |