5.5.3 ユーザーデータ型(XBRL2.1の場合)

ユーザーデータ型とは,ユーザーが独自に定義したデータ型のことです。ユーザーは,独自にデータ型の定義をタクソノミー本体に記述します。

XBRL2.1の場合,<xsd:restriction>要素を使用して制約を追加する方法だけを使用できます。

ここでは,XBRL2.1の場合の,ユーザーデータ型と外部とのインターフェース,使用できるユーザーデータ型の条件,および定義例について説明します。

<この項の構成>
(1) 外部とのインターフェース
(2) 使用できるユーザーデータ型の条件
(3) 大域定義の例
(4) 局所定義の例

(1) 外部とのインターフェース

ユーザーデータ型と外部とのインターフェースについて説明します。

ユーザーデータ型とXBRLデータ型と区別するために,ユーザーデータ型では,データ型を表すコードが常にその他(OTHER_ITEM)となります。

ユーザーデータ型をXBRLデータ型から派生して作成し,使用できるユーザーデータ型の条件に合っている場合は,ユーザーデータ型が数値または非数値データ型かどうかが判断されます。条件に合っていない場合,ユーザーデータ型は文字列として保持・参照されます。さらにXBRL2.1の場合は,派生元のデータ型を取得することもできます。

それぞれの場合で使用できるメソッドを次に示します。

(2) 使用できるユーザーデータ型の条件

制約を追加する<xsd:restriction>要素と,<xsd:element>要素の定義は同一ドキュメント内である必要はありません。さらに,局所的な宣言も使用できます。

ここでは,大域的な宣言(グローバル宣言)の場合と局所的な宣言(ローカル宣言)に分けて,使用できるユーザーデータ型の条件を示します。

なお,完全な妥当性検証を実行した場合は,ユーザーデータ型にXBRL2.1で禁止されている定義内容がないかを検証します。この場合,xbrli:fractionItemType型以外から派生したユーザーデータ型が構造を持っているとエラーとなるため,次に示すユーザーデータ型定義(<xsd:complexType>要素)の子要素に<xsd:simpleContent>要素や<xsd:annotation>要素以外が使用されているとエラーになります。

(a) 大域定義の場合
(b) 局所定義の場合

(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>