Le mercredi 16 novembre 2005 à 11:42 +0100, Frédéric Glorieux a écrit :
> > (http://books.xmlschemata.org/relaxng/ch17-77188.html)
>
> Tout d'abord, merci de rappeler le lien à votre livre, qui me permet de
> trouver les réponses à beaucoup de mes questions.
>
> >> <rng:data type="xsd:token">
> >> <rng:param name="pattern">[A-Z- ]+(, [A-Z][^\(\(]+)?</rng:param>
> >> </rng:data>
>
> > Effectivement et je fais partie de ceux qui ont milité pour que ce soit
> > un NCName :-) ...
>
> Et l'on qualifie comme ici ?
>
> http://books.xmlschemata.org/relaxng/relax-CHP-8-SECT-1.html#relax-CHP-8-SECT-1.1
>
> avec un attribut héritable
> @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 vais donc utiliser cela, et au niveau applicatif, cela simplifie
> >> sérieusement la gestion des messages d'alertes. La localisation n'est
> >> pas encore un besoin pour nous, mais quelle est la bonne pratique
> >> schématron ? Sur un attribut id des assert ou report ?
>
> Pardonnez moi pour ma question, quand je parlais localisation, je
> pensais traduction des messages, ce qui ne retire pas l'intérêt de votre
> réponse.
OK.
> > Ce que conseille Rick Jelliffe est un peu extrême... Il voudrait que
> > assert et report ne soient jamais employés en dehors de rule (qui
> > définit un noeud contexte).
>
> De quoi produire par exemple un <xsl:template/> ?
> Pour mon cas un contexte RelaxNG me permet de conserver cette information ?
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.
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)...
> [regexp et schématron]
> > Effectivement, vous pouvez utiliser XPath 2.0 dans la version ISO de
> > Schematron... Mais je ne pense pas que MSV le supporte.
>
> Et l'écriture serait beaucoup moins limpide que --v
>
> >> <rng:param name="pattern">[A-Z- ]+(, [A-Z][^\(\(]+)?</rng:param>
Oui.
> > 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
> xforms mais
>
> > Le schéma de l'élément param est:
> >
> > element param
> > {
> > attribute name { xsd:NCName },
> > (
> > attribute ns { text }?,
> > attribute datatypeLibrary { xsd:anyURI }?,
> > attribute * - (rng:* | local:*) { text }*
> > ),
> > text
> > }
> >
> >
> > Les attributs externes correspondent au pattern
> > "attribute * - (rng:* | local:*)" ...
> >
> >> pensez
> >> vous que cela soit un risque pour d'autres applications ?
> >
> > Non puisque c'est conforme à la norme :-) ...
> >
> > 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!
Eric van der Vlist
>
>
--
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
------------------------------------------------------------------------
--
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:03:26 2005