bonjour,
> Si, cela dépend de ce que vous voulez obtenir lorsqu'il n'y plus de
> "sous-balises" :
>
> <balises/>
>
> (ce qui correspond à la solution que j'ai décrit)
>
> ou
>
> rien du tout.
>
> Dans ce cas, c'est la référence à l'élément "balises" qu'il faut rendre
> facultative.
Voici le schéma XML qui reprend en gros l'exemple que j'avais présenté hier.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- Elément qui représente la balise "balises". -->
<xsd:element name="balises">
<xsd:complexType>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="balise"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Elément qui représente la balise "balise" -->
<xsd:element name="balise">
<xsd:complexType>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="balises"/>
</xsd:sequence>
<xsd:attribute name="guid" type="xsd:string" use="required"/>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="nom" type="xsd:string" use="required"/>
<xsd:attribute name="valeur" type="xsd:string" use="required"/>
<xsd:attribute name="form" type="xsd:string" use="required"/>
<xsd:attribute name="typebalise" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<!-- Elément qui représente la balise "item" -->
<xsd:element name="item">
<xsd:complexType>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="nom" type="xsd:string" use="required"/>
<xsd:attribute name="description" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<!-- Elément qui représente la balise "lien" -->
<xsd:element name="lien">
<xsd:complexType>
<xsd:attribute name="element1" use="required" />
<xsd:attribute name="element2" use="required"/>
<xsd:attribute name="typeelement1" use="required"/>
<xsd:attribute name="typeelement2" use="required"/>
<xsd:attribute name="operateur" use="required"/>
<xsd:attribute name="typeliaison" use="required"/>
<xsd:attribute name="description" use="required"/>
</xsd:complexType>
</xsd:element>
<!-- Elément qui représente la balise "classeur" -->
<xsd:element name="classeur">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="formulaire">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="items">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:element ref="item"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element ref="balises" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="liens">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:element ref="lien"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" use="required"/>
<xsd:attribute name="nom" use="required"/>
<xsd:attribute name="description" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Le but avec ce schéma est donc, d'avoir le fichier XML suivant :
<classeur>
<formulaire id="id_form" nom="nom_form" description="description_form">
<items />
<balises>
<balise>
<balises>
<balise>
<balises>
<balise>
.... et encore des <balises><balise /></balises> ...
</balise>
</balises>
</balise>
</balises>
</balise>
</balises>
<liens />
</formulaire>
</classeur>
Mon schéma est-il correcte par rapport à mon attente en ce qui concerne la récursivité de "<balises>" et de "<balise>" ?
Merci,
Stéphane
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Wed Jun 29 11:01:29 2005