Le mercredi 01 mars 2006 à 14:20 +0100, Eric van der Vlist a écrit :
> Le mercredi 01 mars 2006 14:16 +0100, Patrice Harmegnies a crit :
> > Donc xml est rserv et moins de remplacer xml par un autre prfixe erreur
> > de validation
>
> Le prefixe "xml" est reserve a l'espace de noms XML et ne devrait pas
> provoquer d'erreur dans ce cas!
Pour récapituler, vous avez trois solutions suivant le niveau de
contrôle que vous voulez effectuer sur ces attributs.
1) Si vous voulez en contrôler la liste et spécifier, par exemple, que
vous ne voulez autoriser que l'attribut xml:lang, vous importez le
schéma de l'espace de noms XML et faites référence aux attributs que
vous voulez autoriser, par exemple :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="http://ns.xmlfr.org/example/" xmlns:example="http://ns.xmlfr.org/example/">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:element name="document">
<xs:complexType>
<xs:sequence>
<xs:element ref="example:titre"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="titre">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:token">
<xs:attribute ref="xml:lang"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
2) Si vous voulez autoriser tous les attributs xml:*, vous importez le
schéma de l'espace de noms XML et utilisez xs:anyAttribute en mode
"strict" :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="http://ns.xmlfr.org/example/" xmlns:example="http://ns.xmlfr.org/example/">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:element name="document">
<xs:complexType>
<xs:sequence>
<xs:element ref="example:titre"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="titre">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:token">
<xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="strict"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
3) Si vous voulez autoriser tous les attributs xml:* sans faire aucun
contrôle, vous n'avez pas besoin d'importer de schéma et vous pouvez
utiliser xs:anyAttribute en mode "lax" :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="http://ns.xmlfr.org/example/" xmlns:example="http://ns.xmlfr.org/example/">
<xs:element name="document">
<xs:complexType>
<xs:sequence>
<xs:element ref="example:titre"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="titre">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:token">
<xs:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
Le préfixe "xml" est "magique" en ce sens qu'il est associé d'office à
l'URI "http://www.w3.org/XML/1998/namespace" et vous ne devriez pas
avoir à le déclarer.
Cordialement,
Eric van der Vlist
--
GPG-PGP: 2A528005
Le premier annuaire des apiculteurs 100% XML!
http://apiculteurs.info/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
-- Attached file included as plaintext by Ecartis --
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQBEBaoNDvn+ZCpSgAURAniEAJ96O1iMVv1m808rJaiBiqN4Sm4N7wCePnr9
rvlu1+XV+PbB2i9RLiZz0CA=
=5Fdz
-----END PGP SIGNATURE-----
--
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 15:05:02 2006