Derniers tutoriels de développement web
 

XSD 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!


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.