ホーム HTML CSS XML JAVASCRIPT   PHP SQL MORE...   リファレンス 事例集    

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スキーマで宣言されていない追加の要素を含むことができます。


« 前章へ 次章へ »