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=nonNegativeInteger|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またはリストが含まれ、リストはextension、restrictionまたはsubstitutionのサブセットです:

  • extension - この要素を代替できる派生要素を防ぎます。
  • restriction - この要素を代替できる派生要素を防ぎます。
  • substitution - この要素を代替できる派生要素を防ぎます。
  • #all - この要素を代替できる派生要素を全て防ぎます。

final

選択可能です。element要素上のfinal属性のデフォルト値を設定します。親要素がschema要素でない場合、この属性を使用できません。この値には#allまたはリストが含まれ、リストはextensionまたはrestrictionのサブセットです:

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

任意の属性

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

例1

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

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