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)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.