XML スキーマの任意の要素
XSD <any> 要素
><any> 要素を使用すると、スキーマで指定されていない要素を使用して XML ドキュメントを拡張できます。
h2<any> 要素
<any> 要素を使用すると、スキーマで指定されていない要素を使用して XML ドキュメントを拡張できます。
次の例は、「family.xsd」という名前の XML スキーマから引用されたフラグメントです。 「person」要素の宣言を示しています。 <any> 要素を使用すると、任意の要素 (<lastname> の後) によって「person」の内容を拡張できます:
<xs:element name="person">
<xs:complexType>
<xs:シーケンス>
<xs:要素名="firstname" type="xs:string"/>
<xs:要素名="姓" タイプ="xs:文字列"/>
<xs:any minOccurs="0"/>
</xs:シーケンス>
</xs:complexType>
</xs:element>
<xs:complexType>
<xs:シーケンス>
<xs:要素名="firstname" type="xs:string"/>
<xs:要素名="姓" タイプ="xs:文字列"/>
<xs:any minOccurs="0"/>
</xs:シーケンス>
</xs:complexType>
</xs:element>
次に、「person」要素を「children」要素で拡張します。この場合、上記のスキーマの作成者が「子」要素を宣言していなくても、これを行うことができます。
「children.xsd」という名前のスキーマ ファイルを参照してください:
<?xml version="1.0"coding="ISO-8859-1"?>
<xs:schema xmlns:xs= " http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified"> ;
<xs:complexType>
<xs:シーケンス>
<xs:element name="childname" type="xs:string"
maxOccurs="無制限"/>
</xs:シーケンス>
</xs:complexType>
</xs:element>
</xs:schema>
<xs:schema xmlns:xs= " http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified"> ;
<xs:complexType>
<xs:シーケンス>
<xs:element name="childname" type="xs:string"
maxOccurs="無制限"/>
</xs:シーケンス>
</xs:complexType>
</xs:element>
</xs:schema>
次の XML ファイル (「Myfamily.xml」という名前) は、2 つの異なるスキーマ「family.xsd」と「children.xsd」のコンポーネントを使用しています:
<?xml version="1.0 " encoding="ISO-8859 -1"?>
<persons xmlns="http://www.microsoft.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema -instance"
xsi:schemaLocation ="http://www.microsoft.com family.xsd
http://www.w3schools.com Children.xsd">
<人>
<名>ヘゲ</名>
<姓>Refsnes</姓>
<子供たち>
<childname>セシリエ</childname>
</子供たち>
</人>
<人>
<firstname>古い</firstname>
<lastname>Refsnes</lastname>
</person>
</persons>
<persons xmlns="http://www.microsoft.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema -instance"
xsi:schemaLocation ="http://www.microsoft.com family.xsd
http://www.w3schools.com Children.xsd">
<人>
<名>ヘゲ</名>
<姓>Refsnes</姓>
<子供たち>
<childname>セシリエ</childname>
</子供たち>
</人>
<人>
<firstname>古い</firstname>
<lastname>Refsnes</lastname>
</person>
</persons>
スキーマ「family.xsd」によりオプションの「lastname」要素を渡すことができるため、上記の XML ファイルは有効です「person」要素を拡張する要素。
<any> と <anyAttribute> は両方ともスケーラブルなドキュメントを作成するために使用できます。これらにより、メインの XML スキーマで宣言されていない追加要素をドキュメントに含めることができるようになります。