Usage du Compositeur "all"
[email protected] Mon, 9 Nov 2009 11:41:28 +0100
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <OF6FBB0559.95BB8080-ONC1257669.003A4970-C1257669.003ABAE2@bsc.snm.snecma> |
Bonjour,
Il semblerait qu'un pb d'encodage fasse que des correspondants de la list=
e
ne puissent lire facilement mon message.
Aussi, je me permets de le rejouer en enlevant les caracteres accentues.
Dans le Tutoriel XML Schema Introduction aux schemas W3C XML Schema d'Eri=
c
van der Vlist, Dyomedea (18 d=3DE9cembre 2000)
on trouve la remarque :
"Pour eviter des combinaisons pouvant devenir complexes et meme ambigues,
W3C XML Schema impose une serie de restrictions draconiennes sur
l'utilisation des compositeurs "all" : ils ne peuvent apparaitre que comm=
e
element unique tout en haut de la definition d'un modele de contenu et le=
s
particules qui les composent ne peuvent etre que des elements et leur
cardinalite ne peut etre superieure a un."
Dans les faits, il semblerait que cette restriction s'applique egalement
aux derivations 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 schema est de pouvoir ajouter 2 elements a un modele 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">
<xs:complexType name=3D3D"typeBase">
<xs:sequence>
<xs:element name=3D3D"element1" type=3D3D"xs:string"/>
<xs:element name=3D3D"element2" type=3D3D"xs:string"/>
<xs:element name=3D3D"element3" type=3D3D"xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name=3D3D"typeDerive">
<xs:complexContent>
<xs:extension base=3D3D"su:typeBase">
<xs:sequence>
<xs:element name=3D3D"element8" type=3D3D"x=
s:strin=3D
g
"/>
<xs:element name=3D3D"element9" type=3D3D"x=
s:strin=3D
g
"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name=3D3D"elementBase" type=3D3D"su:typeBase"/>
<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">
<su:element1/>
<su:element2/>
<su:element3/>
<su:element8/>
<su:element9/>
</su:elementDerive>
3. XMLSpy (2008 r5 sp2) valide l'occurrence
4. Mais si on change le composeur "extension" par "all" (selon l'intentio=
n
initiale, l'occurrence devrait etre valide tant avec "sequence" qu'avec
"all") , XMLSpy refuse tout simplement de valider le Schema.
Le message emis est :
File ......... \MonoSchema.xsd is not valid.
An 'all' model group is neither allowed in complex type definition
'su:typeBase' nor in its extension 'su:typeDerive'.
Error location: xs:schema / xs:complexType / xs:complexConten=
t
/ xs:extension / xs:all
Details
cos-all-limited.1: An 'all' model group 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 a 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 pas le destinataire escompte, =
mer=3D
ci d'en informer l'expediteur immediatement et de detruire ce courriel a=
ins=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
#