JML document type definition

    <!ELEMENT jml (pattern|patternlist)>
    <!ATTLIST jml
              version  CDATA   "1.0">

    <!ELEMENT pattern (title?,prop*,setup,symmetry+,event+)>

    <!ELEMENT title (#PCDATA)>

    <!ELEMENT prop EMPTY>
    <!ATTLIST prop
              type     CDATA   "ball"
              mod      CDATA   #IMPLIED>

    <!ELEMENT setup EMPTY>
    <!ATTLIST setup
              jugglers CDATA   "1"
              paths    CDATA   #REQUIRED
              props    CDATA   #IMPLIED>

    <!ELEMENT symmetry EMPTY>
    <!ATTLIST symmetry
              type     CDATA   #REQUIRED
              jperm    CDATA   #IMPLIED
              pperm    CDATA   #REQUIRED
              delay    CDATA   #IMPLIED>

    <!ELEMENT event (throw|catch|softcatch|holding)*>
    <!ATTLIST event
              x        CDATA   #REQUIRED
              y        CDATA   "0.0"
              z        CDATA   "0.0"
              t        CDATA   #REQUIRED
              hand     CDATA   #REQUIRED>

    <!ELEMENT throw EMPTY>
    <!ATTLIST throw
              path     CDATA   #REQUIRED
              type     CDATA   "toss"
              mod      CDATA   #IMPLIED>

    <!ELEMENT catch EMPTY>
    <!ATTLIST catch
              path     CDATA   #REQUIRED>

    <!ELEMENT softcatch EMPTY>
    <!ATTLIST softcatch
              path     CDATA   #REQUIRED>

    <!ELEMENT holding EMPTY>
    <!ATTLIST holding
              path     CDATA   #REQUIRED>

    <!ELEMENT position EMPTY>
    <!ATTLIST position
              x        CDATA   #REQUIRED
              y        CDATA   #REQUIRED
              z        CDATA   "100.0"
              t        CDATA   #REQUIRED
              angle    CDATA   "0.0"
              juggler  CDATA   "1">

    <!ELEMENT patternlist (title?,line*)>

    <!ELEMENT line EMPTY>
    <!ATTLIST line
              display    CDATA   #REQUIRED
              animprefs  CDATA   #IMPLIED
              notation   CDATA   #IMPLIED
              pattern    CDATA   #IMPLIED>