and clean out the "aa/" cruft.
BTW, what do you have against empty elements written as:
<ref name="book"/>
instead of:
<ref name="book"></ref>
Bob
PS My dictionary says appoggiatura has two g's.
Aaron wrote:
> Oh so this is where I am confused. I thought that the start element
> says what the root element is and if I wanted multiple possible roots
> I would need multiple start elements.
>
> But if a choice element under start does the same thing it is much
> clearer to do it that way.
>
> Anyways I cleaned up the schema a bit as Norman suggested.
> Now does it do what I intend is the question.
> I am attaching the newest version tell me if this is any better.
>
> Thanks
> Aaron
>
>
>
> 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-->
> <!--here are the structural elements for the xml type -->
>
> <choice>
> <ref name="book"></ref>
> <ref name="piece"></ref>
> <ref name="song"></ref>
> <ref name="set"></ref>
> aa/</choice>
> </start>
>
> <define name="book">
> <element name="book">
> <element name="title">
> <text/>
> </element>
> <element name="bookinfo">
> <text />
> <ref name="frontmatter"/>
> </element>
> <!-- don't remember whats with set -->
> </element>
>
> <!--A book can have one or more pieces or one or more songs -->
> <choice>
> <oneOrMore>
> <element name="piece">
> <text />
> <optional>
> <element name="pieceinfo">
> <text />
> <ref name="frontmatter"/>
> </element>
> </optional>
> <!-- 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-->
>
> <ref name="movement"></ref>
>
> <!-- this ends the movement element -->
>
> <!--this begins the score as the child of piece -->
> <ref name="score"></ref>
> <ref name="header" />
> <ref name="midi" />
> <ref name="measure" />
> </element>
> </oneOrMore>
> <oneOrMore>
> <ref name="song"></ref>
> </oneOrMore>
> </choice>
>
>
> </define>
> <define name="piece">
>
> <element name="piece">
> <text />
> <ref name="frontmatter"></ref>
> <ref name="movement"></ref>
> <ref name="score"></ref>
> <ref name="system"></ref>
> <ref name="part"></ref>
> <ref name="header"></ref>
> <ref name="midi"></ref>
> <ref name="measure"></ref>
> </element>
>
> </define>
> <define name="lyrics">
> <element name="lyrics">
> <text/>
> </element>
> <element name="include">
> <attribute name="ref">
> <data type="NCName"/>
> </attribute>
> </element>
>
> </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="song">
> <element name="song">
> <text />
> <ref name="frontmatter"></ref>
> <ref name="movement"></ref>
> <ref name="score"></ref>
> <ref name="system"></ref>
> <ref name="part"></ref>
> <element name="verse">
> <text />
> </element>
> <optional>
> <element name="chorus">
> <text />
> </element>
> </optional>
> <optional>
> <element name="refrain">
> <text />
> </element>
> </optional>
> <ref name="header"></ref>
> <ref name="midi"></ref>
> <ref name="measure"></ref>
> <ref name="lyrics"></ref>
> <text />
> </element>
> </define>
>
> <!--Here are the score layout elements Score system part staff which represent how a score is constructed.-->
>
> <define name="movement">
> <zeroOrMore>
> <element name="movement">
> <text />
> <element name="movementinfo">
> <text />
> <ref name="frontmatter"/>
> <text/>
> </element>
> </element>
> <element name="score">
> <text />
> <attribute name="type">
> <data type="NCName"/>
> </attribute>
> <optional>
> <!-- begin optional system element -->
> <element name="system">
> <text />
> <oneOrMore>
> <element name="part">
> <text />
> <attribute name="name">
> </attribute>
> <element name="header">
> <oneOrMore>
> <choice>
> <text/>
> <ref name="clef"/>
> <ref name="key"/>
> <ref name="time"/>
> <element name="comment">
> <text/>
> </element>
> </choice>
> </oneOrMore>
> </element>
> </element>
> </oneOrMore>
> <!-- midi subelements to be added later -->
> <optional>
> <element name="midi">
> <text />
> </element>
> </optional>
> </element>
> <!--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>
> <element name="section">
> <text />
> </element>
> </optional>
> <optional>
> <element name="phrase">
> <text />
> </element>
> </optional>
> <optional>
> <element name="motiv">
> <text />
> </element>
> </optional>
> <ref name="measure"></ref>
> </optional>
> <!--end optional system element -->
> <ref name="part" />
> <ref name="header" />
> <ref name="midi" />
> <ref name="measure" />
> </element>
> </zeroOrMore>
> </define>
>
> <define name="system">
> <optional><element name="system"><text />
> <element name="part"><text />
> <attribute name="name"></attribute>
> <element name="header"><text /></element>
> <ref name="midi"></ref>
> <ref name="measure"></ref>
> </element>
>
> </element>
> </optional>
>
>
> </define>
>
> <define name="score">
> <element name="score">
> <attribute name="type">
> <data type="NCName"/>
> </attribute>
> </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>
> <data type="NCName"/>
> </element>
>
> </define>
>
> <define name="comment">
> <element name="comment">
> <text />
> </element>
>
>
> </define>
>
>
> <define name="time">
> <element name="time">
> <text/>
> </element>
> </define>
>
> <define name="clef">
> <element name="clef">
> <data type="NCName"/>
> </element>
> </define>
>
>
> <define name="key">
> <element name="key">
> <data type="NCName"/>
> </element>
> </define>
>
>
> <define name="header">
> <element name="header"><text />
>
> <element name="time">
> <text/>
> </element>
> <element name="clef">
> <data type="NCName"/>
> </element>
>
> <element name="key">
> <data type="NCName"/>
> </element>
>
> </element>
> </define>
> <define name="part">
> <oneOrMore>
> <element name="part">
> <text />
> <attribute name="name">
> </attribute>
> <element name="header">
> <oneOrMore>
> <choice>
> <text/>
> <ref name="clef"/>
> <ref name="key"/>
> <ref name="time"/>
> <element name="comment">
> <text/>
> </element>
> </choice>
> </oneOrMore>
> </element>
> </element>
> </oneOrMore>
> </define>
>
>
>
> <define name="midi">
> <element name="midi"><text />
>
> <attribute name="notevalue"></attribute>
> <attribute name="mm"></attribute>
> <element name="gminstname"><text /></element>
> <element name="progname"><text /></element>
> <element name="patchnumber"><text /></element>
> </element>
>
>
>
> </define>
> <define name="measure">
>
> <element name="measure">
> <optional>
> <attribute name="barline">
> <data type="NCName"/>
> </attribute>
> </optional>
> <optional>
> <attribute name="bartype">
> <data type="NCName"/>
> </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>
> <oneOrMore>
> <choice>
> <text/>
> <ref name="beam"/>
> <element name="breathe">
> <empty/>
> </element>
> <element name="crescbegin">
> <empty/>
> </element>
> <element name="crescend">
> <empty/>
> </element>
> <element name="dimbegin">
> <empty/>
> </element>
> <element name="dimend">
> <empty/>
> </element>
> <element name="dynamic">
> <data type="NCName"/>
> </element>
> <element name="glissando">
> <empty/>
> </element>
> <element name="markup">
> <element name="emphasis">
> <text/>
> </element>
> </element>
> <element name="prall">
> <empty/>
> </element>
> <element name="rest">
> <optional>
> <attribute name="type">
> <data type="NCName"/>
> </attribute>
> </optional>
> <data type="integer"/>
> </element>
> <element name="slurbegin">
> <empty/>
> </element>
> <element name="slurend">
> <empty/>
> </element>
> <element name="staccato">
> <attribute name="repeat">
> <data type="integer"/>
> </attribute>
> </element>
> <element name="tuplet">
> <attribute name="bracket">
> <data type="integer"/>
> </attribute>
> <attribute name="label">
> <data type="integer"/>
> </attribute>
> <attribute name="type">
> <data type="integer"/>
> </attribute>
> <text/>
> </element>
> <element name="polyphony"><text /></element>
> <element name="voice1">
> <oneOrMore>
> <choice>
> <text/>
> <element name="tremelo">
> <attribute name="value">
> <data type="integer"/>
> </attribute>
> <text/>
> </element>
> </choice>
> </oneOrMore>
> </element>
> <element name="voice2">
> <text/>
> </element>
> </choice>
> </oneOrMore>
> </element>
> </define>
> <define name="beam">
> <element name="beam">
> <oneOrMore>
> <choice>
> <text/>
> <element name="appogiatura">
> <oneOrMore>
> <choice>
> <text/>
> <ref name="beam"/>
> </choice>
> </oneOrMore>
> </element>
> </choice>
> </oneOrMore>
> </element>
> </define>
>
> </grammar>
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.
