Re: Déclaration d'un attribut xml:lang
"Patrice Harmegnies" <[email protected]>
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <000001c63d0f$80424bb0$0601a8c0@fujitsu> |
Je me réponds J'ai trouvé une solution pour une namespace différente Utiliser l'importation d'un autre schema ... Et anyAttribute avec strict Le fichier xml <?xml version="1.0" encoding="ISO-8859-1"?> <news xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:a="http://www.hpph.net" xsi:noNamespaceSchemaLocation="question1.xsd"> <new reference="A001" a:lang="fr"> <titre>exemple</titre> <contenu>ceci est un exemple</contenu> </new> </news> ********************* Le fichier xsd question1.xsd <?xml version="1.0" encoding="ISO-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:import namespace="http://www.hpph.net" schemaLocation="question1b.xsd" /> <!-- importation du schema en rapport avec la déclaration de la namespace a --> <xs:element name="news"> <xs:complexType> <xs:sequence> <xs:element name="new" type="newType"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="titre" type="xs:string"/> <xs:element name="contenu" type="xs:string"/> <xs:complexType name="newType"> <xs:sequence> <xs:element ref="titre"/> <xs:element ref="contenu"/> </xs:sequence> <xs:attribute name="reference" type="xs:string" use="required"/> <xs:anyAttribute namespace="##other" processContents="strict"/> <!-- ne tient pas compte de tout attribut suivant l'attribut reference --> </xs:complexType> </xs:schema> ******************** L'autre schema question1b.xsd <?xml version="1.0" encoding="ISO-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.hpph.net" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:attribute name="lang" type="xs:string"/> </xs:schema> Le problème: si je remplace a par xml dans la structure (afin de valider xml:lang) La validation estincorrecte déclaration de la namespace pas appréciée Une solution?? Merci d'avance -----Message d'origine----- De : [email protected] [mailto:[email protected]] De la part de Patrice Harmegnies Envoyé : mardi 28 février 2006 18:51 À : [email protected] Objet : [xml-tech] Déclaration d'un attribut xml:lang Voilà: dernièrement, j'avais posé une question sur la validation schema d'un attribut avec un namespace xml. Exemple de structure <?xml version="1.0" encoding="ISO-8859-1"?> <news xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Webmasters\2006\xml\question.xsd"> <new reference="A001" xml:lang="fr"> <titre>exemple</titre> <contenu>&test; ceci est un exemple</contenu> </new> </news> Pour ne pas avoir de problème avec la validation, j'utilise xs:anyAttribute pour me permettre de ne pas tenir compte de l'attribut xml:lang ... Le schema <?xml version="1.0" encoding="ISO-8859-1" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="news"> <xs:complexType> <xs:sequence> <xs:element name="new" type="newType" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="titre" type="xs:string" /> <xs:element name="contenu" type="xs:string" /> <xs:complexType name="newType"> <xs:sequence> <xs:element ref="titre"/> <xs:element ref="contenu"/> </xs:sequence> <xs:attribute name="reference" type="xs:string" use="required" /> <xs:anyAttribute namespace="##other" processContents="skip" /> <!-- <xs:attribute name="lang" type="xs:string" use="required" />--> </xs:complexType> </xs:schema> Pour processContents j'utilise skip ou lax Si strict je dois déclarer l'attribut par exemple dans un autre fichier xsd Mais comment faire ? anyAttribute : nécessite de déclarer l'attribut tout à la fin dans la balise obligatoirement Existe-t-il une autre solution que anyAttribute? Merci pour le renseignement ... P. Harmegnies [email protected] -- 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 tout sujet technique lie a XML. Pour resilier votre abonnement, envoyez un message contenant la commande "unsubscribe" a [email protected] (mailto:[email protected]?Subject=unsubscribe)