NIFF XML Proposal - XML Schema
From: http://niffty.sourceforge.net/xml/NIFFML.xsd. See: NIFF XML Proposal on SourceForge.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE schema SYSTEM "XMLSchema.dtd"> <!-- From: http://niffty.sourceforge.net/xml/NIFFML.xsd --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="NIFF" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:element name="NIFF"> <xs:complexType> <xs:sequence> <xs:element ref="Setup"/> <xs:element ref="Data"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Setup"> <xs:complexType> <xs:sequence> <xs:element ref="NiffInformation"/> <xs:element ref="PartsList"/> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element ref="RiffInfo"/> <xs:element ref="StaffGroupings"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="NiffInformation"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="SpacingByPart" type="Empty"/> </xs:choice> <xs:attribute use="required" name="niffVersion" type="xs:string"/> <xs:attribute name="writingProgramType"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="engraving program"/> <xs:enumeration value="scanning program"/> <xs:enumeration value="MIDI interpreter"/> <xs:enumeration value="sequencer"/> <xs:enumeration value="research program"/> <xs:enumeration value="educational program"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="standardUnits"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="inches"/> <xs:enumeration value="centimeters"/> <xs:enumeration value="points"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="absoluteUnitsPerStandardUnit" type="xs:integer"/> <xs:attribute name="midiTicksPerQuarter" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="PartsList"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element ref="PartDescription"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="PartDescription"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="LyricVerseOffset" type="LyricVerseOffset"/> <xs:element name="ChordSymbolsOffset" type="IntegerValue"/> <xs:element name="GuitarGridOffset" type="IntegerValue"/> <xs:element name="RehearsalMarkOffset" type="IntegerValue"/> <xs:element name="FiguredBassOffset" type="IntegerValue"/> </xs:choice> <xs:attribute use="required" name="partID" type="xs:integer"/> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="abbreviation" type="xs:string"/> <xs:attribute use="required" name="numberOfStaves" type="xs:integer"/> <xs:attribute name="midiChannel" type="xs:integer"/> <xs:attribute name="midiCable" type="xs:integer"/> <xs:attribute name="transpose" type="xs:integer" default="0"/> </xs:complexType> </xs:element> <xs:element name="RiffInfo"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element ref="Copyright"/> <xs:element ref="Engineer"/> <xs:element ref="Software"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="Copyright"> <xs:complexType> <xs:attribute use="required" name="value" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="Engineer"> <xs:complexType> <xs:attribute use="required" name="value" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="Software"> <xs:complexType> <xs:attribute use="required" name="value" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="StaffGroupings"> <xs:complexType> <xs:sequence maxOccurs="unbounded" minOccurs="0"> <xs:element ref="StaffGrouping"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="StaffGrouping"> <xs:complexType> <xs:attribute use="required" name="groupingType"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="vertical line"/> <xs:enumeration value="brace"/> <xs:enumeration value="bracket"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="required" name="firstStaff" type="xs:integer"/> <xs:attribute use="required" name="lastStaff" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="Data"> <xs:complexType> <xs:sequence maxOccurs="unbounded" minOccurs="0"> <xs:element ref="Page"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Page"> <xs:complexType> <xs:sequence> <xs:element ref="PageHeader"/> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element ref="System"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="PageHeader"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="Width" type="IntegerValue"/> <xs:element name="Height" type="IntegerValue"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="System"> <xs:complexType> <xs:sequence> <xs:element ref="SystemHeader"/> <xs:sequence maxOccurs="unbounded" minOccurs="0"> <xs:element ref="Staff"/> </xs:sequence> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SystemHeader"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="AnchorOverride" type="StringValue"/> <xs:element name="AbsolutePlacement" type="HorizontalVertical"/> <xs:element name="LogicalPlacement" type="LogicalPlacement"/> <xs:element name="Width" type="IntegerValue"/> <xs:element name="Height" type="IntegerValue"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="Staff"> <xs:complexType> <xs:sequence> <xs:element ref="StaffHeader"/> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element ref="TimeSlice"/> <xs:element ref="Accidental"/> <xs:element ref="AlternateEndingGraphic"/> <xs:element ref="AugmentationDot"/> <xs:element ref="Barline"/> <xs:element ref="Beam"/> <xs:element ref="ChordSymbol"/> <xs:element ref="Clef"/> <xs:element ref="FiguredBass"/> <xs:element ref="GuitarGrid"/> <xs:element ref="HarpPedalSymbol"/> <xs:element ref="KeySignature"/> <xs:element ref="Lyric"/> <xs:element ref="Notehead"/> <xs:element ref="OctaveSign"/> <xs:element ref="RehearsalMark"/> <xs:element ref="RepeatSign"/> <xs:element ref="Rest"/> <xs:element ref="Slur"/> <xs:element ref="Stem"/> <xs:element ref="TempoMarking"/> <xs:element ref="Text"/> <xs:element ref="Tie"/> <xs:element ref="TimeSignature"/> <xs:element ref="Tuplet"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="StaffHeader"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="PartID" type="IntegerValue"/> <xs:element name="PartDescriptionOverride" type="PartDescriptionOverride"/> <xs:element name="AnchorOverride" type="StringValue"/> <xs:element name="AbsolutePlacement" type="HorizontalVertical"/> <xs:element name="LogicalPlacement" type="LogicalPlacement"/> <xs:element name="Width" type="IntegerValue"/> <xs:element name="Height" type="IntegerValue"/> <xs:element name="NumberOfStaffLines" type="IntegerValue"/> <xs:element name="Silent" type="Empty"/> <xs:element name="Ossia" type="Ossia"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="TimeSlice"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="PartID" type="IntegerValue"/> <xs:element name="PartDescriptionOverride" type="PartDescriptionOverride"/> <xs:element name="AlternateEnding" type="IntegerValue"/> <xs:element name="AnchorOverride" type="StringValue"/> <xs:element name="AbsolutePlacement" type="HorizontalVertical"/> <xs:element name="LogicalPlacement" type="LogicalPlacement"/> <xs:element name="Width" type="IntegerValue"/> <xs:element name="Height" type="IntegerValue"/> <xs:element name="EndOfSystem" type="Empty"/> <xs:element name="NumberOfStaffLines" type="IntegerValue"/> <xs:element name="Silent" type="Empty"/> </xs:choice> <xs:attribute use="required" name="type"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="measure-start"/> <xs:enumeration value="event"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="required" name="startTimeN" type="xs:integer"/> <xs:attribute use="required" name="startTimeD" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="Accidental"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="SmallSize" type="Empty"/> </xs:choice> <xs:attribute use="required" name="shape"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="double flat"/> <xs:enumeration value="flat"/> <xs:enumeration value="natural"/> <xs:enumeration value="sharp"/> <xs:enumeration value="double sharp"/> <xs:enumeration value="quarter tone flat"/> <xs:enumeration value="three quarter tones flat"/> <xs:enumeration value="quarter tone sharp"/> <xs:enumeration value="three quarter tones sharp"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="AlternateEndingGraphic"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="MultiNodeID" type="IntegerValue"/> <xs:element name="MultiNodeEndOfSystem" type="Empty"/> <xs:element name="MultiNodeStartOfSystem" type="Empty"/> <xs:element name="NumberOfNodes" type="IntegerValue"/> </xs:choice> <xs:attribute use="required" name="bracketShape"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="no down-jog"/> <xs:enumeration value="down-jog at beginning"/> <xs:enumeration value="down-jog at end"/> <xs:enumeration value="down-jog at beginning and end"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="text" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="AugmentationDot"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="LogicalPlacement" type="LogicalPlacement"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="Barline"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="Width" type="IntegerValue"/> <xs:element name="EndOfSystem" type="Empty"/> <xs:element name="LineQuality" type="LineQuality"/> </xs:choice> <xs:attribute use="required" name="type"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="thin line"/> <xs:enumeration value="thick line"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="required" name="extendsTo"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="bottom of bottom staff"/> <xs:enumeration value="in spaces between staves"/> <xs:enumeration value="deprecated option 2"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="required" name="numberOfStaves" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="Beam"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="MultiNodeID" type="IntegerValue"/> <xs:element name="MultiNodeEndOfSystem" type="Empty"/> <xs:element name="MultiNodeStartOfSystem" type="Empty"/> <xs:element name="NumberOfNodes" type="IntegerValue"/> <xs:element name="FannedBeam" type="FannedBeam"/> </xs:choice> <xs:attribute use="required" name="partsToLeft" type="xs:integer"/> <xs:attribute use="required" name="partsToRight" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="ChordSymbol"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="FontID" type="IntegerValue"/> </xs:choice> <xs:attribute name="textDescription" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="Clef"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="AnchorOverride" type="StringValue"/> <xs:element name="AbsolutePlacement" type="HorizontalVertical"/> <xs:element name="LogicalPlacement" type="LogicalPlacement"/> <xs:element name="StaffStepOverride" type="IntegerValue"/> <xs:element name="VoiceID" type="IntegerValue"/> </xs:choice> <xs:attribute use="required" name="shape"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="G clef"/> <xs:enumeration value="F clef"/> <xs:enumeration value="C clef"/> <xs:enumeration value="percussion"/> <xs:enumeration value="double G clef"/> <xs:enumeration value="TAB for guitar"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="required" name="staffStep" type="xs:integer"/> <xs:attribute name="octaveNumber" default="no number"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="no number"/> <xs:enumeration value="8 above"/> <xs:enumeration value="8 below"/> <xs:enumeration value="15 above"/> <xs:enumeration value="15 below"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="FiguredBass"> <xs:complexType> <xs:attribute name="textDescription" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="GuitarGrid"> <xs:complexType> <xs:attribute use="required" name="numberOfFrets" type="xs:integer"/> <xs:attribute use="required" name="numberOfStrings" type="xs:integer"/> <xs:attribute name="textDescription" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="HarpPedalSymbol"> <xs:complexType> <xs:attribute name="pedalPositions" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="KeySignature"> <xs:complexType> <xs:attribute use="required" name="standardCode"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="no sharps or flats"/> <xs:enumeration value="1 sharp"/> <xs:enumeration value="2 sharps"/> <xs:enumeration value="3 sharps"/> <xs:enumeration value="4 sharps"/> <xs:enumeration value="5 sharps"/> <xs:enumeration value="6 sharps"/> <xs:enumeration value="7 sharps"/> <xs:enumeration value="1 flat"/> <xs:enumeration value="2 flats"/> <xs:enumeration value="3 flats"/> <xs:enumeration value="4 flats"/> <xs:enumeration value="5 flats"/> <xs:enumeration value="6 flats"/> <xs:enumeration value="7 flats"/> <xs:enumeration value="1 natural in sharp position"/> <xs:enumeration value="2 naturals in sharp positions"/> <xs:enumeration value="3 naturals in sharp positions"/> <xs:enumeration value="4 naturals in sharp positions"/> <xs:enumeration value="5 naturals in sharp positions"/> <xs:enumeration value="6 naturals in sharp positions"/> <xs:enumeration value="7 naturals in sharp positions"/> <xs:enumeration value="1 natural in flat position"/> <xs:enumeration value="2 naturals in flat positions"/> <xs:enumeration value="3 naturals in flat positions"/> <xs:enumeration value="4 naturals in flat positions"/> <xs:enumeration value="5 naturals in flat positions"/> <xs:enumeration value="6 naturals in flat positions"/> <xs:enumeration value="7 naturals in flat positions"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="Lyric"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="FontID" type="IntegerValue"/> <xs:element name="LineQuality" type="LineQuality"/> <xs:element name="ReferencePointOverride" type="ReferencePointOverride"/> </xs:choice> <xs:attribute name="text" type="xs:string"/> <xs:attribute use="required" name="verseID" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="Notehead"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="PartID" type="IntegerValue"/> <xs:element name="PartDescriptionOverride" type="PartDescriptionOverride"/> <xs:element name="VoiceID" type="IntegerValue"/> <xs:element name="AnchorOverride" type="StringValue"/> <xs:element name="AbsolutePlacement" type="HorizontalVertical"/> <xs:element name="LogicalPlacement" type="LogicalPlacement"/> <xs:element name="StaffStepOverride" type="IntegerValue"/> <xs:element name="MidiPerformance" type="MidiPerformance"/> <xs:element name="SmallSize" type="Empty"/> <xs:element name="LargeSize" type="Empty"/> <xs:element name="Invisible" type="Empty"/> <xs:element name="SplitStem" type="Empty"/> <xs:element name="Silent" type="Empty"/> <xs:element name="GraceNoteOffset" type="GraceNoteOffset"/> </xs:choice> <xs:attribute use="required" name="shape"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="breve"/> <xs:enumeration value="whole"/> <xs:enumeration value="half"/> <xs:enumeration value="filled"/> <xs:enumeration value="open diamond"/> <xs:enumeration value="solid diamond"/> <xs:enumeration value="x notehead"/> <xs:enumeration value="open x notehead"/> <xs:enumeration value="filled guiter slash"/> <xs:enumeration value="open guitar slash"/> <xs:enumeration value="filled square"/> <xs:enumeration value="open square"/> <xs:enumeration value="filled triangle"/> <xs:enumeration value="open triangle"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="required" name="staffStep" type="xs:integer"/> <xs:attribute use="required" name="durationN" type="xs:integer"/> <xs:attribute use="required" name="durationD" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="OctaveSign"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="LineQuality" type="LineQuality"/> </xs:choice> <xs:attribute use="required" name="numberOfOctaves" type="xs:integer"/> <xs:attribute use="required" name="aboveOrBelow"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="above"/> <xs:enumeration value="below"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="required" name="type"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="to be transposed"/> <xs:enumeration value="to be doubled"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="text" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="RehearsalMark"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="FontID" type="IntegerValue"/> <xs:element name="AnchorOverride" type="StringValue"/> <xs:element name="AbsolutePlacement" type="HorizontalVertical"/> <xs:element name="LogicalPlacement" type="LogicalPlacement"/> </xs:choice> <xs:attribute name="text" type="xs:string"/> <xs:attribute use="required" name="enclosure"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="none"/> <xs:enumeration value="box"/> <xs:enumeration value="circle"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="RepeatSign"> <xs:complexType> <xs:attribute use="required" name="graphicalCode"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="no graphical symbol"/> <xs:enumeration value="segno symbol"/> <xs:enumeration value="coda symbol"/> <xs:enumeration value="1 slash"/> <xs:enumeration value="2 slashes"/> <xs:enumeration value="3 slashes"/> <xs:enumeration value="2 slashes with dots"/> <xs:enumeration value="1 slash with dots"/> <xs:enumeration value="1 slash with dots and barline"/> <xs:enumeration value="2 slashes with dots and barline"/> <xs:enumeration value="repeat dots"/> <xs:enumeration value="D.C."/> <xs:enumeration value="D.C. al Fine"/> <xs:enumeration value="D.C. al Segno"/> <xs:enumeration value="D.C. al Segno e poi la Coda"/> <xs:enumeration value="D.S."/> <xs:enumeration value="D.S. al Fine"/> <xs:enumeration value="Fine"/> <xs:enumeration value="Coda"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="required" name="logicalCode"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="no repeat function"/> <xs:enumeration value="beginning of section"/> <xs:enumeration value="end of section"/> <xs:enumeration value="previous beat"/> <xs:enumeration value="previous measure"/> <xs:enumeration value="previous two measures"/> <xs:enumeration value="as described by D.C., etc."/> <xs:enumeration value="repeat chord for 1 beat"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="Rest"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="PartID" type="IntegerValue"/> <xs:element name="PartDescriptionOverride" type="PartDescriptionOverride"/> <xs:element name="VoiceID" type="IntegerValue"/> <xs:element name="AnchorOverride" type="StringValue"/> <xs:element name="AbsolutePlacement" type="HorizontalVertical"/> <xs:element name="LogicalPlacement" type="LogicalPlacement"/> <xs:element name="StaffStepOverride" type="IntegerValue"/> <xs:element name="MidiPerformance" type="MidiPerformance"/> <xs:element name="SmallSize" type="Empty"/> <xs:element name="LargeSize" type="Empty"/> <xs:element name="Invisible" type="Empty"/> <xs:element name="SplitStem" type="Empty"/> <xs:element name="Silent" type="Empty"/> <xs:element name="GraceNoteOffset" type="GraceNoteOffset"/> </xs:choice> <xs:attribute use="required" name="shape"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="breve"/> <xs:enumeration value="whole"/> <xs:enumeration value="half"/> <xs:enumeration value="quarter"/> <xs:enumeration value="eighth"/> <xs:enumeration value="sixteenth"/> <xs:enumeration value="32nd"/> <xs:enumeration value="64th"/> <xs:enumeration value="128th"/> <xs:enumeration value="256th"/> <xs:enumeration value="multiple rest - 4 measures"/> <xs:enumeration value="multiple measure - thick horizontal bar"/> <xs:enumeration value="multiple measure - thick slanted bar"/> <xs:enumeration value="vocal breath comma"/> <xs:enumeration value="vocal breath 2 small slashes"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="required" name="staffStep" type="xs:integer"/> <xs:attribute use="required" name="durationN" type="xs:integer"/> <xs:attribute use="required" name="durationD" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="Slur"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="MultiNodeID" type="IntegerValue"/> <xs:element name="MultiNodeEndOfSystem" type="Empty"/> <xs:element name="MultiNodeStartOfSystem" type="Empty"/> <xs:element name="NumberOfNodes" type="IntegerValue"/> <xs:element name="TieDirection" type="TieDirection"/> <xs:element name="BezierIncoming" type="HorizontalVertical"/> <xs:element name="BezierOutgoing" type="HorizontalVertical"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="Stem"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="AnchorOverride" type="StringValue"/> <xs:element name="AbsolutePlacement" type="HorizontalVertical"/> <xs:element name="LogicalPlacement" type="LogicalPlacement"/> <xs:element name="VoiceID" type="IntegerValue"/> <xs:element name="PartID" type="IntegerValue"/> <xs:element name="PartDescriptionOverride" type="PartDescriptionOverride"/> <xs:element name="MultiNodeID" type="IntegerValue"/> <xs:element name="MultiNodeEndOfSystem" type="Empty"/> <xs:element name="MultiNodeStartOfSystem" type="Empty"/> <xs:element name="NumberOfNodes" type="IntegerValue"/> <xs:element name="Height" type="IntegerValue"/> <xs:element name="SmallSize" type="Empty"/> <xs:element name="LargeSize" type="Empty"/> <xs:element name="Silent" type="Empty"/> <xs:element name="SlashedStem" type="Empty"/> <xs:element name="NumberOfFlags" type="IntegerValue"/> <xs:element name="GraceNoteOffset" type="GraceNoteOffset"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="TempoMarking"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="FontID" type="IntegerValue"/> </xs:choice> <xs:attribute name="text" type="xs:string"/> <xs:attribute use="required" name="noteValueN" type="xs:integer"/> <xs:attribute use="required" name="noteValueD" type="xs:integer"/> <xs:attribute use="required" name="beatsPerMinute" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="Text"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="FontID" type="IntegerValue"/> <xs:element name="StaffName" type="Empty"/> </xs:choice> <xs:attribute name="value" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="Tie"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="MultiNodeID" type="IntegerValue"/> <xs:element name="MultiNodeEndOfSystem" type="Empty"/> <xs:element name="MultiNodeStartOfSystem" type="Empty"/> <xs:element name="NumberOfNodes" type="IntegerValue"/> <xs:element name="TieDirection" type="TieDirection"/> <xs:element name="BezierIncoming" type="HorizontalVertical"/> <xs:element name="BezierOutgoing" type="HorizontalVertical"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="TimeSignature"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="AnchorOverride" type="StringValue"/> <xs:element name="AbsolutePlacement" type="HorizontalVertical"/> <xs:element name="LogicalPlacement" type="LogicalPlacement"/> <xs:element name="LargeSize" type="Empty"/> <xs:element name="SmallSize" type="Empty"/> </xs:choice> <xs:attribute use="required" name="topNumber" type="xs:integer"/> <xs:attribute use="required" name="bottomNumber" type="xs:integer"/> </xs:complexType> </xs:element> <xs:element name="Tuplet"> <xs:complexType> <xs:choice maxOccurs="unbounded" minOccurs="0"> <xs:element name="TupletDescription" type="TupletDescription"/> <xs:element name="NumberStyle" type="NumberStyle"/> <xs:element name="MultiNodeID" type="IntegerValue"/> <xs:element name="MultiNodeEndOfSystem" type="Empty"/> <xs:element name="MultiNodeStartOfSystem" type="Empty"/> <xs:element name="NumberOfNodes" type="IntegerValue"/> </xs:choice> </xs:complexType> </xs:element> <xs:complexType name="ArticulationDirection"> <xs:attribute use="required" name="value"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="pointed up"/> <xs:enumeration value="pointed down"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="CustomFontCharacter"> <xs:attribute use="required" name="fontID" type="xs:integer"/> <xs:attribute use="required" name="characterCode" type="xs:string"/> </xs:complexType> <xs:complexType name="FannedBeam"> <xs:attribute use="required" name="value"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="expanding toward right"/> <xs:enumeration value="shrinking toward right"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="GraceNoteOffset"> <xs:attribute use="required" name="numerator" type="xs:integer"/> <xs:attribute use="required" name="denominator" type="xs:integer"/> </xs:complexType> <xs:complexType name="LineQuality"> <xs:attribute use="required" name="lineQuality"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="no line"/> <xs:enumeration value="dotted line"/> <xs:enumeration value="dashed line"/> <xs:enumeration value="wavy line"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="LogicalPlacement"> <xs:attribute name="horizontal" default="default"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="default"/> <xs:enumeration value="left"/> <xs:enumeration value="right"/> <xs:enumeration value="stem side"/> <xs:enumeration value="note side"/> <xs:enumeration value="centered"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="vertical" default="default"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="default"/> <xs:enumeration value="above"/> <xs:enumeration value="below"/> <xs:enumeration value="stem side"/> <xs:enumeration value="note side"/> <xs:enumeration value="centered"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="proximity" default="default"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="default"/> <xs:enumeration value="touching or exactly aligned"/> <xs:enumeration value="offset slightly"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="LyricVerseOffset"> <xs:attribute use="required" name="lineOffset" type="xs:integer"/> <xs:attribute use="required" name="verseID" type="xs:integer"/> </xs:complexType> <xs:complexType name="MidiPerformance"> <xs:attribute use="required" name="startTimeTicks" type="xs:integer"/> <xs:attribute use="required" name="durationTicks" type="xs:integer"/> <xs:attribute use="required" name="pitch" type="xs:integer"/> <xs:attribute use="required" name="velocity" type="xs:integer"/> </xs:complexType> <xs:complexType name="Ossia"> <xs:attribute use="required" name="value"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="do not play back"/> <xs:enumeration value="play ossia instead"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="PartDescriptionOverride"> <xs:attribute use="required" name="midiChannel" type="xs:integer"/> <xs:attribute use="required" name="midiCable" type="xs:integer"/> <xs:attribute use="required" name="transpose" type="xs:integer"/> </xs:complexType> <xs:complexType name="ReferencePointOverride"> <xs:attribute use="required" name="anchorHorizontal" type="xs:integer"/> <xs:attribute use="required" name="dependentHorizontal"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="symbol's default"/> <xs:enumeration value="left of bounding box"/> <xs:enumeration value="right of bounding box"/> <xs:enumeration value="horizontal center"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute use="required" name="anchorVertical" type="xs:integer"/> <xs:attribute use="required" name="dependentVertical"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="symbol's default"/> <xs:enumeration value="top of bounding box"/> <xs:enumeration value="bottom of bounding box"/> <xs:enumeration value="vertical center"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="TieDirection"> <xs:attribute use="required" name="value"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="rounded above"/> <xs:enumeration value="rounded below"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="TupletDescription"> <xs:attribute use="required" name="transformationA" type="xs:integer"/> <xs:attribute use="required" name="transformationB" type="xs:integer"/> <xs:attribute use="required" name="transformationC" type="xs:integer"/> <xs:attribute use="required" name="transformationD" type="xs:integer"/> <xs:attribute use="required" name="groupingSymbol"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="default"/> <xs:enumeration value="number only"/> <xs:enumeration value="number with broken slur"/> <xs:enumeration value="number outside slur"/> <xs:enumeration value="number inside slur"/> <xs:enumeration value="number with broken bracket"/> <xs:enumeration value="number outside bracket"/> <xs:enumeration value="number inside bracket"/> <xs:enumeration value="bracket only"/> <xs:enumeration value="slur only"/> <xs:enumeration value="no symbol"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="NumberStyle"> <xs:attribute use="required" name="value"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="default"/> <xs:enumeration value="first number only"/> <xs:enumeration value="two number with colon"/> <xs:enumeration value="number string"/> <xs:enumeration value="no number"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="HorizontalVertical"> <xs:attribute use="required" name="horizontal" type="xs:integer"/> <xs:attribute use="required" name="vertical" type="xs:integer"/> </xs:complexType> <xs:complexType name="StringValue"> <xs:attribute use="required" name="value" type="xs:string"/> </xs:complexType> <xs:complexType name="IntegerValue"> <xs:attribute use="required" name="value" type="xs:integer"/> </xs:complexType> <xs:complexType name="Empty"/></xs:schema>