2 XML DTD for MIDINameDocument
\r
4 Version 1.0, 19 January 2003
\r
6 Formal Public Identifier:
\r
7 "-//MIDI Manufacturers Association//DTD MIDINameDocument 1.0//EN"
\r
9 "http://www.midi.org/dtds/MIDINameDocument10.dtd"
\r
13 ENTITIES - used internally
\r
16 <!ENTITY % namelist "PatchNameList | NoteNameList | ControlNameList | ValueNameList">
\r
17 <!ENTITY % noteorctl_listorref "(NoteNameList | UsesNoteNameList)?, (ControlNameList |
\r
18 UsesControlNameList)?">
\r
21 ELEMENTS AND ATTRIBUTES
\r
24 <!ELEMENT MIDINameDocument (Author, (MasterDeviceNames+ | ExtendingDeviceNames+ |
\r
25 StandardDeviceMode+)) >
\r
27 <!ELEMENT Author (#PCDATA)>
\r
29 <!ELEMENT MasterDeviceNames (((Manufacturer, Model+) | Device),
\r
30 (CustomDeviceMode | SupportsStandardDeviceMode)+,
\r
31 ChannelNameSet*, (%namelist;)*) >
\r
33 <!ELEMENT ExtendingDeviceNames (((Manufacturer, Model+)? | Device), (%namelist;)+) >
\r
35 <!ELEMENT Manufacturer (#PCDATA)>
\r
37 <!ELEMENT Model (#PCDATA)>
\r
39 <!ELEMENT Device EMPTY>
\r
41 Name CDATA #REQUIRED
\r
42 UniqueID NMTOKEN #REQUIRED>
\r
44 <!ELEMENT StandardDeviceMode (DeviceModeEnable?, DeviceModeDisable?, ChannelNameSetAssignments,
\r
45 ChannelNameSet+, (%namelist;)*) >
\r
46 <!ATTLIST StandardDeviceMode
\r
47 Name CDATA #REQUIRED>
\r
49 <!ELEMENT CustomDeviceMode (DeviceModeEnable?, DeviceModeDisable?, ChannelNameSetAssignments,
\r
51 <!ATTLIST CustomDeviceMode
\r
52 Name CDATA #REQUIRED>
\r
54 <!ELEMENT DeviceModeEnable (MIDICommands)>
\r
55 <!ELEMENT DeviceModeDisable (MIDICommands)>
\r
57 <!ELEMENT SupportsStandardDeviceMode EMPTY>
\r
58 <!ATTLIST SupportsStandardDeviceMode
\r
59 Name CDATA #REQUIRED>
\r
61 <!ELEMENT ChannelNameSetAssignments (ChannelNameSetAssign+)>
\r
62 <!ELEMENT ChannelNameSetAssign EMPTY>
\r
63 <!ATTLIST ChannelNameSetAssign
\r
64 Channel NMTOKEN #REQUIRED
\r
65 NameSet CDATA #REQUIRED>
\r
67 <!ELEMENT ChannelNameSet (AvailableForChannels, %noteorctl_listorref;, PatchBank+) >
\r
68 <!ATTLIST ChannelNameSet
\r
69 Name CDATA #REQUIRED>
\r
71 <!ELEMENT AvailableForChannels (AvailableChannel+)>
\r
72 <!ELEMENT AvailableChannel EMPTY>
\r
73 <!ATTLIST AvailableChannel
\r
74 Channel NMTOKEN #REQUIRED
\r
75 Available (false | true) "true">
\r
77 <!ELEMENT PatchBank (MIDICommands?, (UsesPatchNameList | PatchNameList))>
\r
80 ROM (false | true) "false">
\r
82 <!ELEMENT UsesPatchNameList EMPTY>
\r
83 <!ATTLIST UsesPatchNameList
\r
84 Name CDATA #REQUIRED>
\r
86 <!ELEMENT PatchNameList (Patch*)>
\r
87 <!ATTLIST PatchNameList
\r
88 Name CDATA #IMPLIED>
\r
90 <!ELEMENT Patch (PatchMIDICommands?, ChannelNameSetAssignments?, %noteorctl_listorref; ) >
\r
92 Number CDATA #REQUIRED
\r
93 Name CDATA #REQUIRED
\r
94 ProgramChange NMTOKEN #IMPLIED>
\r
96 <!ELEMENT UsesNoteNameList EMPTY>
\r
97 <!ATTLIST UsesNoteNameList
\r
98 Name CDATA #REQUIRED>
\r
100 <!ELEMENT NoteNameList (NoteGroup | Note)+>
\r
101 <!ATTLIST NoteNameList
\r
102 Name CDATA #IMPLIED>
\r
104 <!ELEMENT NoteGroup (Note*)>
\r
105 <!ATTLIST NoteGroup
\r
106 Name CDATA #IMPLIED>
\r
108 <!ELEMENT Note EMPTY>
\r
110 Number NMTOKEN #REQUIRED
\r
111 Name CDATA #REQUIRED>
\r
113 <!ELEMENT UsesControlNameList EMPTY>
\r
114 <!ATTLIST UsesControlNameList
\r
115 Name CDATA #REQUIRED>
\r
117 <!ELEMENT ControlNameList (Control+)>
\r
118 <!ATTLIST ControlNameList
\r
119 Name CDATA #IMPLIED>
\r
121 <!ELEMENT Control (Values?)>
\r
123 Type (7bit | 14bit | RPN | NRPN) "7bit"
\r
124 Number NMTOKEN #REQUIRED
\r
125 Name CDATA #REQUIRED>
\r
127 <!ELEMENT Values (ValueNameList | UsesValueNameList)?>
\r
129 Min NMTOKEN #REQUIRED
\r
130 Max NMTOKEN #REQUIRED
\r
131 Default NMTOKEN #IMPLIED
\r
132 Units NMTOKEN #IMPLIED
\r
133 Mapping NMTOKEN #IMPLIED>
\r
135 <!ELEMENT UsesValueNameList EMPTY>
\r
136 <!ATTLIST UsesValueNameList
\r
137 Name CDATA #REQUIRED>
\r
139 <!ELEMENT ValueNameList (Value+)>
\r
140 <!ATTLIST ValueNameList
\r
141 Name CDATA #IMPLIED>
\r
143 <!ELEMENT Value EMPTY>
\r
145 Number NMTOKEN #REQUIRED
\r
146 Name CDATA #REQUIRED>
\r
149 Include MIDI.dtd, defining elements referenced by MIDICommands
\r
151 <!ENTITY % ChannelRequired "#IMPLIED">
\r
152 <!ENTITY % MIDIDTD PUBLIC "-//MIDI Manufacturers Association//DTD MIDIEvents 1.0//EN"
\r
153 "http://www.midi.org/dtds/MIDIEvents10.dtd" >
\r
156 <!ELEMENT MIDICommands (MIDIDelay | %MIDIChannelMessage; | SysEx)+ >
\r
157 <!ELEMENT PatchMIDICommands (MIDIDelay | %MIDIChannelMessage; )+ >
\r
159 <!ELEMENT MIDIDelay EMPTY>
\r
160 <!ATTLIST MIDIDelay
\r
161 Milliseconds CDATA #REQUIRED>
\r