Atlas document type definition (DTD)

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

<!-- Models -->

<!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;">

<!-- Tags -->

<!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)>

<!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)>

    

Aloril
Last modified: Mon Jul 5 18:35:11 EEST 1999