Élément <any> XSD
- Page précédente Indicateurs XSD
- Page suivante XSD <anyAttribute>
L'élément <any> nous donne la capacité d'étendre le document XML par des éléments non spécifiés par le schéma !
L'élément <any>
L'élément <any> nous donne la capacité d'étendre le document XML par des éléments non spécifiés par le schéma !
L'exemple suivant est extrait d'un fragment de schéma XML nommé "family.xsd". Il montre une déclaration pour l'élément "person" à l'aide de l'élément <any>, qui nous permet d'étendre le contenu de "person" par n'importe quel élément (après <lastname>):
<xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:any minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element>
Maintenant, nous espérons utiliser l'élément "children" pour étendre l'élément "person". Dans ce cas, nous pouvons le faire même si l'auteur de ce schéma n'a déclaré aucun élément "children".
Voyons ce fichier de schéma, nommé "children.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:element name="children"> <xs:complexType> <xs:sequence> <xs:element name="childname" type="xs:string" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Le fichier XML suivant (nommé "Myfamily.xml") utilise des composants provenant de deux schémas différents, "family.xsd" et "children.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 children.xsd"> <person> <firstname>David</firstname> <lastname>Smith</lastname> <children> <childname>mike</childname> </children> </person> <person> <firstname>Tony</firstname> <lastname>Smith</lastname> </person> </persons>
Ce fichier XML ci-dessus est valide, car le schéma "family.xsd" nous permet d'étendre l'élément "person" en utilisant des éléments optionnels après l'élément "lastname".
Les éléments <any> et <anyAttribute> peuvent tous deux être utilisés pour créer des documents extensibles ! Ils permettent au document de contenir des éléments supplémentaires non déclarés dans le schéma XML principal.
- Page précédente Indicateurs XSD
- Page suivante XSD <anyAttribute>