XSD Das <anyAttribute> -Element
Das <anyAttribute>-Element ermöglicht es uns, das XML-Dokument mit Attributen zu erweitern, die nicht durch das Schema angegeben sind!
Das <anyAttribute>-Element
Das Element <anyAttribute> ermöglicht es uns, das XML-Dokument mit Attributen 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 <anyAttribute>-Elements können wir dem "person"-Element eine beliebige Anzahl von Attributen 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>
Nun wollen wir das „person“-Element um ein „eyecolor“-Attribut erweitern. In diesem Fall können wir dies tun, selbst wenn der Autor des obigen Schemas niemals ein Attribut "Augenfarbe" deklariert hat.
Sehen Sie sich diese Schemadatei mit dem Namen "attribute.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:attribute name="eyecolor">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="blue|brown|green|grey"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:schema>
Die folgende XML-Datei (mit dem Namen "Myfamily.xml") verwendet Komponenten aus zwei verschiedenen Schemas; "family.xsd" und "attribute.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 attribute.xsd">
<person eyecolor="green">
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
</person>
<person eyecolor="blue">
<firstname>Stale</firstname>
<lastname>Refsnes</lastname>
</person>
</persons>
Die obige XML-Datei ist gültig, da das Schema „family.xsd“ es uns ermöglicht, dem Element „person“ ein Attribut hinzuzufügen.
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.