Thanks
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




<?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>

Reply via email to