Bonjour,
Le vendredi 13 octobre 2006 à 10:28 +0200, Amoureux erwan a écrit :
.../...
> mais n'est ce pas en contradiction avec
>
> Elements in a substitution group must have the same type as the head
> element, or they can have a type that has been derived from the head
> element's type.
>
> ou est ce qu'il suffit de ne pas donner de type au head element pour
> se permettre d'avoir des éléments avec des types differents ?
Cela dépend de l'interprétation de la spec...
Une interprétation pointilleuse peut comprendre que la dérivation entre
les éléments du groupe de substitution et leur tête doit être explicite
et considérer que votre schéma est invalide.
Les versions récentes des processeurs XML Schema ont tendance à adopter
une interprétation moins pointilleuse et considérer que dans le cas de
ce schéma, la tête du groupe de substitution accepte n'importe quel
contenu et que tout type simple ou complexe peut être considéré comme
dérivé.
Pour les processeurs qui acceptent cette interprétation, il suffit donc
en effet de ne pas spécifier de type pour la tête d'un groupe de
substitution pour permettre d'avoir des éléments avec des types
totalement différents.
Cette solution risque toutefois de poser des problèmes
d'interopérabilité et vous pouvez préférer définir explicitement cette
dérivation, par exemple sous la forme :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:complexType name="empty">
<xs:sequence/>
</xs:complexType>
<xs:element name="r">
<xs:complexType>
<xs:sequence>
<xs:element ref="a-typ" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="a-typ" type="empty" abstract="true"/>
<xs:element name="a" substitutionGroup="a-typ">
<xs:complexType>
<xs:complexContent>
<xs:extension base="empty">
<xs:choice>
<xs:element name="b" type="xs:string"/>
<xs:element name="c" type="xs:string"/>
<xs:element name="d" type="xs:string"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="e" substitutionGroup="a-typ">
<xs:complexType>
<xs:complexContent>
<xs:extension base="empty">
<xs:sequence>
<xs:element name="f" type="xs:int"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:schema>
Cordialement,
Eric van der Vlist
>
> merci d'avance
>
>
> --
> 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)
>
>
--
GPG-PGP: 2A528005
Don't you think all these XML schema languages should work together?
http://dsdl.org
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
-- Attached file included as plaintext by Ecartis --
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
iD8DBQBFL1LpDvn+ZCpSgAURAhOYAJ9QT+/lzBAFcZnOlukbVHmY72wokgCgkZlr
KGX43yRYNJCsnfmD6EQ3utM=
=H/NZ
-----END PGP SIGNATURE-----
--
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 Fri Oct 13 10:48:42 2006