Déclaration d'un attribut xml:lang
"Patrice Harmegnies" <[email protected]>
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <000301c63c8f$873dec10$0601a8c0@fujitsu> |
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]