XSD <anyAttribute> element
- Forrige side XSD <any>
- Næste side XSD elementudskiftning
<anyAttribute>-elementet giver os mulighed for at udvide XML-dokumentet gennem egenskaber, der ikke er defineret i skemaet!
<anyAttribute>-elementet
<anyAttribute>-elementet giver os mulighed for at udvide XML-dokumentet gennem egenskaber, der ikke er defineret i skemaet!
Dette eksempel er en del af XML-skemaet med navnet "family.xsd" og viser en deklaration for elementet "person". Ved at bruge <anyAttribute>-elementet kan vi tilføje et hvilket som helst antal egenskaber til elementet "person":
<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>
Nu håber vi at udvide "person"-elementet gennem "gender"-egenskaben. I dette tilfælde kan vi gøre det, selvom schema-forfatteren aldrig har erklæret nogen "gender"-egenskab.
Se denne schema-fil, navngivet "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>
Denne XML (navngivet "Myfamily.xml") bruger komponenter fra forskellige schema'er, "family.xsd" og "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>
Denne XML-fil er gyldig, fordi schema "family.xsd" giver os mulighed for at tilføje egenskaber til elementet "person".
<any> og <anyAttribute> kan begge bruges til at skabe udvidelige dokumenter! De gør dokumenterne i stand til at inkludere ekstra elementer, der ikke er deklarerede i hoved XML schema.
- Forrige side XSD <any>
- Næste side XSD elementudskiftning