XSD <anyAttribute>-Element
- Vorherige Seite XSD <any>
- Nächste Seite XSD-Element-Ersatz
Das <anyAttribute>-Element ermöglicht es uns, XML-Dokumente durch Attribute zu erweitern, die nicht im Schema definiert sind!
Das <anyAttribute>-Element
Das <anyAttribute>-Element ermöglicht es uns, XML-Dokumente durch Attribute zu erweitern, die nicht im Schema definiert sind!
Das folgende Beispiel ist ein Abschnitt aus der XML-Schema-Datei "family.xsd". Er zeigt eine Deklaration für das "person"-Element. Durch die Verwendung des <anyAttribute>-Elements können wir beliebig viele Attribute dem "person"-Element hinzufügen:
<xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element>
Jetzt hoffen wir, dass wir "gender"-Attribut verwenden, um das "person"-Element zu erweitern. In diesem Fall können wir das so tun, selbst wenn der Autor des Schemas keine "gender"-Attribut erklärt hat.
Sehen Sie sich diese Schema-Datei an, benannt "attribute.xsd":
<?xml version="1.0" encoding="ISO-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.codew3c.com" xmlns="http://www.codew3c.com" elementFormDefault="qualified"> <xs:attribute name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:schema>
Die folgende XML (benannt "Myfamily.xml") verwendet Komponenten aus verschiedenen Schemata, "family.xsd" und "attribute.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.codew3c.com attribute.xsd"> <person gender="female"> <firstname>Jane</firstname> <lastname>Smith</lastname> </person> <person gender="male"> <firstname>David</firstname> <lastname>Smith</lastname> </person> </persons>
Dieser XML-Datei ist gültig, weil das Schema "family.xsd" uns erlaubt, Attribute zum "person"-Element hinzuzufügen.
Sowohl <any> als auch <anyAttribute> können zur Erstellung erweiterbarer Dokumente verwendet werden! Sie ermöglichen es dem Dokument, zusätzliche Elemente zu enthalten, die nicht im Haupt-XML-Schema deklariert sind.
- Vorherige Seite XSD <any>
- Nächste Seite XSD-Element-Ersatz