now when I convert to rnc and load nxml mode I try to add any element within the tuplet element and I get cannot complete in this context.
I am including my entire schema because maybe the problem is elsewhere.
Thanks
Aaron
On Mon, Jul 25, 2005 at 08:32:24PM +0200 or thereabouts, Eric van der Vlist wrote:
> Hi Aaron,
>
> On lun, 2005-07-25 at 21:18 +0300, Aaron wrote:
> > Hi all,
> > I need some help, this is where I am getting confused.
> .../...
> > I have played with choice, oneormore and optional to no avail.
> >
> > The behaviour I want is that within the tuplet element all the referenced elements can appear in any order as many times or not at all.
>
> What's wrong with something such as:
>
> <element name="tuplet">
> <mixed>
> <attribute name="bracket">
> <data type="integer"/>
> </attribute>
> <attribute name="label">
> <data type="integer"/>
> </attribute>
> <attribute name="type">
> <data type="integer"/>
> </attribute>
> <zeroOrMore>
> <choice>
> <ref name="beam"/>
> <ref name="breathe"/>
> <ref name="crescbegin"/>
> <ref name="crescend"/>
> <ref name="dimbegin"/>
> <ref name="dimend"/>
> <ref name="dynamic"/>
> <ref name="glissando"/>
> <ref name="markup"/>
> <ref name="emphasis"/>
> <ref name="prall"/>
> <ref name="turn"/>
> <ref name="multrest"/>
> <ref name="slurbegin"/>
> <ref name="slurend"/>
> <ref name="staccato"/>
> <ref name="slurbegin"/>
> <ref name="slurend"/>
> <ref name="grace"/>
> <ref name="trill"/>
> <ref name="acciaccatura"/>
> <ref name="beaming"/>
> </choice>
> </zeroOrMore>
> </mixed>
> </element>
>
> ???
>
> Eric
>
> --
> Weblog:
> http://eric.van-der-vlist.com/blog?t=category&a=English
> ------------------------------------------------------------------------
> 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
> ------------------------------------------------------------------------
>
>
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
YAHOO! GROUPS LINKS
- Visit your group "rng-users" on the web.
- To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
- Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
<?xml version="1.0" encoding="UTF-8"?> <grammar ns="" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"> <start> <!--Here is an outline of the structure of lilach a book can be the root element it must have either one or more pieces or one or more songs--> <choice> <ref name="book"></ref> <ref name="piece"></ref> <ref name="song"></ref> <ref name="set"></ref> </choice> </start>
<!--define set -->
<define name="set">
<oneOrMore>
<ref name="book" />
</oneOrMore>
</define>
<!--begin book define -->
<define name="book">
<element name="book">
<element name="title">
<text/>
</element>
<optional><element name="bookinfo">
<text />
<ref name="frontmatter"/>
</element></optional>
<!--A book can have one or more pieces or one or more songs --><!-- a
piece can be without any movements(the child of piece will be score or if it
has movements then movement will be the child of piece-->
<choice>
<zeroOrMore>
<ref name="piece"></ref>
<ref name="movement"></ref>
</zeroOrMore>
<zeroOrMore><ref name="song" /></zeroOrMore>
</choice></element>
</define>
<!-- piece defined -->
<define name="piece">
<element name="piece">
<text />
<optional>
<element name="pieceinfo">
<text />
<ref name="frontmatter"></ref>
</element>
</optional><choice>
<zeroOrMore><ref name="movement"></ref></zeroOrMore>
<zeroOrMore><ref name="score"></ref></zeroOrMore>
</choice>
</element>
</define>
<define name="song">
<element name="song">
<text />
<element name="songinfo"><text />
<ref name="frontmatter"></ref>
</element>
<ref name="score"></ref>
<optional> <ref name="movement"></ref></optional>
<optional><ref name="system"></ref></optional>
<optional><ref name="part"></ref></optional>
<optional><element name="verse">
<text />
</element></optional>
<optional>
<element name="chorus">
<text />
</element>
</optional>
<optional>
<element name="refrain">
<text />
</element>
</optional>
</element>
</define>
<define name="movement">
<zeroOrMore>
<element name="movement">
<text />
<element name="movementinfo">
<text />
<ref name="frontmatter"/>
<text/>
</element>
<ref name="score" />
<optional><ref name="system" />
</optional> </element>
</zeroOrMore></define>
<!--section,phrase,motiv are like a div element in html,
wrappers to help divide or for styling usng external style sheet. However they
have musical meanings which will make them obvious and useful. --><!--
<optional>
<ref name="section" />
</optional>
<optional>
<ref name="phrase" />
</optional>
<optional>
<ref name="motiv" />
</optional>
<ref name="measure" />
</zeroOrMore></define>
-->
<define name="section">
<element name="section">
<text />
</element></define>
<!--phrase is like a div element in html -->
<define name="phrase"><element name="phrase">
<text />
</element></define>
<define name="motiv"><element name="motiv">
<text />
</element></define>
<define name="lyrics">
<element name="lyrics">
<text/>
</element>
<element name="include">
<attribute name="ref">
<data type="NCName"/>
</attribute>
</element>
</define>
<define name="system">
<optional><element name="system"><text />
<ref name="part"></ref>
</element>
</optional>
</define>
<define name="part">
<oneOrMore>
<element name="part">
<text />
<attribute name="name">
</attribute>
<ref name="body" />
</element>
</oneOrMore>
</define>
<define name="score">
<element name="score">
<attribute name="genre">
<choice>
<value>vocallyrics</value>
<value>choir</value>
<value>piano</value>
<value>orchestral</value>
<value>ensemble</value>
<value>percussion</value>
</choice>
</attribute>
<ref name="body" />
</element>
</define>
<define name="body">
<element name="body"><text />
<ref name="header" />
<optional><ref name="midi" /></optional>
<oneOrMore><ref name="measure" /></oneOrMore>
<optional><ref name="lyrics" /></optional>
<optional><ref name="tempo" /></optional>
</element>
</define>
<define name="frontmatter">
<optional>
<element name="language">
<text/>
</element>
</optional>
<optional>
<element name="title">
<text/>
</element>
</optional>
<optional>
<element name="subtitle">
<text/>
</element>
</optional>
<optional>
<element name="composer">
<text/>
</element>
</optional>
<optional>
<element name="instrument">
<text/>
</element>
</optional>
<optional>
<element name="texidoc">
<text/>
</element>
</optional>
</define>
<define name="tempo">
<element name="tempo">
<attribute name="mm">
<data type="integer"/>
</attribute>
<attribute name="note">
<data type="integer"/>
</attribute>
<text />
</element>
</define>
<define name="comment">
<element name="comment">
<text />
</element>
</define>
<define name="time">
<element name="time">
<choice>
<value>4/4</value>
<value>3/4</value>
<value>2/4</value>
<value>5/6</value>
<value>6/4</value>
<value>7/4</value>
<value>6/8</value>
<value>2/2</value>
<value>2/8</value>
<value>3/8</value>
<value>4/8</value>
<value>5/8</value>
</choice>
<text/>
</element>
</define>
<define name="clef">
<element name="clef">
<text />
</element>
</define>
<define name="key">
<element name="key">
<attribute name="modus"><choice>
<value>major</value>
<value>minor</value>
<value>modal</value>
<value>microtonal</value>
</choice></attribute>
<text />
</element>
</define>
<define name="header">
<element name="header">
<text /><oneOrMore>
<choice>
<ref name="time"/>
<ref name="clef" />
<ref name="key" />
</choice>
</oneOrMore>
</element>
</define>
<define name="midi">
<element name="midi"><text />
<optional><attribute name="notevalue"></attribute></optional>
<optional> <attribute name="mm"></attribute></optional>
<element name="gminstname"><text /></element>
<optional><element name="progname"><text /></element></optional>
<optional><element name="patchnumber"><text /></element></optional>
</element>
</define>
<define name="measure">
<element name="measure">
<optional>
<attribute name="barline">
<choice><value>double</value><value>single</value><value>final</value><value>dottedouble</value></choice>
</attribute>
</optional>
<optional><ref name="time" /></optional>
<optional><ref name="clef" /></optional>
<optional><ref name="key" /></optional>
<optional><ref name="tempo" /></optional>
<optional>
<attribute name="bartype">
<choice><value>repeat</value><value>firstending</value><value>secondending</value></choice>
</attribute>
</optional>
<optional>
<attribute name="mark">
<data type="NCName"/>
</attribute>
</optional>
<optional>
<attribute name="num">
<data type="integer"/>
</attribute>
</optional>
<optional>
<attribute name="type">
<data type="NCName"/>
</attribute>
</optional>
<optional>
<attribute name="value">
<data type="integer"/>
</attribute>
</optional>
<zeroOrMore>
<text/>
<ref name="beam"/>
<ref name="breathe"/>
<ref name="crescbegin"/>
<ref name="crescend"/>
<ref name="dimbegin"/>
<ref name="dimend"/>
<ref name="dynamic"/>
<ref name="glissando"/>
<ref name="markup"/>
<ref name="emphasis"/>
<ref name="prall"/>
<ref name="turn"/>
<ref name="multrest"/>
<ref name="slurbegin"/>
<ref name="slurend"/>
<ref name="staccato"/>
<ref name="tuplet"/>
<ref name="slurbegin" />
<ref name="slurend" />
<ref name="grace"/>
<ref name="trill"/>
<ref name="acciaccatura"/>
<ref name="polyphony" />
</zeroOrMore>
</element>
</define>
<define name="polyphony">
<optional>
<element name="polyphony">
<text />
<element name="voice1">
<text/>
</element>
<element name="voice2">
<text/>
</element>
<zeroOrMore>
<ref name="tremelo" />
<ref name="beam"/>
<ref name="breathe"/>
<ref name="crescbegin"/>
<ref name="crescend"/>
<ref name="dimbegin"/>
<ref name="dimend"/>
<ref name="dynamic"/>
<ref name="glissando"/>
<ref name="markup"/>
<ref name="emphasis"/>
<ref name="prall"/>
<ref name="turn"/>
<ref name="multrest"/>
<ref name="slurbegin"/>
<ref name="slurend"/>
<ref name="staccato"/>
<ref name="tuplet"/>
<ref name="slurbegin" />
<ref name="slurend" />
<ref name="grace"/>
<ref name="trill"/>
<ref name="acciaccatura"/>
<ref name="beaming" />
</zeroOrMore>
</element>
</optional>
</define>
<define name="tremelo">
<element name="tremelo">
<text/>
<attribute name="value">
<data type="integer"/>
</attribute>
<choice>
<text/>
<ref name="beaming"/>
</choice>
</element>
</define>
<define name="beaming">
<element name="beaming"><empty />
</element>
</define>
<define name="grace">
<element name="grace">
<zeroOrMore>
<ref name="tremelo" />
<ref name="beam"/>
<ref name="breathe"/>
<ref name="crescbegin"/>
<ref name="crescend"/>
<ref name="dimbegin"/>
<ref name="dimend"/>
<ref name="dynamic"/>
<ref name="glissando"/>
<ref name="markup"/>
<ref name="emphasis"/>
<ref name="prall"/>
<ref name="turn"/>
<ref name="multrest"/>
<ref name="slurbegin"/>
<ref name="slurend"/>
<ref name="staccato"/>
<ref name="tuplet"/>
<ref name="slurbegin" />
<ref name="slurend" />
<ref name="trill"/>
<ref name="acciaccatura"/>
<ref name="beaming" />
</zeroOrMore>
<text />
</element>
</define>
<define name="slurbegin">
<element name="slurbegin">
<empty />
</element>
</define>
<define name="slurend">
<element name="slurend">
<empty />
</element>
</define>
<define name="beam">
<element name="beam">
<empty />
</element>
</define>
<define name="breathe">
<element name="breathe">
<empty/>
</element>
</define>
<define name="crescbegin">
<element name="crescbegin">
<empty/>
</element>
</define>
<define name="crescend">
<element name="crescend">
<empty/>
</element>
</define>
<define name="dimbegin">
<element name="dimbegin">
<empty/>
</element>
</define>
<define name="dimend">
<element name="dimend">
<empty/>
</element>
</define>
<define name="dynamic">
<element name="dynamic">
<data type="NCName"/>
</element>
</define>
<define name="glissando">
<element name="glissando">
<empty/>
</element></define>
<define name="markup"> <element name="markup">
<element name="emphasis">
<text/>
</element>
</element></define>
<define name="prall"> <element name="prall">
<empty/>
</element></define>
<define name="turn"><element name="turn">
<empty/>
</element></define>
<define name="multrest"><element name="multrest">
<optional>
<attribute name="type">
<data type="NCName"/>
</attribute>
</optional>
<data type="integer"/>
</element></define>
<define name="staccato"><element name="staccato">
<attribute name="repeat">
<data type="integer"/>
</attribute>
</element></define>
<define name="tuplet">
<element name="tuplet">
<mixed>
<attribute name="bracket">
<data type="integer"/>
</attribute>
<attribute name="label">
<data type="integer"/>
</attribute>
<attribute name="type">
<data type="integer"/>
</attribute>
<zeroOrMore>
<choice>
<ref name="beam"/>
<ref name="breathe"/>
<ref name="crescbegin"/>
<ref name="crescend"/>
<ref name="dimbegin"/>
<ref name="dimend"/>
<ref name="dynamic"/>
<ref name="glissando"/>
<ref name="markup"/>
<ref name="emphasis"/>
<ref name="prall"/>
<ref name="turn"/>
<ref name="multrest"/>
<ref name="slurbegin"/>
<ref name="slurend"/>
<ref name="staccato"/>
<ref name="slurbegin" />
<ref name="slurend" />
<ref name="grace"/>
<ref name="trill"/>
<ref name="acciaccatura"/>
<ref name="beaming" />
</choice>
</zeroOrMore>
</mixed>
</element>
</define>
<define name="emphasis">
<element name="emphasis"><text /></element>
</define>
<define name="trill"><element name="trill">
<empty/>
</element></define>
<define name="acciaccatura"><element name="acciaccatura">
<text />
</element></define>
</grammar>
