XSD <any> 要素
<any> 要素は、スキーマで指定されていない要素によりXML文書を拡張することができます !
<any> 要素
<any> 要素は、スキーマで指定されていない要素によりXML文書を拡張することができます。
次の例は、 "family.xsd" と言う XML スキーマのコードの一部です。
それは "person" 要素の宣言を示しています。<any> 要素を使用することによって、(<lastname> の後に)任意の要素を持つ "person" の内容を拡張することができます:
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element> |
今、 "children" 要素によって "person" の要素を拡張します。
このケースでは、上記スキーマの作成者が任意の "children" 要素を宣言していない場合でも、
拡張することができます。
"children.xsd" と言うスキーマファイルを見てください:
<?xml version="1.0" encoding="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:element name="children">
<xs:complexType>
<xs:sequence>
<xs:element name="childname" type="xs:string"
maxOccurs="unbounded"/>
</xs:sequence>
</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">
<person>
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
<children>
<childname>Cecilie</childname>
</children>
</person>
<person>
<firstname>Stale</firstname>
<lastname>Refsnes</lastname>
</person>
</persons> |
上記 XML ファイルは、スキーマ "family.xsd" が、"lastname" 要素の後にオプション要素を
付け加えて "person" 要素を拡張することをできるので、妥当な XML ファイルです。
<any> と <anyAttribute> 要素は拡張可能なドキュメントを作るために使用します!
これらは、文書がメインのXMLスキーマで宣言されていない追加の要素を含むことができます。
|