XSD Das <any> -Element
Das <any>-Element ermöglicht es uns, das XML-Dokument um Elemente zu erweitern, die nicht durch das Schema spezifiziert sind!
Das <any>-Element
Das <any>-Element ermöglicht es uns, das XML-Dokument um Elemente zu erweitern, die nicht durch das Schema angegeben sind.
Das folgende Beispiel ist ein Fragment aus einem XML-Schema namens „family.xsd“. Es zeigt eine Deklaration für das Element "Person". Durch die Verwendung des <any>-Elements können wir (nach <lastname>) den Inhalt von "person" um ein beliebiges Element erweitern:
<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 „Person“-Element um ein „Children“-Element erweitern. In diesem Fall können wir dies tun, selbst wenn der Autor des obigen Schemas niemals ein "untergeordnetes" Element deklariert hat.
Sehen Sie sich diese Schemadatei mit dem Namen "children.xsd" an:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.w3schools.com"
xmlns="https://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>
Die folgende XML-Datei (mit dem Namen "Myfamily.xml") verwendet Komponenten aus zwei verschiedenen Schemas; "Familie.xsd" und "Kinder.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
https://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>
Die obige XML-Datei ist gültig, weil das Schema „family.xsd“ uns erlaubt, das „person“-Element mit einem optionalen Element nach dem „lastname“-Element zu erweitern.
Die Elemente <any> und <anyAttribute> werden verwendet, um ERWEITERBARE Dokumente zu erstellen! Sie ermöglichen Dokumenten, zusätzliche Elemente zu enthalten, die nicht im Haupt-XML-Schema deklariert sind.