From: Alexandre Arcouteil (lex@free.fr)
Date: 10/10/2003 - 09:42
xml-tech-bounce@xmlfr.org wrote:
>
> Bonjour,
>
> Je cherche à construire la hierarchie de types suivante:
> En utilisant systématiquement des <xs:all> j'espere bien m'affranchir de toute contrainte d'ordre. helas, je m'aperçois qu'un element de type B, ayant la structure suivante:
>
> <b>
> <name>Text</name>
> <properties>Text</properties>
> <description>Text</description>
> <strings>Text</strings>
> </b>
> est annoncé invalide. la validateur attendant que les elements du groupe issu du type A se trouvent toujours avant les elements issus du type B.
Bonjour
Dans le cas d'une extension, les éléments sont forcément ajoutés en
séquence par rapport aux élément du type de base (cf Schémas XML,
JJthomasson, p112)
C'est donc a priori sans issue pour vous ; mais vous pouriez construire
votre schéma "à l'envers", c'est à dire par restriction plutôt que par
extension. Par exemple :
<xs:complexType name="B">
<xs:all>
<xs:element name="name" />
<xs:element name="description" minOccurs="0"/>
<xs:element name="properties" />
<xs:element name="strings" />
</xs:all>
</xs:complexType>
<xs:complexType name="A">
<xs:complexContent>
<xs:restriction base="B">
<xs:all>
<xs:element name="properties" />
<xs:element name="strings" />
</xs:all>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
C'est une solution à court terme, le temps de migrer vers Relax NG ;)
AleX
--
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)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|