XSD <anyAttribute> Element
- Vorige Pagina XSD <any>
- Volgende Pagina XSD Element Vervanging
Het <anyAttribute>-element geeft ons de mogelijkheid om de XML-document te uitbreiden met eigenschappen die niet zijn gedefinieerd in het schema!
<anyAttribute> element
Het <anyAttribute>-element geeft ons de mogelijkheid om de XML-document te uitbreiden met eigenschappen die niet zijn gedefinieerd in het schema!
Dit voorbeeld is een fragment van een XML schema genaamd "family.xsd". Het toont een verklaring voor het "person"-element. Door het gebruik van het <anyAttribute>-element kunnen we een onbeperkt aantal eigenschappen toevoegen aan het "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>
Nu willen we de "person"-element uitbreiden met de "gender"-eigenschap. In dit geval kunnen we dit doen, zelfs als de auteur van dit schema nooit een "gender"-eigenschap heeft verklaard.
Bekijk dit schema-bestand, genaamd "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>
Hier is deze XML (genaamd "Myfamily.xml"), die elementen gebruikt van verschillende schema's, "family.xsd" en "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>
Deze XML-bestand is geldig omdat het schema "family.xsd" ons toestaat om eigenschappen toe te voegen aan het "person"-element.
<any> en <anyAttribute> kunnen beide worden gebruikt om uitbreidbare documenten te maken! Ze geven documenten de mogelijkheid om extra elementen op te nemen die niet zijn gedeclareerd in het hoofd XML schema.
- Vorige Pagina XSD <any>
- Volgende Pagina XSD Element Vervanging