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 : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org] De la part
de Patrice Harmegnies
Envoyé : mardi 28 février 2006 18:51
À : xml-tech@xmlfr.org
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
patrice.harmegnies@skynet.be
--
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)
--
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 Wed Mar 1 10:07:10 2006