>> @datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
>
> Oui. Vous pouvez mettre cet attribut sur la racine de voter schéma pour
> ne pas le répéter partout...
Je n'ose pas trop vous dire dans quel contexte s'insère ces snippets
relax-NG, j'ai peur d'être loin des standards.
Il s'agit d'un fichier rdfs du genre de celui-ci
http://dublincore.org/2003/03/24/dces
Le but est de définir un modèle documentaire de notices bibliographiques
pour lequel la définition sémantique des propriétés est beaucoup plus
importante que le format (beaucoup de documentation).
Relax-NG sert à spécifier l'instanciation XML de ces notices. Dans
l'exemple plus haut, ce serait pour dire qu'un "creator" Dublin Core
doit être mis dans un <dc:creator/>, mais qu'il pourrait aussi provenir
d'un tableau dont le nom de colonne serait creator, avec le ';' comme
séparateur ; tout aussi bien que d'un format textuel de type champ:valeur
<rdf:Property rdf:about="http://purl.org/dc/elements/1.1/creator">
<rdfs:label xml:lang="en-US">Creator</rdfs:label>
<rdfs:comment xml:lang="en-US">...</rdfs:comment>
<!-- ... -->
<ng:element ns="http://purl.org/dc/elements/1.1/" name="dc:creator">
<ng:data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="token">
<!--
invite au normalize-space() sur les valeurs entrées,
provenant probablement d'un contrôle de saisie de type <html:input/>
-->
</ng:data>
</ng:element>
</rdf:Property>
<rdf:Property rdf:about="http://purl.org/dc/elements/1.1/description">
<!-- ... -->
<ng:element ns="http://purl.org/dc/elements/1.1/" name="dc:description">
<ng:data
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
type="string">
<!-- Permet d'indiquer ici que les sauts de ligne ou tabulations
sont significatifs, et que potentiellement, un formulaire de saisie pour
cette propriété à tout intérêt à être un textarea -->
</ng:data>
</ng:element>
</rdf:Property>
> Oui, si on accepte de coupler les deux.
>
> Prenons un exemple:
>
> start = foo1 | foo2
>
> foo1 = element foo { attribute bar {"1"}, text }
> foo2 = element foo { attribute bar {"2"}, text }
>
> ou en XML :
>
> <?xml version="1.0" encoding="UTF-8"?>
> <grammar xmlns="http://relaxng.org/ns/structure/1.0">
> <start>
> <choice>
> <ref name="foo1"/>
> <ref name="foo2"/>
> </choice>
> </start>
> <define name="foo1">
> <element name="foo">
> <attribute name="bar">
> <value>1</value>
> </attribute>
> <text/>
> </element>
> </define>
> <define name="foo2">
> <element name="foo">
> <attribute name="bar">
> <value>2</value>
> </attribute>
> <text/>
> </element>
> </define>
> </grammar>
>
> Lorsque je "couple Schematron et RNG", si j'écris un prédicat Schematron
> dans la deuxième définition de l'élément foo, j'espère implicitement
> qu'il ne s'appliquera pas dans la première... C'est ce que fait MSV.
Parfait ! Nous ne nous couperons pas ainsi de spécifications.
> La condition sur la règle Schematron si je l'écrivais dans un schéma
> séparé serait donc "/foo[@bar='2']" (et cela pourrait être beaucoup plus
> compliqué dans un schéma plus complexe)...
>>> Si, vous pouvez ajouter un attribut "externe" (c'est à dire appartenant
>>> à un espace de noms autre que RNG) dans l'élément param!
>> quelque chose comme
>> @xform:alert par exemple ?
>
> Oui, le principe serait le même.
>
>> C'est un peu un abus puisque le nom n'est pas défini comme attribut en
>>> Par contre, si vous utilisez un processeur RNG pour valider vos
>>> documents, il ne sera pas évident de remplacer le message d'erreur par
>>> le contenu de votre attribut.
>> Je n'en attends pas tant.
>
> Alors il n'y a pas de problème!
--
Frédéric Glorieux (AJLSM, http://ajlsm.com)
--
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 Nov 16 12:42:45 2005