分享

MusicXML 3.0

 独孤求财 2012-03-30

<!-- partwise.dtd -->
<!ENTITY % partwise "INCLUDE">
<!ENTITY % timewise "IGNORE">

<!ENTITY % common PUBLIC "-//Recordare//ELEMENTS MusicXML 3.0 Common//EN" "common.mod">
%common;

<!ENTITY % layout PUBLIC "-//Recordare//ELEMENTS MusicXML 3.0 Layout//EN" "layout.mod">
%layout;

<!ENTITY % identity PUBLIC "-//Recordare//ELEMENTS MusicXML 3.0 Identity//EN" "identity.mod">
%identity;

<!ENTITY % attributes PUBLIC "-//Recordare//ELEMENTS MusicXML 3.0 Attributes//EN" "attributes.mod">
%attributes;

<!ENTITY % link PUBLIC "-//Recordare//ELEMENTS MusicXML 3.0 Link//EN" "link.mod">
%link;

<!ENTITY % note PUBLIC "-//Recordare//ELEMENTS MusicXML 3.0 Note//EN" "note.mod">
%note;

<!ENTITY % barline PUBLIC "-//Recordare//ELEMENTS MusicXML 3.0 Barline//EN" "barline.mod">
%barline;

<!ENTITY % direction PUBLIC "-//Recordare//ELEMENTS MusicXML 3.0 Direction//EN" "direction.mod">
%direction;

<!ENTITY % score PUBLIC "-//Recordare//ELEMENTS MusicXML 3.0 Score//EN" "score.mod">
%score;
<!------------------------------------------------------------------------------------->

<!-- common.mod -->
<!ENTITY % isolat1 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML" "isolat1.ent">
%isolat1;
<!ENTITY % isolat2 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 2//EN//XML" "isolat2.ent">
%isolat2;

<!ENTITY % yyyy-mm-dd "(#PCDATA)">

<!ENTITY % tenths "CDATA">
<!ENTITY % layout-tenths "(#PCDATA)">

<!ENTITY % start-stop "(start | stop)">
<!ENTITY % start-stop-continue "(start | stop | continue)">
<!ENTITY % start-stop-single "(start | stop | single)">

<!ENTITY % yes-no "(yes | no)">

<!ENTITY % yes-no-number "NMTOKEN">

<!ENTITY % symbol-size "(full | cue | large)">

<!ENTITY % above-below "(above | below)">

<!ENTITY % up-down "(up | down)">

<!ENTITY % top-bottom "(top | bottom)">

<!ENTITY % left-right "(left | right)">

<!ENTITY % number-of-lines "(0 | 1 | 2 | 3)">

<!ENTITY % enclosure-shape "(rectangle | square | oval | circle | bracket | triangle | diamond | none)">

<!ENTITY % number-level "(1 | 2 | 3 | 4 | 5 | 6)">

<!ENTITY % beam-level "(1 | 2 | 3 | 4 | 5 | 6 | 7 | 8)">

<!ENTITY % position
    "default-x     %tenths;    #IMPLIED
     default-y     %tenths;    #IMPLIED
     relative-x    %tenths;    #IMPLIED
     relative-y    %tenths;    #IMPLIED">

<!ENTITY % placement "placement %above-below; #IMPLIED">

<!ENTITY % orientation "orientation (over | under) #IMPLIED">

<!ENTITY % directive "directive  %yes-no;  #IMPLIED">
    
<!ENTITY % bezier
    "bezier-offset  CDATA     #IMPLIED
     bezier-offset2 CDATA     #IMPLIED
     bezier-x       %tenths;  #IMPLIED
     bezier-y       %tenths;  #IMPLIED
     bezier-x2      %tenths;  #IMPLIED
     bezier-y2      %tenths;  #IMPLIED">

<!ENTITY % font
    "font-family  CDATA  #IMPLIED
     font-style   CDATA  #IMPLIED
     font-size    CDATA  #IMPLIED
     font-weight  CDATA  #IMPLIED">
    
<!ENTITY % color "color CDATA #IMPLIED">

<!ENTITY % text-decoration
    "underline  %number-of-lines;  #IMPLIED
     overline  %number-of-lines;   #IMPLIED
     line-through  %number-of-lines;   #IMPLIED">
    
<!ENTITY % justify "justify (left | center | right) #IMPLIED">

<!ENTITY % halign "halign (left | center | right) #IMPLIED">

<!ENTITY % valign "valign (top | middle | bottom | baseline) #IMPLIED">

<!ENTITY % valign-image "valign (top | middle | bottom) #IMPLIED">

<!ENTITY % letter-spacing "letter-spacing CDATA #IMPLIED">

<!ENTITY % line-height "line-height CDATA #IMPLIED">

<!ENTITY % text-direction "dir (ltr | rtl | lro | rlo) #IMPLIED">

<!ENTITY % text-rotation "rotation CDATA #IMPLIED">

<!ENTITY % enclosure "enclosure %enclosure-shape; #IMPLIED">

<!ENTITY % print-style
    "%position;
     %font;
     %color;">

<!ENTITY % print-style-align
    "%print-style;
     %halign;
     %valign;">

<!ENTITY % line-shape "line-shape (straight | curved) #IMPLIED">

<!ENTITY % line-type "line-type (solid | dashed | dotted | wavy) #IMPLIED">

<!ENTITY % dashed-formatting
    "dash-length   %tenths;  #IMPLIED
     space-length  %tenths;  #IMPLIED">

<!ENTITY % print-object "print-object  %yes-no;  #IMPLIED">

<!ENTITY % print-spacing "print-spacing %yes-no;  #IMPLIED">

<!ENTITY % printout
    "%print-object;
     print-dot     %yes-no;  #IMPLIED
     %print-spacing;
     print-lyric   %yes-no;  #IMPLIED">

<!ENTITY % text-formatting
    "%justify;
     %print-style-align;
     %text-decoration;
     %text-rotation;
     %letter-spacing;
     %line-height;
     xml:lang NMTOKEN #IMPLIED
     xml:space (default | preserve) #IMPLIED
     %text-direction;
     %enclosure;">

<!ENTITY % level-display
    "parentheses %yes-no;       #IMPLIED
     bracket     %yes-no;       #IMPLIED
     size        %symbol-size;  #IMPLIED">

<!ENTITY % trill-sound
    "start-note    (upper | main | below)  #IMPLIED
     trill-step    (whole | half | unison) #IMPLIED
     two-note-turn (whole | half | none)   #IMPLIED
     accelerate    %yes-no; #IMPLIED
     beats         CDATA    #IMPLIED
     second-beat   CDATA    #IMPLIED
     last-beat     CDATA    #IMPLIED">

<!ENTITY % bend-sound
    "accelerate    %yes-no; #IMPLIED
     beats         CDATA    #IMPLIED
     first-beat    CDATA    #IMPLIED
     last-beat     CDATA    #IMPLIED">

<!ENTITY % time-only "time-only CDATA #IMPLIED">

<!ENTITY % document-attributes "version  CDATA  '1.0'">

<!ENTITY % editorial "(footnote?, level?)">
<!ENTITY % editorial-voice "(footnote?, level?, voice?)">

