Atlas document type definition (DTD)

I would like to get corrections for likely errors (mail to scripting@ or Aloril).

< !ELEMENT % arg "id | ent"> < !ELEMENT % idtype "#PCDATA"> < !ELEMENT % idlist "id*"> < !ELEMENT % coordtype "coords | vector | forcevector"> < !ELEMENT % rotationtype "rotation | relrotation | torquerotation"> < !ELEMENT % Xlist "intlist | floatlist | stringlist | rangelist"> < !ELEMENT % datatype "int | float | string | list | range | id | attr | ent | delete | %Xlist;">

< !ELEMENT atlas (msg*)> < !ATTLIST atlas version CDATA #IMPLIED>

< !ELEMENT msg (op*)> < !ATTLIST msg no CDATA #IMPLIED>

< !ELEMENT op (from?,to?,time?,id,arg*)> < !ATTLIST op no CDATA #IMPLIED refno CDATA #IMPLIED>

< !ELEMENT from %idtype;>

< !ELEMENT to %idtype;>

< !ELEMENT time (#PCDATA)> < !ATTLIST time s CDATA #IMPLIED sadd CDATA #IMPLIED>

< !ELEMENT id %idtype;>

< !ELEMENT ent (id?,type?,instance?,loc?,contains?,stamp?,attr*)>

< !ELEMENT type %idlist;>

< !ELEMENT instance %idlist;>

< !ELEMENT loc (id?,(%coordtype;)?,(%rotationtype;)?>

< !ELEMENT contains %idlist;>

< !ELEMENT stamp (#PCDATA)>


Aloril

< !ELEMENT attr (#PCDATA | (%datatype;)*> < !ATTLIST attr name CDATA #IMPLIED type CDATA %datatype; 'string'>

< !ELEMENT coords (#PCDATA)> < !ELEMENT vector (#PCDATA)> < !ELEMENT forcevector (#PCDATA)> < !ELEMENT rotation (#PCDATA)> < !ELEMENT relrotation (#PCDATA)> < !ELEMENT torquerotation (#PCDATA)> < !ELEMENT int (#PCDATA)> < !ELEMENT float (#PCDATA)> < !ELEMENT string (#PCDATA)> < !ELEMENT list (#PCDATA)> < !ELEMENT range (#PCDATA)> < !ELEMENT delete (#PCDATA)> < !ELEMENT intlist (#PCDATA)> < !ELEMENT floatlist (#PCDATA)> < !ELEMENT stringlist (#PCDATA)> < !ELEMENT rangelist (#PCDATA)>