Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

xml tech : Technologies XML

[xml-tech] Re: Relax NG

[xml-tech] Re: Relax NG

Auteur: Frédéric Glorieux <frederic.glorieux@ajlsm.com>
Date: 16/11/2005 - 11:42

>> @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

Archive générée par hypermail 2.1.8 le 30/11/2005 - 16:12 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement