<!ELEMENT jml (pattern|patternlist)> <!ATTLIST jml version CDATA "1"> <!ELEMENT pattern (title?,info?,basepattern?,prop*,setup,symmetry+,(event|position)*)> <!ELEMENT title (#PCDATA)> <!ELEMENT info (#PCDATA)> <!ATTLIST info tags CDATA #IMPLIED> <!ELEMENT basepattern (#PCDATA)> <!ATTLIST basepattern notation CDATA #REQUIRED> <!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 type CDATA "natural"> <!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?,info?,line*)> <!ELEMENT line (#PCDATA|pattern|info)*> <!ATTLIST line display CDATA #REQUIRED animprefs CDATA #IMPLIED notation CDATA #IMPLIED>