Neueste Web-Entwicklung Tutorials
 

XSD Die <anyAttribute> Element


Das <anyAttribute> Element ermöglicht es uns , das XML - Dokument mit Attributen durch das Schema nicht angegeben zu verlängern!


Das <anyAttribute> Element

Das <anyAttribute> Element ermöglicht es uns , das XML - Dokument mit Attributen durch das Schema nicht angegeben zu verlängern.

Das folgende Beispiel ist ein Fragment aus einem XML - Schema genannt "family.xsd" . Es zeigt eine Erklärung für die "person" Element. Die Durch die Verwendung von <anyAttribute> Element können wir eine beliebige Anzahl von Attributen zum hinzufügen "person" Element:

<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 erweitern "person" Element mit einem "gender" Attribut. In diesem Fall können wir tun so, auch wenn der Autor des Schemas oben nie erklärt "gender" Attribut.

Schauen Sie sich dieses Schema - Datei, die so genannte "attribute.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:attribute name="gender">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="male|female"/>
    </xs:restriction>
  </xs:simpleType>
</xs:attribute>

</xs:schema>

Die XML - Datei unter (called "Myfamily.xml") , verwendet Komponenten aus zwei verschiedenen Schemata; "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
http://www.w3ii.com attribute.xsd">

<person gender="female">
  <firstname>Hege</firstname>
  <lastname>Refsnes</lastname>
</person>

<person gender="male">
  <firstname>Stale</firstname>
  <lastname>Refsnes</lastname>
</person>

</persons>

Die XML - Datei oben ist gültig , weil das Schema "family.xsd" ermöglicht es uns , ein Attribut zu dem hinzuzufügen , "person" 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.