Skemadefinition for en indholdsfil for et sammensat snydeark. Et sammensat snydeark består af et sæt opgaver organiseret i opgavegrupper. Hver opgave kan være et enkelt snydeark eller en brugerleveret opgavetype.
<!ELEMENT compositeCheatsheet (taskGroup | task)>
<!ATTLIST compositeCheatsheet
name CDATA #REQUIRED>
Rodelementet for et sammensat snydeark
<!ELEMENT taskGroup ((task | taskGroup) , intro? , onCompletion? , dependency*)>
<!ATTLIST taskGroup
kind CDATA "set"
name CDATA #REQUIRED
id CDATA #IMPLIED
skip (true | false) "false">
En opgavegruppe repræsenterer en samling af beslægtede opgaver. Hvis typen er "choice", skal kun én af de underordnede opgaver afsluttes. Hvis typen er "set" eller "sequence", skal alle underordnede afsluttes.
<!ELEMENT task (intro? , onCompletion? , param* , dependency*)>
<!ATTLIST task
kind CDATA #REQUIRED
name CDATA #REQUIRED
id CDATA #IMPLIED
skip (true | false) "false">
En bladopgave i et sammensat snydeark. En opgave har ingen underordnede, men den har en opgaveeditor, der vises i nederste højre delvindue i snydearkets oversigt. Opgavetypen bestemmer, hvilken opgaveeditor der åbnes, opgavetypen "cheatsheet" repræsenterer en enkelt snydeark. Andre opgavetyper kan blive leveret.
<!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED>
En parameter til en opgave i et sammensat snydeark. Hver parameter har et navn og en værdi, som begge er strenge. En opgave kan have et vilkårligt antal parametre. To parametre til en enkelt opgave deler måske ikke samme navn.
<!ELEMENT intro (#PCDATA)>
Indeholder den tekst, der vises, før denne opgave er startet. Kan indeholde tekstformatering.
<!ELEMENT onCompletion (#PCDATA)>
Indeholder den tekst, der vises i delvinduet for afslutning for denne opgave. Kan indeholde tekstformatering.
<!ELEMENT dependency EMPTY>
<!ATTLIST dependency
task CDATA #REQUIRED>
Opretter en afhængighed mellem to opgaver eller underopgaver.