xml decid : Stratégies, marchés, affaires autour de XML.
[xml-decid] XML schema : pb de représentation
Auteur: Jean-Fabien.Curie@answare.fr
Date: 15/07/2002 - 12:12
Bonjour,
voici la struture de mon schéma :
<node>
<map> -------------> minOccurs = 0 maxOccurs = unbounded
<entry/> --------> idem
<entry/>
.....
<map/>
<node> <------- le pb se situe là !!! (minOccurs = 0 maxOccurs = unbounded)
<node/>
si node est présent, il se peut (non obligatoire) qu'il ait la même structure que
son node parent.
Comment puis écrire cela en XML schéma.
Vous trouverez ci-dessous l'exemple concret.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="edit" maxOccurs="unbounded">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="add" type="tailorType" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="change" type="tailorType"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="remove" type="tailorType"
minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="replace" type="tailorType"
minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute ref="parent"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="type"/>
</xs:complexType>
</xs:element>
<xs:complexType name="mapType">
<xs:sequence>
<xs:element name="entry" type="entryType" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="mapnodeType"> <---- PB concernant de type
<xs:sequence>
<xs:element name="map" type="mapType" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="node" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:extension base="nodeType">
<xs:sequence>
<xs:element name="map" type="mapType" minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="node" minOccurs="0"
maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:extension base="nodeType"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType> -------> FIN
<xs:complexType name="nodeType">
<xs:attribute ref="name"/>
<xs:attribute ref="applies-to"/>
</xs:complexType>
<xs:complexType name="entryType">
<xs:attribute ref="key"/>
<xs:attribute ref="value"/>
<xs:attribute ref="Revisevalue"/>
</xs:complexType>
<xs:complexType name="tailorType">
<xs:sequence>
<xs:element name="map" type="mapType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="node" type="mapnodeType" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
<xs:attribute name="applies-to" type="xs:NMTOKEN" use="optional"/>
<xs:attribute name="key" type="xs:NMTOKEN" use="optional"/>
<xs:attribute name="value" type="xs:string" use="optional"/>
<xs:attribute name="Revisevalue" type="xs:NMTOKEN" use="optional"/>
<xs:attribute name="parent" type="xs:anyURI" use="required"/>
<xs:attribute name="type" type="xs:NMTOKEN" use="required" fixed="system"/>
</xs:schema>
Question subsidiaire : pourquoi le type NMTOKEN n'accepte pas de String vide ("")
?
Est-ce mon éditeur (XML Spy) ou autre chose ?
--
Devenez redacteur <XML>fr et contribuez au developpement
du xml francophone (http://xmlfr.org/infos/redacteurs) !
Liste de diffusion "xml-decid@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet lie a XML.
Pour resilier votre abonnement, envoyez un message contenant la
commande "unsubscribe" a xml-decid-request@xmlfr.org
(mailto:xml-decid-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.4 le 29/07/2002 - 15:14 UTC
webmaster@xmlfr.org
|