XML Schema element 元素

定義と使用方法

element要素は要素を定義します。

要素情報

出現回数 スキーマ内で定義された要素の数。
親要素 schema、choice、all、sequence
内容 simpleType、complexType、key、keyref、unique

文法

<element
id=ID 
name=NCName
ref=QName
type=QName
substitutionGroup=QName
default=string
fixed=string
form=qualified|unqualified
maxOccurs=非負整数|unbounded
minOccurs=非負整数
nillable=true|false
abstract=true|false 
block=(#all|リストの(extension|restriction))
final=(#all|リストの(extension|restriction))
任意の属性
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(?シンボルはelement要素内で宣言され、この要素は0回または1回出現します、*シンボルは要素は0回または複数回出現します。)

属性

id

選択可能。この要素のユニークなIDを指定します。

name

選択可能。要素の名前を指定します。親要素がschema要素の場合、この属性は必須です。

ref

選択可能。他の要素への参照を指定します。ref属性には命名空間接頭辞を含むことができます。親要素がschema要素の場合、この属性を使用しません。

type

選択可能。内蔵データタイプの名前を指定するか、simpleTypeまたはcomplexType要素の名前を指定します。

substitutionGroup

選択可能。この要素を置き換える要素の名前を指定します。この要素は同じタイプまたは指定された要素タイプから派生したタイプを持たなければなりません。

親要素がschema要素でない場合、この属性を使用することはできません。

default

選択可能。要素にデフォルト値を指定します(要素の内容がシンプルな型またはtextOnlyの場合に使用します)。

fixed

選択可能。要素に固定値を指定します(要素の内容がシンプルな型またはtextOnlyの場合に使用します)。

form

オプション。要素の形式です。デフォルト値は、この属性を持つschema要素のelementFormDefault属性の値です。この値は次の文字列のいずれかです:"qualified"または"unqualified"。

親要素がschema要素の場合、この属性を使用することはできません。

  • この値が"unqualified"の場合、要素は命名空間プレフィックスを通じて限定する必要はありません。
  • この値が"qualified"の場合、要素は命名空間プレフィックスを通じて限定する必要があります。

maxOccurs

オプション。element要素が親要素で現れる最大回数を規定します。この値は0以上の整数でなければなりません。最大回数に制限を設けたくない場合は、文字列"unbounded"を使用します。デフォルト値は1です。

親要素がschema要素の場合、この属性を使用することはできません。

minOccurs

オプション。element要素が親要素で現れる最小回数を規定します。この値は0以上の整数でなければなりません。デフォルト値は1です。

親要素がschema要素の場合、この属性を使用することはできません。

nillable

オプション。明示的なゼロ値を要素に割り当てることができるかどうかを示します。このオプションは要素の内容に適用され、要素の属性ではありません。デフォルト値はfalseです。

nillableがtrueの場合、要素のインスタンスはnil属性をtrueに設定することができます。nil属性は、インスタンスのXMLスキーマの命名空間の一部として定義されています。

例えば、次のセクションでは、単一の要素を定義し、nillableをtrueに設定しています。

<xs:element name="myDate" type="xs:date" nillable="true"/>

次のセクションでは、この要素を使用し、明示的なゼロ値(nil属性がtrueに設定されている)を持つ場合があります。

<myDate xsi:nil="true"></myDate>

abstract

オプション。要素がインスタンスドキュメントで使用できるかどうかを示します。この値がtrueの場合、要素はインスタンスドキュメントに表示されません。その代わり、substitutionGroup属性が要素の限定名(QName)を含む他の要素は、その要素の場所に表示される必要があります。複数の要素がsubstitutionGroup属性で参照できます。デフォルト値はfalseです。

block

オプション。派生のタイプ。block属性は、指定された派生タイプを持つ要素が替代表示要素として使用されないようにします。この値は#allまたはリストを含むことができます。このリストは、拡張、制約または置換のサブセットです:

  • 拡張 - 防止通過拡張導出的要素被用來替代表示要素。
  • restriction - この要素を代替するための制限された派生要素を防ぎます。
  • substitution - この要素を代替するための置き換えられた派生要素を防ぎます。
  • #all - この要素を代替するためのすべての派生要素を防ぎます。

final

オプション。element要素上のfinal属性のデフォルト値を設定します。親要素がschema要素でない場合、この属性を使用できません。この値は#allまたはextensionおよびrestrictionのサブセットを含むリストです:

  • extension - この要素を代替するための拡張された派生要素を防ぎます
  • restriction - この要素を代替するための制限された派生要素を防ぎます
  • #all - この要素を代替するためのすべての派生要素を防ぎます

任意の属性

オプション。non-schema名前空間を持つ他の属性を指定します。

インスタンス

例1

以下の例は、以下の4つのシンプルな要素を持ち、タイプがstring、nonNegativeIntegerおよびdateであるschemaです:"fname", "lname", "age"および"dateborn":

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="fname" type="xs:string"/>
<xs:element name="lname" type="xs:string"/>
<xs:element name="age" type="xs:nonNegativeInteger"/>
<xs:element name="dateborn" type="xs:date"/>
</xs:schema>

例2

以下の例は、複雑なタイプの"note"要素を持つschemaです。"note"要素は、以下の4つのシンプルな要素を含んでいます:"to", "from", "heading"および"body":

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

例3

この例は例2と同じですが、この例ではref属性を使用して要素名を参照することを選択しています:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="to"/>
      <xs:element ref="from"/>
      <xs:element ref="heading"/>
      <xs:element ref="body"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:schema>