Merci pour vos réponses.
> Que cherches-tu comme type d'outil? On peut en faire beaucoup de choses
> avec ça :)
Mon besoin est pour l'instant très limité.
J'utilise Relax-NG dans le contexte d'un rdf-schema qui sert de fichier
de configuration à une application (définit un modèle de donnée).
Pour éviter de faire dresser les cheveux aux puristes, prenez par
exemple la déclaration officielle du Dublin Core
<http://dublincore.org/2003/03/24/dces>
C'est un rdf schema assez simple, permettant une grande expressivité
dans la documentation des propriétés (titre, description, etc)
On pourrait souhaiter dire que pour la propriété Dubiln Core "title",
l'élément préféré pour l'exprimer serait <dc:title/>.
Dans certaines applications, j'ai étendu le rdf-schema Dublin Core, en
précisant pour chaque propriété son élément en Relax-NG (plutôt que
d'inventer une syntaxe maison)
Cela donne quelque chose comme
<rdf:Property rdf:about="http://purl.org/dc/elements/1.1/title"
rdf:ID="title">
<ng:element ns="http://purl.org/dc/elements/1.1/" name="dc:title">
<ng:text/>
</ng:element>
<rdfs:label xml:lang="en">Title</rdfs:label>
<rdfs:label xml:lang="fr">Titre</rdfs:label>
<rdfs:comment xml:lang="en">A name given to the
resource.</rdfs:comment>
<dc:description xml:lang="en">Typically, a Title will be a name by
which the resource is
formally known.</dc:description>
<rdfs:isDefinedBy rdf:resource="http://purl.org/dc/elements/1.1/"/>
<dcq:issued>1999-07-02</dcq:issued>
<dcq:modified>2002-10-04</dcq:modified>
<dc:type
rdf:resource="http://dublincore.org/usage/documents/principles/#element"/>
<dcq:hasVersion
rdf:resource="http://dublincore.org/usage/terms/history/#title-004"/>
</rdf:Property>
Cet exemple simple m'a encouragé à utiliser d'autres choses de Relax-NG,
comme <optional/>, <zeroOrMore/>, <data/>... toutes choses très bien
pensées qui exprime beaucoup de besoins applicatifs (exemple: génération
de formulaire, faut-il mettre un champ obligatoire et/ou répétable ?)
Pour l'instant, je fabrique juste une vue documentaire qui génère un
exemple XML sur <ng:element/>, les outils applicatifs internes se
suffisant d'un sous-ensemble très limité de rng.
Mais tant qu'à faire, c'est aussi l'occasion de se faire une idée de ce
qui existe, et ne pas éviter dès le départ d'être générique.
> Non. Il existe une série d'XSLT pour convertir du RNG en d'autres
> formats, notamment en graphes SVG. Mais je ne sais plus où je l'ai vu.
> Ceci dit je dois l'avoir qui traine sur un de mes disques quelque part,
> donc je dois pouvoir creuser si tu ne le trouves pas.
Pour mon objet, ce n'est pas trop un besoin, les graphes sont très
simples, par contre, le texte de définition d'une propriété (= élément)
peut être de plusieurs pages (d'où ce choix d'insérer les "shemata" dans
la documentation structurée, plutôt que le contraire).
> Il y avait aussi dans le temps un outil XSLT pour convertir le RNG de
> SVG Tiny 1.2 en diverses parties de la spec, mais c'est devenu trop
> compliqué à gérer et ils ont été remplacés par un bon vieux script Perl
> des familles. XSLT n'est pas forcément idéal pour tous les traitements RNG.
:o(
> Non, si tu regardes la spec RNG, tu verras qu'il y a une syntaxe auteur
> qui est optimisée pour les humains, et un processus de simplification
> générant une syntaxe simplifiée qui correspond à ce qu'un programme
> comprendra mieux (ainsi qu'au modèle interne).
Je n'ai pas trop le temps d'étudier cet aspect ces jours ci, mais je
vais lire attentivement la réponse d'Eric Van der Vlist sur ce sujet.
--
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 Thu Oct 13 12:17:58 2005