Neueste Web-Entwicklung Tutorials
 

XSD Die <any> Element


Das <any> Element ermöglicht es uns , das XML - Dokument mit Elementen nicht durch das Schema spezifiziert zu verlängern!


Die <any> Element

Das <any> Element ermöglicht es uns , das XML - Dokument mit Elementen nicht durch das Schema spezifiziert zu erweitern.

Das folgende Beispiel ist ein Fragment aus einem XML - Schema genannt "family.xsd" . Es zeigt eine Erklärung für die "person" Element. Durch die Verwendung des <any> Element können wir verlängern (after <lastname>) der Inhalt von "person" mit jedem Element:

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

Nun wollen wir das erweitern "person" Element mit einem "children" Element. In diesem Fall können wir tun so, auch wenn der Autor des Schemas oben nie erklärt "children" Element.

Schauen Sie sich dieses Schema - Datei, die so genannte "children.xsd" :

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3ii.com"
xmlns="http://www.w3ii.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>

Die XML - Datei unter (called "Myfamily.xml") , verwendet Komponenten aus zwei verschiedenen Schemata; "family.xsd" und "children.xsd" :

<?xml version="1.0" encoding="UTF-8"?>

<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.w3ii.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>

Die XML - Datei oben ist gültig , weil das Schema "family.xsd" erlaubt uns , das zu erweitern "person" Element mit einem optionalen Element nach dem "lastname" Element.

Die <any> und <anyAttribute> Elemente werden verwendet , um EXTENSIBLE Dokumente zu machen! Sie ermöglichen Dokumente zusätzliche Elemente enthalten, die nicht im Haupt XML-Schema deklariert sind.