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