MOS-X - (Media Object Server - XML). Draft 0.2, Jan 1999, Extract.
Example <?xml version="1.0"?> <!DOCTYPE mos SYSTEM "mos.dtd"> <mos mos-id="bnz300.newscenter.com" ncs-id="avidnews_a.newcenter.com"> <ro-item-replace> <ro ro-id="96857485">SHOW.5P.RUNDOWN</ro> <item> <story.id>4D47340C:0031AD0B:DEB24200</story.id> <item.id>0</item.id> <item.slug>WX ROUNDUP</item.slug> <obj.id>M000242</obj.id> </item> <item> <story.id>4883A5D1:0049B724:8360EA20</story.id> <item.id>0</item.id> <item.slug>BROOKINGS FLOOD:SOT</item.slug> <obj.id>M000226</obj.id> </item> </ro-item-replace> </mos> MOS-X DTD <!-- MOS.DTD version 0.1 --> <!-- MOS Messages - One message type per message --> <!ELEMENT mos (mos-obj | ack-obj | req-all-obj | ro-create | ro-replace | ro-delete | ro-item-delete | ro-item-insert | ro-item-append | ro-item-replace | ro-item-swap | ro-story-delete | ro-story-insert | ro-story-replace | ro-story-swap | ro-req-crc | ro-crc | ro-item-stat | ro-status | ro-ready-to-air | ack-ro | ro-req | ro-list | heartbeat | req-mach-info | list-mach-info | ack-gen)> <!-- Object Message --> <!ELEMENT mos-obj (obj)> <!-- Object information --> <!ELEMENT ack-obj (obj.id, obj.slug?, obj.rev, status, error?)> <!-- Acknowledge Object --> <!ELEMENT req-all-obj EMPTY)> <!-- Request all Objects --> <!-- Running Order Messages --> <!ELEMENT ro-create (ro, item*)> <!-- Create RO --> <!ELEMENT ro-replace (ro, item*)> <!-- Replace RO --> <!ELEMENT ro-delete (ro)> <!-- Delete RO --> <!ELEMENT ro-item-delete (ro, item+)> <!-- Delete RO Items --> <!ELEMENT ro-item-insert (ro, item, item+)> <!-- Insert RO Items --> <!ELEMENT ro-item-append (ro, item+)> <!-- Append RO Items --> <!ELEMENT ro-item-replace (ro, item, item+)> <!-- Replace RO Item --> <!ELEMENT ro-item-swap (ro, item, item)> <!-- Swap RO Items --> <!ELEMENT ro-story-delete (ro, story.id+)> <!-- Delete RO Stories --> <!ELEMENT ro-story-insert (ro, story.id, item+)> <!-- Insert RO Stories --> <!ELEMENT ro-story-replace (ro, story.id, item+)> <!-- Replace RO Stories --> <!ELEMENT ro-story-swap (ro, story.id, story.id)> <!-- Swap RO Stories --> <!ELEMENT ack-ro (ro, status, item-error*)> <!-- Acknowlege RO --> <!ELEMENT ro-req-crc (ro)> <!-- Request RO CRC --> <!ELEMENT ro-crc (ro, crc)> <!-- RO CRC --> <!ELEMENT ro-item-stat (ro, item, play-status, time?)> <!-- RO Item Status --> <!ELEMENT ro-status (ro, play-status, time?)> <!-- RO Status --> <!ELEMENT ro-ready-to-air (ro, ro.air)> <!-- RO Air Ready Status --> <!ELEMENT ro-req (ro)> <!-- Request RO --> <!ELEMENT ro-list (ro, item+)> <!-- List RO --> <!-- Other Messages--> <!ELEMENT heartbeat (time?)> <!-- Heartbeat - I'm alive --> <!ELEMENT req-mach-info EMPTY> <!-- Request Machine Information --> <!ELEMENT list-mach-info (mach, time?)> <!-- List Machine Information --> <!ELEMENT ack-gen (status, error?)> <!-- General ACK/NACK Response --> <!-- Media Object --> <!ELEMENT obj (obj.id, obj.slug, obj.type, obj.tb, obj.rev, obj.dur, obj.ed-start?, obj.ed-dur?, obj.status, obj.air, obj.created-by, obj.created, obj.changed-by, obj.changed, obj.metadata)> <!-- Media Object Elements --> <!ELEMENT obj.id (#PCDATA)> <!-- 128 characters max --> <!ELEMENT obj.slug (#PCDATA)> <!-- 128 characters max --> <!ELEMENT obj.type (#PCDATA)> <!-- STILL | AUDIO | VIDEO --> <!ELEMENT obj.tb (#PCDATA)> <!-- 0xFFFFFFFF max --> <!ELEMENT obj.rev (#PCDATA)> <!-- 1 - 999 --> <!ELEMENT obj.dur (#PCDATA)> <!-- 0xFFFFFFFF max --> <!ELEMENT obj.ed-start (#PCDATA)> <!-- 0xFFFFFFFF max --> <!ELEMENT obj.ed-dur (#PCDATA)> <!-- 0xFFFFFFFF max --> <!ELEMENT obj.status (#PCDATA)> <!-- NEW | UPDATED | MOVED | BUSY | DELETED --> <!ELEMENT obj.air (#PCDATA)> <!-- READY | NOT READY --> <!ELEMENT obj.created-by (#PCDATA)> <!-- 128 characters max --> <!ELEMENT obj.created (#PCDATA)> <!-- YYYY-MM-DDThh:mm:ss --> <!ELEMENT obj.changed-by (#PCDATA)> <!-- 128 characters max --> <!ELEMENT obj.changed (#PCDATA)> <!-- YYYY-MM-DDThh:mm:ss --> <!ELEMENT obj.metadata (p*)> <!-- unlimited length --> <!ELEMENT obj.trigger (#PCDATA)> <!-- MANUAL | TIMED | CHAINED --> <!ELEMENT obj.macro-in (#PCDATA)> <!-- 128 characters max --> <!ELEMENT obj.macro-out (#PCDATA)> <!-- 128 characters max --> <!-- Running Order Elements --> <!ELEMENT ro (#PCDATA)> <!-- 128 characters max --> <!ELEMENT ro.air (#PCDATA)> <!-- READY | NOT READY --> <!-- Story Item elements defined for RO messages --> <!ELEMENT item (story.id, item.id, item.slug?, obj.id, obj.ed-start?, obj.ed-dur?, obj.trigger?, obj.macro-in?, obj.macro-out?)> <!ELEMENT item-error (item, error)> <!-- Story/Item Elements --> <!ELEMENT story.id (#PCDATA)> <!-- 128 characters max --> <!ELEMENT item.id (#PCDATA)> <!-- 128 characters max --> <!ELEMENT item.slug (#PCDATA)> <!-- 128 characters max --> <!-- Machine Info --> <!ELEMENT mach (mach.id, mach.manufac, mach.model?, mach.hw-rev?, mach.sw-rev?, mach.dom?, mach.sn?, mach.up-time?, mach.mos-rev)> <!-- Machine Info Elements --> <!ELEMENT mach.manufac (#PCDATA)> <!-- 128 characters max --> <!ELEMENT mach.model (#PCDATA)> <!-- 128 characters max --> <!ELEMENT mach.hw-rev (#PCDATA)> <!-- 128 characters max --> <!ELEMENT mach.sw-rev (#PCDATA)> <!-- 128 characters max --> <!ELEMENT mach.dom (#PCDATA)> <!-- YYYY-MM-DDThh:mm:ss --> <!ELEMENT mach.sn (#PCDATA)> <!-- 128 characters max --> <!ELEMENT mach.id (#PCDATA)> <!-- 128 characters max --> <!ELEMENT mach.up-time (#PCDATA)> <!-- YYYY-MM-DDThh:mm:ss --> <!ELEMENT mach.mos-rev (#PCDATA)> <!-- 128 characters max --> <!-- Metadata Text Elements --> <!ELEMENT p (#PCDATA | em | tab )*> <!-- paragraph --> <!ELEMENT em (#PCDATA)> <!-- emphasized text --> <!ELEMENT tab EMPTY> <!-- horizontal tab --> <!-- Miscellaneous Elements --> <!ELEMENT crc (#PCDATA)> <!-- 0xFFFFFFFF max --> <!ELEMENT error (#PCDATA)> <!-- 128 characters max --> <!ELEMENT status (#PCDATA)> <!-- ACK | NACK --> <!ELEMENT play-status (#PCDATA)> <!-- READY | PLAY | STOP | NOT READY | NCS CTRL | MANUAL CTRL --> <!ELEMENT time (#PCDATA)> <!-- YYYY-MM-DDThh:mm:ss --> <!-- Attributes --> <!ATTLIST mos mos-id CDATA #REQUIRED ncs-id CDATA #REQUIRED> <!ATTLIST obj.metadata xml:space (default | preserve) 'preserve'> <!ATTLIST ro ro-id CDATA #REQUIRED> <!-- 128 characters max --> <!-- CHANGE HISTORY --> [Note: See the main section, MOS-X (Media Object Server - XML).]