Le <any> élément nous permet d'étendre le document XML avec des éléments non spécifiés par le schéma!
Le <any> Element
Le <any> élément nous permet d'étendre le document XML avec des éléments non spécifiés par le schéma.
L'exemple suivant est un fragment à partir d' un schéma XML appelé "family.xsd" . Il montre une déclaration pour la "person" élément. En utilisant le <any> élément que nous pouvons étendre (after <lastname>) le contenu de "person" avec tout élément:
<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 voulons étendre la "person" élément avec un "children" élément. Dans ce cas , nous pouvons le faire, même si l'auteur du schéma ci - dessus n'a jamais déclaré tout "children" élément.
Regardez ce fichier de schéma, appelé "children.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: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 ci - dessous (called "Myfamily.xml") , utilise des composants de deux schémas différents; "family.xsd" et "children.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 children.xsd">
<person>
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
<children>
<childname>Cecilie</childname>
</children>
</person>
<person>
<firstname>Stale</firstname>
<lastname>Refsnes</lastname>
</person>
</persons>
Le fichier XML ci - dessus est valide parce que le schéma "family.xsd" nous permet d'étendre la "person" élément avec un élément facultatif après la "lastname" élément.
Le <any> et <anyAttribute> éléments sont utilisés pour rendre les documents EXTENSIBLE! Ils permettent documents contiennent des éléments supplémentaires qui ne sont pas déclarés dans le schéma XML principal.