<!ELEMENT footnote (#PCDATA)>
<!ATTLIST footnote %text-formatting;>

<!ELEMENT level (#PCDATA)>
<!ATTLIST level 
    reference %yes-no; #IMPLIED 
    %level-display;>

<!ELEMENT voice (#PCDATA)>

<!ELEMENT fermata  (#PCDATA)>
<!ATTLIST fermata
    type (upright | inverted) #IMPLIED
    %print-style;
>

<!ELEMENT wavy-line EMPTY>
<!ATTLIST wavy-line
    type %start-stop-continue; #REQUIRED
    number %number-level; #IMPLIED
    %position;
    %placement; 
    %color;
    %trill-sound; 
>

<!ELEMENT staff (#PCDATA)>

<!ELEMENT segno EMPTY>
<!ATTLIST segno %print-style-align;>

<!ELEMENT coda EMPTY>
<!ATTLIST coda %print-style-align;>

<!ELEMENT actual-notes (#PCDATA)>
<!ELEMENT normal-notes (#PCDATA)>
<!ELEMENT normal-type (#PCDATA)>
<!ELEMENT normal-dot EMPTY>

<!ELEMENT dynamics ((p | pp | ppp | pppp | ppppp | pppppp |
    f | ff | fff | ffff | fffff | ffffff | mp | mf | sf |
    sfp | sfpp | fp | rf | rfz | sfz | sffz | fz | 
    other-dynamics)*)>
<!ATTLIST dynamics
    %print-style-align; 
    %placement;
    %text-decoration; 
    %enclosure;
>

<!ELEMENT p EMPTY>
<!ELEMENT pp EMPTY>
<!ELEMENT ppp EMPTY>
<!ELEMENT pppp EMPTY>
<!ELEMENT ppppp EMPTY>
<!ELEMENT pppppp EMPTY>
<!ELEMENT f EMPTY>
<!ELEMENT ff EMPTY>
<!ELEMENT fff EMPTY>
<!ELEMENT ffff EMPTY>
<!ELEMENT fffff EMPTY>
<!ELEMENT ffffff EMPTY>
<!ELEMENT mp EMPTY>
<!ELEMENT mf EMPTY>
<!ELEMENT sf EMPTY>
<!ELEMENT sfp EMPTY>
<!ELEMENT sfpp EMPTY>
<!ELEMENT fp EMPTY>
<!ELEMENT rf EMPTY>
<!ELEMENT rfz EMPTY>
<!ELEMENT sfz EMPTY>
<!ELEMENT sffz EMPTY>
<!ELEMENT fz EMPTY>
<!ELEMENT other-dynamics (#PCDATA)>

<!ELEMENT fingering (#PCDATA)>
<!ATTLIST fingering
    substitution %yes-no; #IMPLIED
    alternate %yes-no; #IMPLIED
    %print-style; 
    %placement;
>

<!ELEMENT fret (#PCDATA)>
<!ATTLIST fret %font; %color;>

<!ELEMENT string (#PCDATA)>
<!ATTLIST string %print-style; %placement;>

<!ELEMENT tuning-step (#PCDATA)>
<!ELEMENT tuning-alter (#PCDATA)>
<!ELEMENT tuning-octave (#PCDATA)>

<!ELEMENT display-text (#PCDATA)>
<!ATTLIST display-text %text-formatting;>

<!ELEMENT accidental-text (#PCDATA)>
<!ATTLIST accidental-text %text-formatting;>

<!ELEMENT part-name-display ((display-text | accidental-text)*)>
<!ATTLIST part-name-display %print-object;>

<!ELEMENT part-abbreviation-display ((display-text | accidental-text)*)>
<!ATTLIST part-abbreviation-display %print-object;>

<!ELEMENT midi-device (#PCDATA)>
<!ATTLIST midi-device port CDATA #IMPLIED id IDREF #IMPLIED>

<!ELEMENT midi-instrument
    (midi-channel?, midi-name?, midi-bank?, midi-program?,
     midi-unpitched?, volume?, pan?, elevation?)>
<!ATTLIST midi-instrument id IDREF #REQUIRED>

<!ELEMENT midi-channel (#PCDATA)>

<!ELEMENT midi-name (#PCDATA)>

<!ELEMENT midi-bank (#PCDATA)>

<!ELEMENT midi-program (#PCDATA)>

<!ELEMENT midi-unpitched (#PCDATA)>

<!ELEMENT volume (#PCDATA)>

<!ELEMENT pan (#PCDATA)>
<!ELEMENT elevation (#PCDATA)>

<!ELEMENT play ((ipa | mute | semi-pitched | other-play)*)>
<!ATTLIST play id IDREF #IMPLIED>

<!ELEMENT ipa (#PCDATA)>

<!ELEMENT mute (#PCDATA)>

<!ELEMENT semi-pitched (#PCDATA)>

<!ELEMENT other-play (#PCDATA)>
<!ATTLIST other-play type CDATA #REQUIRED>
<!------------------------------------------------------------------------------------->

<!-- layout.mod -->
<!ELEMENT scaling (millimeters, tenths)>
<!ELEMENT millimeters (#PCDATA)>
<!ELEMENT tenths %layout-tenths;>

<!ELEMENT left-margin %layout-tenths;>
<!ELEMENT right-margin %layout-tenths;>
<!ELEMENT top-margin %layout-tenths;>
<!ELEMENT bottom-margin %layout-tenths;>

<!ELEMENT page-layout ((page-height, page-width)?, (page-margins, page-margins?)?)>
<!ELEMENT page-height %layout-tenths;>
<!ELEMENT page-width %layout-tenths;>
<!ELEMENT page-margins (left-margin, right-margin, top-margin, bottom-margin)>
<!ATTLIST page-margins type (odd | even | both) #IMPLIED>

<!ELEMENT system-layout (system-margins?, system-distance?, top-system-distance?, system-dividers?)>
<!ELEMENT system-margins (left-margin, right-margin)>
<!ELEMENT system-distance %layout-tenths;>
<!ELEMENT top-system-distance %layout-tenths;>

<!ELEMENT system-dividers (left-divider, right-divider)>
<!ELEMENT left-divider EMPTY>
<!ATTLIST left-divider
    %print-object;
    %print-style-align; 
>
<!ELEMENT right-divider EMPTY>
<!ATTLIST right-divider
    %print-object;
    %print-style-align; 
>

<!ELEMENT staff-layout (staff-distance?)>
<!ATTLIST staff-layout number CDATA #IMPLIED>

<!ELEMENT staff-distance %layout-tenths;>

<!ELEMENT measure-layout (measure-distance?)>
<!ELEMENT measure-distance %layout-tenths;>

<!ELEMENT appearance (line-width*, note-size*, distance*, other-appearance*)>

<!ELEMENT line-width %layout-tenths;>
<!ATTLIST line-width type CDATA #REQUIRED>

<!ELEMENT note-size (#PCDATA)>
<!ATTLIST note-size type (cue | grace | large) #REQUIRED>

<!ELEMENT distance %layout-tenths;>
<!ATTLIST distance type CDATA #REQUIRED>

<!ELEMENT other-appearance (#PCDATA)>
<!ATTLIST other-appearance type CDATA #REQUIRED>
<!------------------------------------------------------------------------------------->

<!-- identity.mod -->
<!ELEMENT creator (#PCDATA)>
<!ATTLIST creator type CDATA #IMPLIED>

<!ELEMENT rights (#PCDATA)>
<!ATTLIST rights type CDATA #IMPLIED>

<!ELEMENT encoding ((encoding-date | encoder | software | encoding-description | supports)*)>
<!ELEMENT encoding-date %yyyy-mm-dd;>

<!ELEMENT encoder (#PCDATA)>
<!ATTLIST encoder type CDATA #IMPLIED>

<!ELEMENT software (#PCDATA)>

<!ELEMENT encoding-description (#PCDATA)>

<!ELEMENT supports EMPTY>
<!ATTLIST supports
    type %yes-no; #REQUIRED
    element CDATA #REQUIRED
    attribute CDATA #IMPLIED
    value CDATA #IMPLIED
>

<!ELEMENT source (#PCDATA)>

<!ELEMENT relation (#PCDATA)>
<!ATTLIST relation type CDATA #IMPLIED>

<!ELEMENT miscellaneous (miscellaneous-field*)>

<!ELEMENT miscellaneous-field (#PCDATA)>
<!ATTLIST miscellaneous-field name CDATA #REQUIRED>
<!------------------------------------------------------------------------------------->

<!-- attributes.mod -->
<!ENTITY % time-separator "separator (none | horizontal | diagonal | vertical | adjacent) #IMPLIED">

<!ENTITY % time-symbol "symbol (common | cut | single-number | note | dotted-note | normal) #IMPLIED">

<!ELEMENT attributes (%editorial;, divisions?, key*, time*, staves?, part-symbol?, 
    instruments?, clef*, staff-details*, transpose*, directive*, measure-style*)>

<!ELEMENT key (((cancel?, fifths, mode?) | ((key-step, key-alter, key-accidental?)*)), key-octave*)>
<!ATTLIST key
    number CDATA #IMPLIED
    %print-style;
    %print-object;
>

<!ELEMENT cancel (#PCDATA)>
<!ATTLIST cancel location (left | right | before-barline) #IMPLIED>

<!ELEMENT fifths (#PCDATA)>
<!ELEMENT mode (#PCDATA)>
<!ELEMENT key-step (#PCDATA)>
<!ELEMENT key-alter (#PCDATA)>
<!ELEMENT key-accidental (#PCDATA)>
<!ELEMENT key-octave (#PCDATA)>
<!ATTLIST key-octave number NMTOKEN #REQUIRED cancel %yes-no; #IMPLIED>

<!ELEMENT divisions (#PCDATA)>

<!ELEMENT time (((beats, beat-type)+, interchangeable?) | senza-misura)>
<!ATTLIST time
    number CDATA #IMPLIED
    %time-symbol;
    %time-separator;
    %print-style-align;
    %print-object;
>

<!ELEMENT interchangeable (time-relation?, (beats, beat-type)+)>
<!ATTLIST interchangeable %time-symbol; %time-separator;>

<!ELEMENT beats (#PCDATA)>
<!ELEMENT beat-type (#PCDATA)>
<!ELEMENT senza-misura (#PCDATA)>
<!ELEMENT time-relation (#PCDATA)>

<!ELEMENT staves (#PCDATA)>

<!ELEMENT part-symbol (#PCDATA)>
<!ATTLIST part-symbol
    top-staff CDATA #IMPLIED
    bottom-staff CDATA #IMPLIED
    %position;
    %color;
>

<!ELEMENT instruments (#PCDATA)>

<!ELEMENT clef (sign, line?, clef-octave-change?)>
<!ATTLIST clef
    number CDATA #IMPLIED
    additional %yes-no; #IMPLIED
    size %symbol-size; #IMPLIED
    after-barline %yes-no; #IMPLIED
    %print-style;
    %print-object;
>

<!ELEMENT sign (#PCDATA)>
<!ELEMENT line (#PCDATA)>
<!ELEMENT clef-octave-change (#PCDATA)>

<!ELEMENT staff-details (staff-type?, staff-lines?, staff-tuning*, capo?, staff-size?)>
<!ATTLIST staff-details
    number         CDATA                #IMPLIED
    show-frets     (numbers | letters)  #IMPLIED
    %print-object;
    %print-spacing;
>

<!ELEMENT staff-type (#PCDATA)>
<!ELEMENT staff-lines (#PCDATA)>

<!ELEMENT staff-tuning (tuning-step, tuning-alter?, tuning-octave)>
<!ATTLIST staff-tuning line CDATA #REQUIRED>

<!ELEMENT capo (#PCDATA)>

<!ELEMENT staff-size (#PCDATA)>

<!ELEMENT transpose (diatonic?, chromatic, octave-change?, double?)>
<!ATTLIST transpose number CDATA #IMPLIED>

<!ELEMENT diatonic (#PCDATA)>
<!ELEMENT chromatic (#PCDATA)>
<!ELEMENT octave-change (#PCDATA)>
<!ELEMENT double EMPTY>

<!ELEMENT directive (#PCDATA)>
<!ATTLIST directive %print-style; xml:lang NMTOKEN #IMPLIED>

<!ELEMENT measure-style (multiple-rest | measure-repeat | beat-repeat | slash)>
<!ATTLIST measure-style number CDATA #IMPLIED %font; %color;>

<!ELEMENT slash-type (#PCDATA)>
<!ELEMENT slash-dot EMPTY>

<!ELEMENT multiple-rest (#PCDATA)>
<!ATTLIST multiple-rest use-symbols %yes-no; #IMPLIED>

<!ELEMENT measure-repeat (#PCDATA)>
<!ATTLIST measure-repeat
    type %start-stop; #REQUIRED
    slashes NMTOKEN #IMPLIED
>

<!ELEMENT beat-repeat ((slash-type, slash-dot*)?)>
<!ATTLIST beat-repeat
    type %start-stop; #REQUIRED
    slashes NMTOKEN #IMPLIED
    use-dots %yes-no; #IMPLIED
>

<!ELEMENT slash ((slash-type, slash-dot*)?)>
<!ATTLIST slash
    type %start-stop; #REQUIRED
    use-dots %yes-no; #IMPLIED
    use-stems %yes-no; #IMPLIED
>
<!------------------------------------------------------------------------------------->

<!-- link.mod -->
<!ENTITY % xlink.ns "http://www./1999/xlink">

<!ENTITY % link-attributes
    "xmlns:xlink  CDATA    #FIXED     '%xlink.ns;'
     xlink:href   CDATA    #REQUIRED
     xlink:type   (simple) #FIXED     'simple'
     xlink:role   CDATA    #IMPLIED
     xlink:title  CDATA    #IMPLIED
     xlink:show   (new | replace | embed | other | none)  'replace'
     xlink:actuate    (onRequest | onLoad | other | none) 'onRequest'">

<!ELEMENT link EMPTY>
<!ATTLIST link
    %link-attributes;
    name  CDATA  #IMPLIED
    element  NMTOKEN #IMPLIED
    position NMTOKEN #IMPLIED
    %position;
>
    
<!ELEMENT bookmark EMPTY>
<!ATTLIST bookmark
    id    ID     #REQUIRED
    name  CDATA  #IMPLIED
    element  NMTOKEN #IMPLIED
    position NMTOKEN #IMPLIED
>
<!------------------------------------------------------------------------------------->

<!-- note.mod -->
<!ENTITY % full-note "(chord?, (pitch | unpitched | rest))">

<!ELEMENT note 
    (((grace, %full-note;, (tie, tie?)?) |
      (cue, %full-note;, duration) |
      (%full-note;, duration, (tie, tie?)?)),
     instrument?, %editorial-voice;, type?, dot*,
     accidental?, time-modification?, stem?, notehead?,
     notehead-text?, staff?, beam*, notations*, lyric*, play?)>

<!ATTLIST note
    %print-style; 
    %printout;
    dynamics CDATA #IMPLIED
    end-dynamics CDATA #IMPLIED
    attack CDATA #IMPLIED
    release CDATA #IMPLIED
    %time-only;
    pizzicato %yes-no; #IMPLIED
>

<!ELEMENT pitch (step, alter?, octave)>
<!ELEMENT step (#PCDATA)>
<!ELEMENT alter (#PCDATA)>
<!ELEMENT octave (#PCDATA)>

<!ELEMENT cue EMPTY>
<!ELEMENT grace EMPTY>
<!ATTLIST grace
    steal-time-previous CDATA #IMPLIED
    steal-time-following CDATA #IMPLIED
    make-time CDATA #IMPLIED
    slash %yes-no; #IMPLIED
>

<!ELEMENT chord EMPTY>

<!ELEMENT unpitched ((display-step, display-octave)?)>
<!ELEMENT display-step (#PCDATA)>
<!ELEMENT display-octave (#PCDATA)>

<!ELEMENT rest ((display-step, display-octave)?)>
<!ATTLIST rest measure %yes-no; #IMPLIED>

<!ELEMENT duration (#PCDATA)>
<!ELEMENT tie EMPTY>
<!ATTLIST tie
    type %start-stop; #REQUIRED
    %time-only;
>

<!ELEMENT instrument EMPTY>
<!ATTLIST instrument id IDREF #REQUIRED>

<!ELEMENT type (#PCDATA)>
<!ATTLIST type size %symbol-size; #IMPLIED>

<!ELEMENT dot EMPTY>
<!ATTLIST dot
    %print-style;
    %placement; 
>

<!ELEMENT accidental (#PCDATA)>
<!ATTLIST accidental
    cautionary %yes-no; #IMPLIED
    editorial %yes-no; #IMPLIED
    %level-display;
    %print-style;
>

<!ELEMENT time-modification (actual-notes, normal-notes, (normal-type, normal-dot*)?)>

<!ELEMENT stem (#PCDATA)>
<!ATTLIST stem %position; %color;>

<!ELEMENT notehead (#PCDATA)>
<!ATTLIST notehead
    filled %yes-no; #IMPLIED
    parentheses %yes-no; #IMPLIED
    %font;
    %color;
>
<!ELEMENT notehead-text ((display-text | accidental-text)+)>

<!ELEMENT beam (#PCDATA)>
<!ATTLIST beam
    number %beam-level; "1"
    repeater %yes-no; #IMPLIED
    fan (accel | rit | none) #IMPLIED
    %color;
>

<!ELEMENT notations
    (%editorial;, 
     (tied | slur | tuplet | glissando | slide | 
      ornaments | technical | articulations | dynamics |
      fermata | arpeggiate | non-arpeggiate | 
      accidental-mark | other-notation)*)>
<!ATTLIST notations %print-object;>

<!ELEMENT tied EMPTY>
<!ATTLIST tied
    type %start-stop-continue; #REQUIRED
    number %number-level; #IMPLIED
    %line-type;
    %dashed-formatting;
    %position;
    %placement;
    %orientation;
    %bezier;
    %color;
>

<!ELEMENT slur EMPTY>
<!ATTLIST slur
    type %start-stop-continue; #REQUIRED
    number %number-level; "1"
    %line-type;
    %dashed-formatting;
    %position;
    %placement;
    %orientation;
    %bezier;
    %color;
>

<!ELEMENT tuplet (tuplet-actual?, tuplet-normal?)>
<!ATTLIST tuplet
    type %start-stop; #REQUIRED
    number %number-level; #IMPLIED
    bracket %yes-no; #IMPLIED
    show-number (actual | both | none) #IMPLIED
    show-type (actual | both | none) #IMPLIED
    %line-shape;
    %position;
    %placement;
>
<!ELEMENT tuplet-actual (tuplet-number?, tuplet-type?, tuplet-dot*)>
<!ELEMENT tuplet-normal (tuplet-number?, tuplet-type?, tuplet-dot*)>
<!ELEMENT tuplet-number (#PCDATA)>
<!ATTLIST tuplet-number
    %font;
    %color;
>
<!ELEMENT tuplet-type (#PCDATA)>
<!ATTLIST tuplet-type
    %font;
    %color;
>
<!ELEMENT tuplet-dot EMPTY>
<!ATTLIST tuplet-dot
    %font;
    %color;
>

<!ELEMENT glissando (#PCDATA)>
<!ATTLIST glissando
    type %start-stop; #REQUIRED
    number %number-level; "1"
    %line-type;
    %dashed-formatting; 
    %print-style; 
>
<!ELEMENT slide (#PCDATA)>
<!ATTLIST slide
    type %start-stop; #REQUIRED
    number %number-level; "1"
    %line-type; 
    %dashed-formatting; 
    %print-style; 
    %bend-sound;
>

<!ELEMENT other-notation (#PCDATA)>
<!ATTLIST other-notation
    type %start-stop-single; #REQUIRED
    number %number-level; "1"
    %print-object;
    %print-style; 
    %placement;
>

<!ELEMENT ornaments
    (((trill-mark | turn | delayed-turn | inverted-turn |
       delayed-inverted-turn | vertical-turn | shake |
       wavy-line | mordent | inverted-mordent | schleifer |
       tremolo | other-ornament), accidental-mark*)*)>
<!ELEMENT trill-mark EMPTY>
<!ATTLIST trill-mark
    %print-style; 
    %placement; 
    %trill-sound; 
>

<!ELEMENT turn EMPTY>
<!ATTLIST turn
    %print-style; 
    %placement; 
    %trill-sound; 
    slash %yes-no; #IMPLIED
>
<!ELEMENT delayed-turn EMPTY>
<!ATTLIST delayed-turn
    %print-style; 
    %placement; 
    %trill-sound; 
    slash %yes-no; #IMPLIED
>
<!ELEMENT inverted-turn EMPTY>
<!ATTLIST inverted-turn
    %print-style; 
    %placement; 
    %trill-sound; 
    slash %yes-no; #IMPLIED
>
<!ELEMENT delayed-inverted-turn EMPTY>
<!ATTLIST delayed-inverted-turn
    %print-style; 
    %placement; 
    %trill-sound; 
    slash %yes-no; #IMPLIED
>
<!ELEMENT vertical-turn EMPTY>
<!ATTLIST vertical-turn
    %print-style; 
    %placement; 
    %trill-sound; 
>

<!ELEMENT shake EMPTY>
<!ATTLIST shake
    %print-style; 
    %placement; 
    %trill-sound; 
>

<!ELEMENT mordent EMPTY>
<!ATTLIST mordent
    long %yes-no; #IMPLIED
    approach %above-below; #IMPLIED
    departure %above-below; #IMPLIED
    %print-style; 
    %placement; 
    %trill-sound; 
>
<!ELEMENT inverted-mordent EMPTY>
<!ATTLIST inverted-mordent
    long %yes-no; #IMPLIED
    approach %above-below; #IMPLIED
    departure %above-below; #IMPLIED
    %print-style; 
    %placement; 
    %trill-sound; 
>

<!ELEMENT schleifer EMPTY>
<!ATTLIST schleifer
    %print-style; 
    %placement; 
>

<!ELEMENT tremolo (#PCDATA)>
<!ATTLIST tremolo
    type %start-stop-single; "single"
    %print-style; 
    %placement; 
>

<!ELEMENT other-ornament (#PCDATA)>
<!ATTLIST other-ornament
    %print-style; 
    %placement; 
>

<!ELEMENT accidental-mark (#PCDATA)>
<!ATTLIST accidental-mark
    %print-style; 
    %placement; 
>

<!ELEMENT technical
    ((up-bow | down-bow | harmonic | open-string |
      thumb-position | fingering | pluck | double-tongue |
      triple-tongue | stopped | snap-pizzicato | fret |
      string | hammer-on | pull-off | bend | tap | heel |
      toe | fingernails | hole | arrow | handbell | 
      other-technical)*)>

<!ELEMENT up-bow EMPTY>
<!ATTLIST up-bow
    %print-style; 
    %placement; 
>

<!ELEMENT down-bow EMPTY>
<!ATTLIST down-bow
    %print-style; 
    %placement; 
>

<!ELEMENT harmonic ((natural | artificial)?, (base-pitch | touching-pitch | sounding-pitch)?)>
<!ATTLIST harmonic
    %print-object;
    %print-style; 
    %placement; 
>
<!ELEMENT natural EMPTY>
<!ELEMENT artificial EMPTY>
<!ELEMENT base-pitch EMPTY>
<!ELEMENT touching-pitch EMPTY>
<!ELEMENT sounding-pitch EMPTY>

<!ELEMENT open-string EMPTY>
<!ATTLIST open-string
    %print-style; 
    %placement; 
>

<!ELEMENT thumb-position EMPTY>
<!ATTLIST thumb-position
    %print-style; 
    %placement; 
>

<!ELEMENT pluck (#PCDATA)>
<!ATTLIST pluck
    %print-style; 
    %placement; 
>

<!ELEMENT double-tongue EMPTY>
<!ATTLIST double-tongue
    %print-style; 
    %placement; 
>

<!ELEMENT triple-tongue EMPTY>
<!ATTLIST triple-tongue
    %print-style; 
    %placement; 
>

<!ELEMENT stopped EMPTY>
<!ATTLIST stopped
    %print-style; 
    %placement; 
>

<!ELEMENT snap-pizzicato EMPTY>
<!ATTLIST snap-pizzicato
    %print-style; 
    %placement; 
>

<!ELEMENT hammer-on (#PCDATA)>
<!ATTLIST hammer-on
    type %start-stop; #REQUIRED
    number %number-level; "1"
    %print-style;
    %placement;
>
<!ELEMENT pull-off (#PCDATA)>
<!ATTLIST pull-off
    type %start-stop; #REQUIRED
    number %number-level; "1"
    %print-style;
    %placement;
>

<!ELEMENT bend (bend-alter, (pre-bend | release)?, with-bar?)>
<!ATTLIST bend
    %print-style; 
    %bend-sound;
>
<!ELEMENT bend-alter (#PCDATA)>
<!ELEMENT pre-bend EMPTY>
<!ELEMENT release EMPTY>
<!ELEMENT with-bar (#PCDATA)>
<!ATTLIST with-bar
    %print-style; 
    %placement; 
>

<!ELEMENT tap (#PCDATA)>
<!ATTLIST tap
    %print-style; 
    %placement; 
>

<!ELEMENT heel EMPTY>
<!ATTLIST heel
    substitution %yes-no; #IMPLIED
    %print-style; 
    %placement; 
>
<!ELEMENT toe EMPTY>
<!ATTLIST toe
    substitution %yes-no; #IMPLIED
    %print-style; 
    %placement; 
>

<!ELEMENT fingernails EMPTY>
<!ATTLIST fingernails
    %print-style; 
    %placement; 
>

<!ELEMENT hole (hole-type?, hole-closed, hole-shape?)>
<!ATTLIST hole
    %print-style; 
    %placement; 
>
<!ELEMENT hole-type (#PCDATA)>
<!ELEMENT hole-closed (#PCDATA)>
<!ATTLIST hole-closed
    location (right | bottom | left | top) #IMPLIED 
>
<!ELEMENT hole-shape (#PCDATA)>

<!ELEMENT arrow
    ((arrow-direction, arrow-style?) | circular-arrow)>
<!ATTLIST arrow
    %print-style; 
    %placement; 
>
<!ELEMENT arrow-direction (#PCDATA)>
<!ELEMENT arrow-style (#PCDATA)>
<!ELEMENT circular-arrow (#PCDATA)>

<!ELEMENT handbell (#PCDATA)>
<!ATTLIST handbell
    %print-style; 
    %placement; 
>

<!ELEMENT other-technical (#PCDATA)>
<!ATTLIST other-technical
    %print-style; 
    %placement; 
>

<!ELEMENT articulations ((accent | strong-accent | staccato | tenuto | detached-legato | staccatissimo | spiccato |
      scoop | plop | doit | falloff | breath-mark | caesura | stress | unstress | other-articulation)*)>

<!ELEMENT accent EMPTY>
<!ATTLIST accent
    %print-style; 
    %placement; 
>
<!ELEMENT strong-accent EMPTY>
<!ATTLIST strong-accent
    %print-style; 
    %placement; 
    type %up-down; "up"
>

<!ELEMENT staccato EMPTY>
<!ATTLIST staccato
    %print-style; 
    %placement; 
>
<!ELEMENT tenuto EMPTY>
<!ATTLIST tenuto
    %print-style; 
    %placement; 
>
<!ELEMENT detached-legato EMPTY>
<!ATTLIST detached-legato
    %print-style; 
    %placement; 
>

<!ELEMENT staccatissimo EMPTY>
<!ATTLIST staccatissimo
    %print-style; 
    %placement; 
>

<!ELEMENT spiccato EMPTY>
<!ATTLIST spiccato
    %print-style; 
    %placement; 
>

<!ELEMENT scoop EMPTY>
<!ATTLIST scoop
    %line-shape;
    %line-type;
    %dashed-formatting;
    %print-style; 
    %placement;
>
<!ELEMENT plop EMPTY>
<!ATTLIST plop
    %line-shape;
    %line-type;
    %dashed-formatting;
    %print-style; 
    %placement; 
>
<!ELEMENT doit EMPTY>
<!ATTLIST doit
    %line-shape;
    %line-type;
    %dashed-formatting;
    %print-style; 
    %placement;
>
<!ELEMENT falloff EMPTY>
<!ATTLIST falloff
    %line-shape;
    %line-type;
    %dashed-formatting;
    %print-style; 
    %placement; 
>

<!ELEMENT breath-mark (#PCDATA)>
<!ATTLIST breath-mark
    %print-style; 
    %placement; 
>

<!ELEMENT caesura EMPTY>
<!ATTLIST caesura
    %print-style; 
    %placement; 
>
<!ELEMENT stress EMPTY>
<!ATTLIST stress
    %print-style; 
    %placement; 
>
<!ELEMENT unstress EMPTY>
<!ATTLIST unstress
    %print-style; 
    %placement; 
>

<!ELEMENT other-articulation (#PCDATA)>
<!ATTLIST other-articulation
    %print-style; 
    %placement; 
>

<!ELEMENT arpeggiate EMPTY>
<!ATTLIST arpeggiate
    number %number-level; #IMPLIED
    direction %up-down; #IMPLIED
    %position; 
    %placement;
    %color; 
>

<!ELEMENT non-arpeggiate EMPTY>
<!ATTLIST non-arpeggiate
    type %top-bottom; #REQUIRED
    number %number-level; #IMPLIED
    %position; 
    %placement;
    %color; 
>

<!ELEMENT lyric ((((syllabic?, text), (elision?, syllabic?, text)*, extend?) | extend | laughing | humming),
    end-line?, end-paragraph?, %editorial;)>
<!ATTLIST lyric
    number NMTOKEN #IMPLIED
    name CDATA #IMPLIED
    %justify;
    %position;
    %placement;
    %color;
    %print-object;
>

<!ELEMENT text (#PCDATA)>
<!ATTLIST text
    %font;
    %color;
    %text-decoration;
    %text-rotation;
    %letter-spacing;
    xml:lang NMTOKEN #IMPLIED
    %text-direction;
>
<!ELEMENT syllabic (#PCDATA)>

<!ELEMENT elision (#PCDATA)>
<!ATTLIST elision %font; %color;>

<!ELEMENT extend EMPTY>
<!ATTLIST extend
    type %start-stop-continue; #IMPLIED
    %print-style;
>

<!ELEMENT laughing EMPTY>
<!ELEMENT humming EMPTY>
<!ELEMENT end-line EMPTY>
<!ELEMENT end-paragraph EMPTY>

<!ELEMENT figured-bass (figure+, duration?, %editorial;)>
<!ATTLIST figured-bass
    %print-style; 
    %printout;
    parentheses %yes-no; #IMPLIED
>
<!ELEMENT figure (prefix?, figure-number?, suffix?, extend?)>
<!ELEMENT prefix (#PCDATA)>
<!ATTLIST prefix %print-style;>
<!ELEMENT figure-number (#PCDATA)>
<!ATTLIST figure-number %print-style;>
<!ELEMENT suffix (#PCDATA)>
<!ATTLIST suffix %print-style;>

<!ELEMENT backup (duration, %editorial;)>
<!ELEMENT forward (duration, %editorial-voice;, staff?)>
<!------------------------------------------------------------------------------------->

<!-- barline.mod -->
<!ELEMENT barline (bar-style?, %editorial;, wavy-line?, segno?, coda?, (fermata, fermata?)?, ending?, repeat?)>
<!ATTLIST barline
    location (right | left | middle) "right"
    segno CDATA #IMPLIED
    coda CDATA #IMPLIED
    divisions CDATA #IMPLIED
>

<!ELEMENT bar-style (#PCDATA)>
<!ATTLIST bar-style %color;>

<!ELEMENT ending (#PCDATA)>
<!ATTLIST ending
    number CDATA #REQUIRED
    type (start | stop | discontinue) #REQUIRED
    %print-object;
    %print-style;
    end-length %tenths; #IMPLIED
    text-x %tenths; #IMPLIED
    text-y %tenths; #IMPLIED
>

<!ELEMENT repeat EMPTY>
<!ATTLIST repeat
    direction (backward | forward) #REQUIRED
    times CDATA #IMPLIED
    winged (none | straight | curved | double-straight | double-curved) #IMPLIED
>
<!------------------------------------------------------------------------------------->

<!-- direction.mod -->
<!ENTITY % tip-direction "(up | down | left | right | northwest | northeast | southeast | southwest)">

<!ELEMENT direction (direction-type+, offset?, %editorial-voice;, staff?, sound?)>
<!ATTLIST direction
    %placement; 
    %directive;
>

<!ELEMENT direction-type (rehearsal+ | segno+ | words+ | coda+ | wedge | dynamics+ | dashes | bracket | pedal | 
    metronome | octave-shift | harp-pedals | damp | damp-all | eyeglasses | string-mute | scordatura | image |
    principal-voice | accordion-registration | percussion+ | other-direction)>

<!ELEMENT rehearsal (#PCDATA)>
<!ATTLIST rehearsal %text-formatting;>

<!ELEMENT words (#PCDATA)>
<!ATTLIST words %text-formatting;>

<!ELEMENT wedge EMPTY>
<!ATTLIST wedge
    type (crescendo | diminuendo | stop | continue) #REQUIRED
    number %number-level; #IMPLIED
    spread %tenths; #IMPLIED
    niente %yes-no; #IMPLIED
    %line-type;
    %dashed-formatting;
    %position;
    %color;
>

<!ELEMENT dashes EMPTY>
<!ATTLIST dashes
    type %start-stop-continue; #REQUIRED
    number %number-level; #IMPLIED
    %dashed-formatting;
    %position;
    %color;
>

<!ELEMENT bracket EMPTY>
<!ATTLIST bracket
    type %start-stop-continue; #REQUIRED
    number %number-level; #IMPLIED
    line-end (up | down | both | arrow | none) #REQUIRED
    end-length %tenths; #IMPLIED
    %line-type;
    %dashed-formatting;
    %position;
    %color;
>

<!ELEMENT pedal EMPTY>
<!ATTLIST pedal
    type (start | stop | continue | change) #REQUIRED
    line %yes-no; #IMPLIED
    sign %yes-no; #IMPLIED
    %print-style-align; 
>

<!ELEMENT metronome (
    (beat-unit, beat-unit-dot*,
    (per-minute | (beat-unit, beat-unit-dot*))) | (metronome-note+, 
    (metronome-relation, metronome-note+)?))
>
<!ATTLIST metronome
    %print-style-align;
    %justify;
    parentheses %yes-no; #IMPLIED
>
<!ELEMENT beat-unit (#PCDATA)>
<!ELEMENT beat-unit-dot EMPTY>

<!ELEMENT per-minute (#PCDATA)> 
<!ATTLIST per-minute %font;>

<!ELEMENT metronome-note (metronome-type, metronome-dot*, metronome-beam*, metronome-tuplet?)>
<!ELEMENT metronome-relation (#PCDATA)>
<!ELEMENT metronome-type (#PCDATA)>
<!ELEMENT metronome-dot EMPTY>

<!ELEMENT metronome-beam (#PCDATA)>
<!ATTLIST metronome-beam number %beam-level; "1">

<!ELEMENT metronome-tuplet (actual-notes, normal-notes, (normal-type, normal-dot*)?)>
<!ATTLIST metronome-tuplet
    type %start-stop; #REQUIRED
    bracket %yes-no; #IMPLIED
    show-number (actual | both | none) #IMPLIED
>

<!ELEMENT octave-shift EMPTY>
<!ATTLIST octave-shift
    type (up | down | stop | continue) #REQUIRED
    number %number-level; #IMPLIED
    size CDATA "8"
    %dashed-formatting;
    %print-style; 
>

<!ELEMENT harp-pedals (pedal-tuning)+>
<!ATTLIST harp-pedals %print-style-align;>

<!ELEMENT pedal-tuning (pedal-step, pedal-alter)>
<!ELEMENT pedal-step (#PCDATA)>
<!ELEMENT pedal-alter (#PCDATA)>

<!ELEMENT damp EMPTY>
<!ATTLIST damp %print-style-align;>

<!ELEMENT damp-all EMPTY>
<!ATTLIST damp-all %print-style-align;>

<!ELEMENT eyeglasses EMPTY>
<!ATTLIST eyeglasses %print-style-align;>

<!ELEMENT string-mute EMPTY>
<!ATTLIST string-mute
    type (on | off) #REQUIRED
    %print-style-align; 
>

<!ELEMENT scordatura (accord+)>
<!ELEMENT accord (tuning-step, tuning-alter?, tuning-octave)>
<!ATTLIST accord string CDATA #REQUIRED>

<!ELEMENT image EMPTY>
<!ATTLIST image
    source CDATA #REQUIRED
    type CDATA #REQUIRED
    %position;
    %halign;
    %valign-image; 
>

<!ELEMENT principal-voice (#PCDATA)>
<!ATTLIST principal-voice
    type %start-stop; #REQUIRED
    symbol (Hauptstimme | Nebenstimme | plain | none) #REQUIRED
    %print-style-align;
>

<!ELEMENT accordion-registration
    (accordion-high?, accordion-middle?, accordion-low?)>
<!ATTLIST accordion-registration
    %print-style-align; 
>

<!ELEMENT accordion-high EMPTY>
<!ELEMENT accordion-middle (#PCDATA)>
<!ELEMENT accordion-low EMPTY>

<!ELEMENT percussion
    (glass | metal | wood | pitched | membrane | effect |
     timpani | beater | stick | stick-location | 
     other-percussion)>
<!ATTLIST percussion
    %print-style-align;
    %enclosure; 
>

<!ELEMENT glass (#PCDATA)>

<!ELEMENT metal (#PCDATA)>

<!ELEMENT wood (#PCDATA)>

<!ELEMENT pitched (#PCDATA)>

<!ELEMENT membrane (#PCDATA)>

<!ELEMENT effect (#PCDATA)>

<!ELEMENT timpani EMPTY>

<!ELEMENT beater (#PCDATA)>
<!ATTLIST beater tip %tip-direction; #IMPLIED>

<!ELEMENT stick (stick-type, stick-material)>
<!ATTLIST stick tip %tip-direction; #IMPLIED>
<!ELEMENT stick-type (#PCDATA)>
<!ELEMENT stick-material (#PCDATA)>

<!ELEMENT stick-location (#PCDATA)>

<!ELEMENT other-percussion (#PCDATA)>

<!ELEMENT other-direction (#PCDATA)>
<!ATTLIST other-direction
    %print-object;
    %print-style-align; 
>

<!ELEMENT offset (#PCDATA)>
<!ATTLIST offset sound %yes-no; #IMPLIED>

<!ENTITY % harmony-chord "((root | function), kind, inversion?, bass?, degree*)">

<!ELEMENT harmony ((%harmony-chord;)+, frame?, offset?, %editorial;, staff?)>
<!ATTLIST harmony
    type (explicit | implied | alternate) #IMPLIED
    %print-object;
    print-frame  %yes-no; #IMPLIED
    %print-style;
    %placement;
>

<!ELEMENT root (root-step, root-alter?)>
<!ELEMENT root-step (#PCDATA)>
<!ATTLIST root-step
    text CDATA #IMPLIED
    %print-style;
>
<!ELEMENT root-alter (#PCDATA)>
<!ATTLIST root-alter
    %print-object;
    %print-style;
    location %left-right; #IMPLIED
>
<!ELEMENT function (#PCDATA)>
<!ATTLIST function
    %print-style;
>

<!ELEMENT kind (#PCDATA)>
<!ATTLIST kind
    use-symbols          %yes-no;   #IMPLIED
    text                 CDATA      #IMPLIED
    stack-degrees        %yes-no;   #IMPLIED
    parentheses-degrees  %yes-no;   #IMPLIED
    bracket-degrees      %yes-no;   #IMPLIED
    %print-style;
    %halign;
    %valign;
>

<!ELEMENT inversion (#PCDATA)>
<!ATTLIST inversion %print-style;>

<!ELEMENT bass (bass-step, bass-alter?)>
<!ELEMENT bass-step (#PCDATA)>
<!ATTLIST bass-step
    text CDATA #IMPLIED
    %print-style;
>
<!ELEMENT bass-alter (#PCDATA)>
<!ATTLIST bass-alter
    %print-object;
    %print-style;
    location (left | right) #IMPLIED
>

<!ELEMENT degree (degree-value, degree-alter, degree-type)>
<!ATTLIST degree %print-object;>

<!ELEMENT degree-value (#PCDATA)>
<!ATTLIST degree-value
    symbol (major | minor | augmented | 
        diminished | half-diminished) #IMPLIED
    text CDATA #IMPLIED
    %print-style;
>

<!ELEMENT degree-alter (#PCDATA)>
<!ATTLIST degree-alter
    %print-style;
    plus-minus %yes-no; #IMPLIED
>

<!ELEMENT degree-type (#PCDATA)>
<!ATTLIST degree-type
    text CDATA #IMPLIED
    %print-style;
>

<!ELEMENT frame (frame-strings, frame-frets, first-fret?, frame-note+)>
<!ATTLIST frame 
    %position;
    %color;
    %halign;
    %valign-image;
    height  %tenths;  #IMPLIED
    width   %tenths;  #IMPLIED
    unplayed CDATA    #IMPLIED
>

<!ELEMENT frame-strings (#PCDATA)>
<!ELEMENT frame-frets (#PCDATA)>

<!ELEMENT first-fret (#PCDATA)>
<!ATTLIST first-fret
    text CDATA #IMPLIED
    location %left-right; #IMPLIED
>

<!ELEMENT frame-note (string, fret, fingering?, barre?)>

<!ELEMENT barre EMPTY>
<!ATTLIST barre
    type %start-stop; #REQUIRED
    %color;
>

<!ELEMENT grouping ((feature)*)>
<!ATTLIST grouping
    type %start-stop-single; #REQUIRED
    number CDATA "1"
    member-of CDATA #IMPLIED
>
<!ELEMENT feature (#PCDATA)>
<!ATTLIST feature type CDATA #IMPLIED>

<!ELEMENT print (page-layout?, system-layout?, staff-layout*, measure-layout?, measure-numbering?, 
    part-name-display?, part-abbreviation-display?)
>
<!ATTLIST print
    staff-spacing %tenths; #IMPLIED
    new-system %yes-no; #IMPLIED
    new-page %yes-no; #IMPLIED
    blank-page NMTOKEN #IMPLIED
    page-number CDATA #IMPLIED    
>

<!ELEMENT measure-numbering (#PCDATA)>
<!ATTLIST measure-numbering %print-style-align;>

<!ELEMENT sound ((midi-device?, midi-instrument?, play?)*, offset?)>
<!ATTLIST sound
    tempo CDATA #IMPLIED
    dynamics CDATA #IMPLIED
    dacapo %yes-no; #IMPLIED
    segno CDATA #IMPLIED
    dalsegno CDATA #IMPLIED
    coda CDATA #IMPLIED
    tocoda CDATA #IMPLIED
    divisions CDATA #IMPLIED
    forward-repeat %yes-no; #IMPLIED
    fine CDATA #IMPLIED
    %time-only;
    pizzicato %yes-no; #IMPLIED
    pan CDATA #IMPLIED
    elevation CDATA #IMPLIED
    damper-pedal %yes-no-number; #IMPLIED
    soft-pedal %yes-no-number; #IMPLIED
    sostenuto-pedal %yes-no-number; #IMPLIED
>
<!------------------------------------------------------------------------------------->

<!-- score.mod -->
<!ELEMENT work (work-number?, work-title?, opus?)>
<!ELEMENT work-number (#PCDATA)>
<!ELEMENT work-title (#PCDATA)>

<!ELEMENT opus EMPTY>
<!ATTLIST opus %link-attributes;>

<!ELEMENT movement-number (#PCDATA)>
<!ELEMENT movement-title (#PCDATA)>

<!ELEMENT defaults (scaling?, page-layout?, system-layout?, staff-layout*, appearance?, 
    music-font?, word-font?, lyric-font*, lyric-language*)>

<!ELEMENT music-font EMPTY>
<!ATTLIST music-font %font;>

<!ELEMENT word-font EMPTY>
<!ATTLIST word-font %font;>

<!ELEMENT lyric-font EMPTY>
<!ATTLIST lyric-font
    number NMTOKEN #IMPLIED
    name CDATA #IMPLIED
    %font;
>

<!ELEMENT lyric-language EMPTY>
<!ATTLIST lyric-language
    number NMTOKEN #IMPLIED
    name CDATA #IMPLIED
    xml:lang NMTOKEN #REQUIRED
>

<!ELEMENT credit (credit-type*, link*, bookmark*, 
    (credit-image | (credit-words, (link*, bookmark*, credit-words)*)))
>
<!ATTLIST credit page NMTOKEN #IMPLIED>

<!ELEMENT credit-type (#PCDATA)>

<!ELEMENT credit-words (#PCDATA)>
<!ATTLIST credit-words %text-formatting;>

<!ELEMENT credit-image EMPTY>
<!ATTLIST credit-image
    source CDATA #REQUIRED
    type CDATA #REQUIRED
    %position; 
    %halign;
    %valign-image;
>

<!ELEMENT part-list (part-group*, score-part, (part-group | score-part)*)>

<!ELEMENT score-part (identification?,
    part-name, part-name-display?,
    part-abbreviation?, part-abbreviation-display?, 
    group*, score-instrument*, 
    (midi-device?, midi-instrument?)*)>
<!ATTLIST score-part id ID #REQUIRED>

<!ELEMENT part-name (#PCDATA)>
<!ATTLIST part-name
    %print-style;
    %print-object;
    %justify;
>

<!ELEMENT part-abbreviation (#PCDATA)>
<!ATTLIST part-abbreviation
    %print-style;
    %print-object;
    %justify;
>

<!ELEMENT part-group (group-name?, group-name-display?, group-abbreviation?, group-abbreviation-display?,
    group-symbol?, group-barline?, group-time?, %editorial;)
>
<!ATTLIST part-group
    type %start-stop; #REQUIRED
    number CDATA "1"
>

<!ELEMENT group-name (#PCDATA)>
<!ATTLIST group-name
    %print-style;
    %justify;
>

<!ELEMENT group-name-display ((display-text | accidental-text)*)>
<!ATTLIST group-name-display %print-object;>

<!ELEMENT group-abbreviation (#PCDATA)>
<!ATTLIST group-abbreviation
    %print-style;
    %justify;
>

<!ELEMENT group-abbreviation-display ((display-text | accidental-text)*)>
<!ATTLIST group-abbreviation-display %print-object;>

<!ELEMENT group-symbol (#PCDATA)>
<!ATTLIST group-symbol
    %position;
    %color;
>

<!ELEMENT group-barline (#PCDATA)>
<!ATTLIST group-barline %color;>

<!ELEMENT group-time EMPTY>

<!ELEMENT score-instrument (instrument-name, instrument-abbreviation?, instrument-sound?, (solo | ensemble)?, virtual-instrument?)>
<!ATTLIST score-instrument id ID #REQUIRED>

<!ELEMENT instrument-name (#PCDATA)>
<!ELEMENT instrument-abbreviation (#PCDATA)>
<!ELEMENT instrument-sound (#PCDATA)>
<!ELEMENT solo EMPTY>
<!ELEMENT ensemble (#PCDATA)>
<!ELEMENT virtual-instrument (virtual-library?, virtual-name?)>
<!ELEMENT virtual-library (#PCDATA)>
<!ELEMENT virtual-name (#PCDATA)>

<!ELEMENT group (#PCDATA)>

<!ENTITY % music-data "(note | backup | forward | direction | attributes | harmony | figured-bass | print | sound |
    barline | grouping | link | bookmark)*">

<!ENTITY % score-header "(work?, movement-number?, movement-title?, identification?, defaults?, credit*, part-list)">

<!-- ! -->
<![ %partwise; [
<!ELEMENT score-partwise (%score-header;, part+)>
<!ATTLIST score-partwise %document-attributes;>    
<!ELEMENT part (measure+)>
<!ELEMENT measure (%music-data;)>
]]>

<![ %timewise; [
<!ELEMENT score-timewise (%score-header;, measure+)>
<!ATTLIST score-timewise %document-attributes;>    
<!ELEMENT measure (part+)>
<!ELEMENT part (%music-data;)>
]]>

<!ATTLIST part id IDREF #REQUIRED>

<!ATTLIST measure
    number CDATA #REQUIRED
    implicit %yes-no; #IMPLIED
    non-controlling %yes-no; #IMPLIED
    width %tenths; #IMPLIED
>
<!------------------------------------------------------------------------------------->

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多