Re : Usage du Compositeur "all"

philippe voncken <[email protected]> Mon, 9 Nov 2009 09:09:17 +0000 (GMT)
Newsgroups gmane.text.xml.french.tech
Message-ID <[email protected]>
C'est difficile de lire un mail mal encod=E9. Je me demande bien quel enc=
odage est utilis=E9 ci-dessous ?
--- En date de=A0: Ven 6.11.09, [email protected] <alain.perry@snecma=
.fr> a =E9crit=A0:

De: [email protected] <[email protected]>
Objet: [xml-tech] Usage du Compositeur "all"
=C0: [email protected]
Date: Vendredi 6 Novembre 2009, 14h32

Dans le Tutoriel XML Schema Introduction aux sch=3DE9mas W3C XML Schema d=
'Eric
van der Vlist, Dyomedea (18 d=3DE9cembre 2000)
on trouve la remarque :

"Pour =3DE9viter des combinaisons pouvant devenir complexes et m=3DEAme a=
mbigu=3D
=3DEBs,
W3C XML Schema impose une s=3DE9rie de restrictions draconiennes sur
l'utilisation des compositeurs "all" : ils ne peuvent appara=3DEEtre que =
comme
=3DE9l=3DE9ment unique tout en haut de la d=3DE9finition d'un mod=3DE8le =
de contenu=3D
 et les
particules qui les composent ne peuvent =3DEAtre que des =3DE9l=3DE9ments=
 et leur
cardinalit=3DE9 ne peut =3DEAtre sup=3DE9rieure =3DE0 un."

Dans les faits, il semblerait que cette restriction s'applique =3DE9galem=
ent
aux d=3DE9rivations et que le compositeur "all" y soit impossible d'usage=
 .

Voici un petit exemple trivial que j'ai voulu construire :

1.Soit le XML Schema

L'intention de ce sch=3DE9ma est de pouvoir ajouter 2 =3DE9l=3DE9ments =3D=
E0 un mod=3D
=3DE8le de
contenu existant.

<?xml version=3D3D"1.0" encoding=3D3D"UTF-8"?>
<xs:schema xmlns:xs=3D3D"http://www.w3.org/2001/XMLSchema" xmlns:su=3D3D"
schemaUnique" targetNamespace=3D3D"schemaUnique" elementFormDefault=3D3D"=
qualifi=3D
ed"
attributeFormDefault=3D3D"unqualified">
=A0 =A0 =A0 <xs:complexType name=3D3D"typeBase">
=A0 =A0 =A0 =A0 =A0 =A0 <xs:sequence>
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <xs:element name=3D3D"element1" type=3D=
3D"xs:string"/>
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <xs:element name=3D3D"element2" type=3D=
3D"xs:string"/>
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <xs:element name=3D3D"element3" type=3D=
3D"xs:string"/>
=A0 =A0 =A0 =A0 =A0 =A0 </xs:sequence>
=A0 =A0 =A0 </xs:complexType>
=A0 =A0 =A0 <xs:complexType name=3D3D"typeDerive">
=A0 =A0 =A0 =A0 =A0 =A0 <xs:complexContent>
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <xs:extension base=3D3D"su:typeBase">
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <xs:sequence>
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <xs:element n=
ame=3D3D"element8" type=3D3D"xs:strin=3D
g
"/>
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 <xs:element n=
ame=3D3D"element9" type=3D3D"xs:strin=3D
g
"/>
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 </xs:sequence>
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 </xs:extension>
=A0 =A0 =A0 =A0 =A0 =A0 </xs:complexContent>
=A0 =A0 =A0 </xs:complexType>
=A0 =A0 =A0 <xs:element name=3D3D"elementBase" type=3D3D"su:typeBase"/>
=A0 =A0 =A0 <xs:element name=3D3D"elementDerive" type=3D3D"su:typeDerive"=
/>
</xs:schema>

2. Soit l'occurrence :

<?xml version=3D3D"1.0" encoding=3D3D"UTF-8"?>
<su:elementDerive xmlns:su=3D3D"schemaUnique" xmlns:xsi=3D3D"
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=3D3D"schema=
Uniqu=3D
e
SchemaAvecAll.xsd">
=A0 =A0 =A0 <su:element1/>
=A0 =A0 =A0 <su:element2/>
=A0 =A0 =A0 <su:element3/>
=A0 =A0 =A0 <su:element8/>
=A0 =A0 =A0 <su:element9/>
</su:elementDerive>

3. XMLSpy (2008 r5 sp2) valide l'occurrence

4. Mais si on change le composeur "extension" par "all" (sselon l'intenti=
on
initiale, l'occurrence devrait =3DEAtre valide tant avec "sequence" qu'av=
ec
"all") , XMLSpy refuse tout simplement de valider le Schema.
La message =3DE9mis est :
File ......... \MonoSchema.xsd is not valid.
=A0 =A0 =A0 An 'all' model group is neither allowed in complex type defin=
ition
'su:typeBase' nor in its extension 'su:typeDerive'.
=A0 =A0 =A0 =A0 =A0 =A0 Error location: xs:schema / xs:complexType / xs:c=
omplexContent
/ xs:extension / xs:all
=A0 =A0 =A0 =A0 =A0 =A0 Details
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 cos-all-limited.1: An 'all' model gro=
up is neither
allowed in complex type definition 'su:typeBase' nor in its extension
'su:typeDerive'.

Mes recherches sur les liens fournis dans le message XMLSpy pour tenter d=
e
trouver une explication =3DE0 cela n'ont pas abouti.

Si quelqu'un peut me mettre sur la voie ?

Merci d'avance.





#=3D0A=3D
" This e-mail and any attached documents may contain confidential or prop=
rie=3D
tary information. If you are not the intended recipient, please advise th=
e s=3D
ender immediately and delete this e-mail and all attached documents from =
you=3D
r computer system. Any unauthorised disclosure, distribution or copying h=
ere=3D
of is prohibited."=3D0A=3D
=3D0A=3D
 " Ce courriel et les documents qui y sont attaches peuvent contenir des =
inf=3D
ormations confidentielles. Si vous n'etes=A0 pas le destinataire escompte=
, mer=3D
ci d'en informer l'expediteur immediatement et de detruire ce courriel=A0=
 ains=3D
i que tous les documents attaches de votre systeme informatique. Toute di=
vul=3D
gation, distribution ou copie du present courriel et des documents attach=
es=3D
 sans autorisation prealable de son emetteur est interdite."=3D0A=3D
#
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !

Liste de diffusion "[email protected]" (http://xmlfr.org).

Cette liste est a votre disposition pour discuter en francais de=20
tout sujet technique lie a XML.

Pour resilier votre abonnement, envoyez un message contenant=20
la commande "unsubscribe" a [email protected]
(mailto:[email protected]?Subject=3Dunsubscribe)




     =20