ardour/patchfiles/MIDINameDocument10.dtd
David Robillard 078145252b Fix invalid XML. All midnam files now pass validation by xmllint.
git-svn-id: svn://localhost/ardour2/branches/3.0@13886 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-19 02:33:28 +00:00

163 lines
4.4 KiB
DTD

<!--
XML DTD for MIDINameDocument
Version 1.0, 19 January 2003
Formal Public Identifier:
"-//MIDI Manufacturers Association//DTD MIDINameDocument 1.0//EN"
URI:
"http://www.midi.org/dtds/MIDINameDocument10.dtd"
-->
<!--
ENTITIES - used internally
-->
<!ENTITY % namelist "PatchNameList | NoteNameList | ControlNameList | ValueNameList">
<!ENTITY % noteorctl_listorref "(NoteNameList | UsesNoteNameList)?, (ControlNameList |
UsesControlNameList)?">
<!--
ELEMENTS AND ATTRIBUTES
-->
<!ELEMENT MIDINameDocument (Author, (MasterDeviceNames+ | ExtendingDeviceNames+ |
StandardDeviceMode+)) >
<!ELEMENT Author (#PCDATA)>
<!ELEMENT MasterDeviceNames (((Manufacturer, Model+) | Device),
(CustomDeviceMode | SupportsStandardDeviceMode)+,
ChannelNameSet*, (%namelist;)*) >
<!ELEMENT ExtendingDeviceNames (((Manufacturer, Model+)? | Device), (%namelist;)+) >
<!ELEMENT Manufacturer (#PCDATA)>
<!ELEMENT Model (#PCDATA)>
<!ELEMENT Device EMPTY>
<!ATTLIST Device
Name CDATA #REQUIRED
UniqueID NMTOKEN #REQUIRED>
<!ELEMENT StandardDeviceMode (DeviceModeEnable?, DeviceModeDisable?, ChannelNameSetAssignments,
ChannelNameSet+, (%namelist;)*) >
<!ATTLIST StandardDeviceMode
Name CDATA #REQUIRED>
<!ELEMENT CustomDeviceMode (DeviceModeEnable?, DeviceModeDisable?, ChannelNameSetAssignments,
(%namelist;)*) >
<!ATTLIST CustomDeviceMode
Name CDATA #REQUIRED>
<!ELEMENT DeviceModeEnable (MIDICommands)>
<!ELEMENT DeviceModeDisable (MIDICommands)>
<!ELEMENT SupportsStandardDeviceMode EMPTY>
<!ATTLIST SupportsStandardDeviceMode
Name CDATA #REQUIRED>
<!ELEMENT ChannelNameSetAssignments (ChannelNameSetAssign+)>
<!ELEMENT ChannelNameSetAssign EMPTY>
<!ATTLIST ChannelNameSetAssign
Channel NMTOKEN #REQUIRED
NameSet CDATA #REQUIRED>
<!ELEMENT ChannelNameSet (AvailableForChannels, %noteorctl_listorref;, PatchBank+) >
<!ATTLIST ChannelNameSet
Name CDATA #REQUIRED>
<!ELEMENT AvailableForChannels (AvailableChannel+)>
<!ELEMENT AvailableChannel EMPTY>
<!ATTLIST AvailableChannel
Channel NMTOKEN #REQUIRED
Available (false | true) "true">
<!ELEMENT PatchBank (MIDICommands?, (UsesPatchNameList | PatchNameList))>
<!ATTLIST PatchBank
Name CDATA #IMPLIED
ROM (false | true) "false">
<!ELEMENT UsesPatchNameList EMPTY>
<!ATTLIST UsesPatchNameList
Name CDATA #REQUIRED>
<!ELEMENT PatchNameList (Patch*)>
<!ATTLIST PatchNameList
Name CDATA #IMPLIED>
<!ELEMENT Patch (PatchMIDICommands?, ChannelNameSetAssignments?, %noteorctl_listorref; ) >
<!ATTLIST Patch
Number CDATA #REQUIRED
Name CDATA #REQUIRED
ProgramChange NMTOKEN #IMPLIED>
<!ELEMENT UsesNoteNameList EMPTY>
<!ATTLIST UsesNoteNameList
Name CDATA #REQUIRED>
<!ELEMENT NoteNameList (NoteGroup | Note)+>
<!ATTLIST NoteNameList
Name CDATA #IMPLIED>
<!ELEMENT NoteGroup (Note*)>
<!ATTLIST NoteGroup
Name CDATA #IMPLIED>
<!ELEMENT Note EMPTY>
<!ATTLIST Note
Number NMTOKEN #REQUIRED
Name CDATA #REQUIRED>
<!ELEMENT UsesControlNameList EMPTY>
<!ATTLIST UsesControlNameList
Name CDATA #REQUIRED>
<!ELEMENT ControlNameList (Control+)>
<!ATTLIST ControlNameList
Name CDATA #IMPLIED>
<!ELEMENT Control (Values?)>
<!ATTLIST Control
Type (7bit | 14bit | RPN | NRPN) "7bit"
Number NMTOKEN #REQUIRED
Name CDATA #REQUIRED>
<!ELEMENT Values (ValueNameList | UsesValueNameList)?>
<!ATTLIST Values
Min NMTOKEN #REQUIRED
Max NMTOKEN #REQUIRED
Default NMTOKEN #IMPLIED
Units NMTOKEN #IMPLIED
Mapping NMTOKEN #IMPLIED>
<!ELEMENT UsesValueNameList EMPTY>
<!ATTLIST UsesValueNameList
Name CDATA #REQUIRED>
<!ELEMENT ValueNameList (Value+)>
<!ATTLIST ValueNameList
Name CDATA #IMPLIED>
<!ELEMENT Value EMPTY>
<!ATTLIST Value
Number NMTOKEN #REQUIRED
Name CDATA #REQUIRED>
<!--
Include MIDI.dtd, defining elements referenced by MIDICommands
-->
<!ENTITY % ChannelRequired "#IMPLIED">
<!ENTITY % MIDIDTD PUBLIC "-//MIDI Manufacturers Association//DTD MIDIEvents 1.0//EN"
"http://www.midi.org/dtds/MIDIEvents10.dtd" >
%MIDIDTD;
<!ELEMENT MIDICommands (MIDIDelay | %MIDIChannelMessage; | SysEx)+ >
<!ELEMENT PatchMIDICommands (MIDIDelay | %MIDIChannelMessage; )+ >
<!ELEMENT MIDIDelay EMPTY>
<!ATTLIST MIDIDelay
Milliseconds CDATA #REQUIRED>