Re: Soucis avec le motif "interleave" de relaxNG
Lionel Villard <[email protected]> Fri, 11 May 2007 16:42:35 -0400
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <[email protected]> |
La spec dit:
For a pattern <interleave> /p1/ /p2/ </interleave>,
* there must not be a name that belongs to both the name class of an
element pattern referenced by a ref pattern occurring in /p1/ and
the name class of an element pattern referenced by a ref pattern
occurring in /p2/, and
Je connais rien a RelaxNG mais il me semble que ton schema n'est pas
valide car ton interleave fait reference a 2 elements ayant le meme nom.
Lionel
SCHNEIDER, Stephane wrote:
> Bonjour à tous,
>
> J ai un probleme en relaxNG avec "interleave" et la notion d'ordre.
>
> "Interleave " est censé introduire la notion d'ordre libre : cf http://xmlfr.org/oasis/committees/relax-ng/tutorial-20011203-fr.html#IDAN1YR <http://xmlfr.org/oasis/committees/relax-ng/tutorial-20011203-fr.html#IDAN1YR>
> Cependant, la validation par <Oxygen/> me donne l'erreur suivante : "E overlapping element names in operands of "interleave" , en pointant sur l élement <struct>.
> Dans mon exemple, comment faire pour arriver à spécifier un ordre non determiné sur les éléments fils listés dans "grp-term". Etant donnée que j ai d'autres cas plus complexes,
> je ne peux pas m'amuser à chaque fois à definir toutes les motifs possibles avec des "group", des "optional" et des "choice".
>
>
> Voila un bout du RelaxNG simplifié :
>
> <?xml version="1.0" encoding="UTF-8"?>
> <grammar xmlns="http://relaxng.org/ns/structure/1.0 <http://relaxng.org/ns/structure/1.0> ">
> <start>
> <ref name="root_element"/>
> </start>
> <define name="root_element">
> <element name="struct">
> <attribute name="type">
> <value>termSection</value>
> </attribute>
> <ref name="grp-term"/>
> </element>
> </define>
> <define name="grp-term">
> <interleave>
> <ref name="term_dc" />
> <ref name="admSta_dc" />
> </interleave>
> </define>
> <define name="admSta_dc">
> <element name="feat">
> <attribute name="type">
> <value>administrativeStatus</value>
> </attribute>
> <text />
> </element>
> </define>
> <define name="term_dc">
> <element name="feat">
> <attribute name="type">
> <value>term</value>
> </attribute>
> <text />
> </element>
> </define>
> </grammar>
>
> Il doit valider :
>
> <struct type="termSection">
> <feat type="administrativeStatus">bad</feat>
> <feat type="term">acide</feat>
> </struct>
>
> ou
>
> <struct type="termSection">
> <feat type="term">acide</feat>
> <feat type="administrativeStatus">bad</feat>
> </struct>
>
> Une idée ??? Merci
>
> Li Mu Bai
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "[email protected]" (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 [email protected]
> (mailto:[email protected]?Subject=unsubscribe)
>
>
>
>
>