Soucis avec le motif "interleave" de relaxNG
"SCHNEIDER, Stephane" <[email protected]> Wed, 25 Apr 2007 17:42:02 +0200
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <B589F7D62E8DF644B5FC0B14352937B504975C39@laelia.ads.intra.inist.fr> |
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