Difference between revisions of "Data File DTD"

From HLKitWiki
Jump to: navigation, search
(Created page with '{{context|Kit Reference|Data File Reference}} This is the XML DTD for Hero Lab data files (i.e. files ending in .dat). <pre><?xml version="1.0" standalone="yes"?> <!DOCTYPE doc...')
 
 
Line 1: Line 1:
 
{{context|Kit Reference|Data File Reference}}
 
{{context|Kit Reference|Data File Reference}}
  
This is the XML DTD for Hero Lab data files (i.e. files ending in .dat).
+
This is the XML DTD for Hero Lab data files (files ending in .dat) and user files (files ending in .user).
  
 
<pre><?xml version="1.0" standalone="yes"?>
 
<pre><?xml version="1.0" standalone="yes"?>

Latest revision as of 15:32, 23 June 2010

Context: HL KitKit Reference … Data File Reference 

This is the XML DTD for Hero Lab data files (files ending in .dat) and user files (files ending in .user).

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE document [
<!ELEMENT document (procedure*, thing*, portal*, template*, layout*, form*, panel*, sheet*, dossier*, hidden*, preclude*, editthing*, string*, faq*)>
<!ATTLIST document signature CDATA #FIXED "Hero Lab Data">

<!ELEMENT procedure (#PCDATA)>
<!ATTLIST procedure id CDATA #REQUIRED>
<!ATTLIST procedure context CDATA #IMPLIED "unknown">
<!ATTLIST procedure scripttype CDATA #IMPLIED "unknown">

<!ELEMENT thing (comment?, fieldval*, arrayval*, usesource*, tag*, bootstrap*, containerreq?, holdlimit?, gear?, link*, eval*, evalrule*, pickreq*, exprreq*, prereq*, child?, minion?)>
<!ATTLIST thing id CDATA #REQUIRED>
<!ATTLIST thing name CDATA #REQUIRED>
<!ATTLIST thing description CDATA #IMPLIED>
<!ATTLIST thing compset CDATA #REQUIRED>
<!ATTLIST thing summary CDATA #IMPLIED>
<!ATTLIST thing maxlimit CDATA #IMPLIED "0">
<!ATTLIST thing buytemplate CDATA #IMPLIED>
<!ATTLIST thing xactspecial CDATA #IMPLIED "0">
<!ATTLIST thing panellink CDATA #IMPLIED>
<!ATTLIST thing replaces CDATA #IMPLIED>
<!ATTLIST thing lotsize CDATA #IMPLIED "1">
<!ATTLIST thing stacking (solo | new | merge | never) "solo">
<!ATTLIST thing uniqueness (none | unique | useronce) "none">
<!ATTLIST thing holdable (yes | no) "yes">
<!ATTLIST thing isshowonly (yes | no) "no">

<!ELEMENT comment (#PCDATA)>

<!ELEMENT fieldval EMPTY>
<!ATTLIST fieldval field CDATA #REQUIRED>
<!ATTLIST fieldval value CDATA #REQUIRED>

<!ELEMENT arrayval EMPTY>
<!ATTLIST arrayval field CDATA #REQUIRED>
<!ATTLIST arrayval index CDATA #REQUIRED>
<!ATTLIST arrayval column CDATA #IMPLIED "0">
<!ATTLIST arrayval value CDATA #REQUIRED>

<!ELEMENT usesource EMPTY>
<!ATTLIST usesource source CDATA #IMPLIED>
<!ATTLIST usesource id CDATA #IMPLIED>
<!ATTLIST usesource parent CDATA #IMPLIED>
<!ATTLIST usesource name CDATA #IMPLIED>

<!ELEMENT tag EMPTY>
<!ATTLIST tag group CDATA #REQUIRED>
<!ATTLIST tag tag CDATA #REQUIRED>
<!ATTLIST tag name CDATA #IMPLIED>
<!ATTLIST tag abbrev CDATA #IMPLIED>

<!ELEMENT bootstrap (#PCDATA, match?, containerreq?, autotag*, assignval*)>
<!ATTLIST bootstrap thing CDATA #REQUIRED>
<!ATTLIST bootstrap index CDATA #IMPLIED "1">

<!ELEMENT match (#PCDATA)>

<!ELEMENT containerreq (#PCDATA, match?, before*, after*)>
<!ATTLIST containerreq phase CDATA #REQUIRED>
<!ATTLIST containerreq priority CDATA #REQUIRED>
<!ATTLIST containerreq name CDATA #IMPLIED>
<!ATTLIST containerreq isprimary (yes | no) "yes">

<!ELEMENT before EMPTY>
<!ATTLIST before name CDATA #REQUIRED>

<!ELEMENT after EMPTY>
<!ATTLIST after name CDATA #REQUIRED>

<!ELEMENT autotag EMPTY>
<!ATTLIST autotag group CDATA #REQUIRED>
<!ATTLIST autotag tag CDATA #REQUIRED>

<!ELEMENT assignval EMPTY>
<!ATTLIST assignval field CDATA #REQUIRED>
<!ATTLIST assignval value CDATA #REQUIRED>
<!ATTLIST assignval behavior (assign | minimum | maximum) "assign">

<!ELEMENT holdlimit (#PCDATA)>

<!ELEMENT gear (#PCDATA)>

<!ELEMENT link EMPTY>
<!ATTLIST link linkage CDATA #REQUIRED>
<!ATTLIST link thing CDATA #REQUIRED>

<!ELEMENT eval (#PCDATA, match?, before*, after*)>
<!ATTLIST eval phase CDATA #REQUIRED>
<!ATTLIST eval priority CDATA #IMPLIED "100">
<!ATTLIST eval index CDATA #IMPLIED "1">
<!ATTLIST eval runlimit CDATA #IMPLIED "0">
<!ATTLIST eval sortas CDATA #IMPLIED>
<!ATTLIST eval name CDATA #IMPLIED>
<!ATTLIST eval isprimary (yes | no) "yes">
<!ATTLIST eval iseach (yes | no) "yes">

<!ELEMENT evalrule (#PCDATA, match?, before*, after*)>
<!ATTLIST evalrule phase CDATA #REQUIRED>
<!ATTLIST evalrule priority CDATA #IMPLIED "100">
<!ATTLIST evalrule index CDATA #IMPLIED "1">
<!ATTLIST evalrule runlimit CDATA #IMPLIED "0">
<!ATTLIST evalrule sortas CDATA #IMPLIED>
<!ATTLIST evalrule name CDATA #IMPLIED>
<!ATTLIST evalrule isprimary (yes | no) "yes">
<!ATTLIST evalrule iseach (yes | no) "yes">
<!ATTLIST evalrule message CDATA #REQUIRED>
<!ATTLIST evalrule summary CDATA #IMPLIED>
<!ATTLIST evalrule severity (error | warning) "error">
<!ATTLIST evalrule reportlimit CDATA #IMPLIED "0">
<!ATTLIST evalrule issilent (yes | no) "no">

<!ELEMENT pickreq EMPTY>
<!ATTLIST pickreq thing CDATA #REQUIRED>
<!ATTLIST pickreq iserror (yes | no) "yes">
<!ATTLIST pickreq onlyonce (yes | no) "no">
<!ATTLIST pickreq issilent (yes | no) "no">
<!ATTLIST pickreq ispreclude (yes | no) "no">
<!ATTLIST pickreq ispanelhighlight (yes | no) "yes">

<!ELEMENT exprreq (#PCDATA)>
<!ATTLIST exprreq message CDATA #REQUIRED>
<!ATTLIST exprreq iserror (yes | no) "yes">
<!ATTLIST exprreq onlyonce (yes | no) "no">
<!ATTLIST exprreq issilent (yes | no) "no">
<!ATTLIST exprreq ispanelhighlight (yes | no) "yes">

<!ELEMENT prereq (match?, test?, validate?)>
<!ATTLIST prereq message CDATA #REQUIRED>
<!ATTLIST prereq iserror (yes | no) "yes">
<!ATTLIST prereq onlyonce (yes | no) "no">
<!ATTLIST prereq issilent (yes | no) "no">
<!ATTLIST prereq ispanelhighlight (yes | no) "yes">

<!ELEMENT test (#PCDATA)>

<!ELEMENT validate (#PCDATA)>

<!ELEMENT child (tag*, bootstrap*)>
<!ATTLIST child entity CDATA #REQUIRED>

<!ELEMENT minion (tag*, bootstrap*)>
<!ATTLIST minion id CDATA #REQUIRED>
<!ATTLIST minion ownmode (yes | no) "yes">
<!ATTLIST minion isinherit (yes | no) "yes">
<!ATTLIST minion livefield CDATA #IMPLIED>

<!ELEMENT portal (label?, image_field?, image_user?, image_literal?, image_reference?, incrementer?, edit?, edit_date?, checkbox?, menu_things?, menu_literal?, menu_array?, chooser_table?, action?, region?, table_fixed?, table_dynamic?, table_auto?, alliance?, separator?, output_label?, output_dots?, output_image?, output_table?, output_separator?, live?, mouseinfo?)>
<!ATTLIST portal id CDATA #REQUIRED>
<!ATTLIST portal style CDATA #REQUIRED>
<!ATTLIST portal width CDATA #IMPLIED "0">
<!ATTLIST portal height CDATA #IMPLIED "0">
<!ATTLIST portal tiptext CDATA #IMPLIED>
<!ATTLIST portal isheader (yes | no) "no">
<!ATTLIST portal showinvalid (yes | no) "no">
<!ATTLIST portal showdisabled (yes | no) "yes">

<!ELEMENT label (labeltext?)>
<!ATTLIST label text CDATA #IMPLIED>
<!ATTLIST label field CDATA #IMPLIED>
<!ATTLIST label ismultiline (yes | no) "no">
<!ATTLIST label scrollable (yes | no) "no">
<!ATTLIST label istitle (yes | no) "no">

<!ELEMENT labeltext (#PCDATA)>

<!ELEMENT image_field EMPTY>
<!ATTLIST image_field field CDATA #REQUIRED>
<!ATTLIST image_field istransparent (yes | no) "no">

<!ELEMENT image_user EMPTY>
<!ATTLIST image_user field CDATA #REQUIRED>

<!ELEMENT image_literal EMPTY>
<!ATTLIST image_literal image CDATA #REQUIRED>
<!ATTLIST image_literal isbuiltin (yes | no) "no">
<!ATTLIST image_literal istransparent (yes | no) "no">

<!ELEMENT image_reference EMPTY>
<!ATTLIST image_reference field CDATA #REQUIRED>

<!ELEMENT incrementer EMPTY>
<!ATTLIST incrementer field CDATA #REQUIRED>
<!ATTLIST incrementer interval CDATA #IMPLIED "1">

<!ELEMENT edit EMPTY>
<!ATTLIST edit field CDATA #REQUIRED>
<!ATTLIST edit maxlength CDATA #IMPLIED "0">
<!ATTLIST edit ismultiline (yes | no) "no">
<!ATTLIST edit readonly (yes | no) "no">
<!ATTLIST edit format (any | integer | float) "any">
<!ATTLIST edit signed (yes | no) "no">

<!ELEMENT edit_date EMPTY>
<!ATTLIST edit_date field CDATA #REQUIRED>
<!ATTLIST edit_date format (realdate | gamedate | realtime | gametime) "realdate">
<!ATTLIST edit_date readonly (yes | no) "no">

<!ELEMENT checkbox EMPTY>
<!ATTLIST checkbox field CDATA #REQUIRED>
<!ATTLIST checkbox message CDATA #IMPLIED>
<!ATTLIST checkbox dynamicfield CDATA #IMPLIED>
<!ATTLIST checkbox readonly (yes | no) "no">

<!ELEMENT menu_things (candidate?, change?)>
<!ATTLIST menu_things field CDATA #REQUIRED>
<!ATTLIST menu_things component CDATA #REQUIRED>
<!ATTLIST menu_things defthing CDATA #IMPLIED>
<!ATTLIST menu_things maxvisible CDATA #IMPLIED "5">
<!ATTLIST menu_things usepicks (thing | container | hero | lead | minion | actor | miniontree | no | yes) "thing">
<!ATTLIST menu_things sortset CDATA #IMPLIED "_NameSeq_">
<!ATTLIST menu_things usepicksfield CDATA #IMPLIED>
<!ATTLIST menu_things candidatefield CDATA #IMPLIED>
<!ATTLIST menu_things namefield CDATA #IMPLIED>

<!ELEMENT candidate (#PCDATA)>
<!ATTLIST candidate inheritlist (yes | no) "no">

<!ELEMENT change (#PCDATA)>

<!ELEMENT menu_literal (choice+, change?)>
<!ATTLIST menu_literal field CDATA #REQUIRED>
<!ATTLIST menu_literal maxvisible CDATA #IMPLIED "5">
<!ATTLIST menu_literal allowuservalue (yes | no) "no">

<!ELEMENT choice EMPTY>
<!ATTLIST choice display CDATA #REQUIRED>
<!ATTLIST choice value CDATA #IMPLIED>

<!ELEMENT menu_array (change?)>
<!ATTLIST menu_array field CDATA #REQUIRED>
<!ATTLIST menu_array array CDATA #REQUIRED>
<!ATTLIST menu_array maxvisible CDATA #IMPLIED "5">

<!ELEMENT chooser_table (candidate?, needtag*, denytag*, xacttag*, secondary?, existence?, autotag*, chosen, titlebar?, description?, change?)>
<!ATTLIST chooser_table component CDATA #REQUIRED>
<!ATTLIST chooser_table choosetemplate CDATA #REQUIRED>
<!ATTLIST chooser_table choosepicks (thing | container | hero | lead | minion | actor | miniontree | no | yes) "thing">
<!ATTLIST chooser_table choosesortset CDATA #IMPLIED>
<!ATTLIST chooser_table descwidth CDATA #IMPLIED "250">
<!ATTLIST chooser_table choosegaphorz CDATA #IMPLIED "0">
<!ATTLIST chooser_table choosegapvert CDATA #IMPLIED "0">
<!ATTLIST chooser_table buytemplate CDATA #IMPLIED>
<!ATTLIST chooser_table xactspecial CDATA #IMPLIED "0">
<!ATTLIST chooser_table linkage CDATA #IMPLIED>
<!ATTLIST chooser_table candidatepick CDATA #IMPLIED>
<!ATTLIST chooser_table candidatefield CDATA #IMPLIED>
<!ATTLIST chooser_table showupdate (yes | no) "no">
<!ATTLIST chooser_table prereqtarget (container | hero | parent) "container">
<!ATTLIST chooser_table selectnone (yes | no) "no">
<!ATTLIST chooser_table empty CDATA #IMPLIED>
<!ATTLIST chooser_table useagentcandidate (yes | no) "no">
<!ATTLIST chooser_table useagentlinkage (yes | no) "no">
<!ATTLIST chooser_table agentautotag CDATA #IMPLIED>

<!ELEMENT needtag EMPTY>
<!ATTLIST needtag container CDATA #REQUIRED>
<!ATTLIST needtag thing CDATA #REQUIRED>
<!ATTLIST needtag usehero (yes | no) "no">

<!ELEMENT denytag EMPTY>
<!ATTLIST denytag container CDATA #REQUIRED>
<!ATTLIST denytag thing CDATA #REQUIRED>
<!ATTLIST denytag usehero (yes | no) "no">

<!ELEMENT xacttag EMPTY>
<!ATTLIST xacttag tag CDATA #REQUIRED>

<!ELEMENT secondary (#PCDATA)>
<!ATTLIST secondary phase CDATA #IMPLIED>
<!ATTLIST secondary priority CDATA #IMPLIED>

<!ELEMENT existence (#PCDATA)>
<!ATTLIST existence phase CDATA #IMPLIED>
<!ATTLIST existence priority CDATA #IMPLIED>

<!ELEMENT chosen (#PCDATA)>

<!ELEMENT titlebar (#PCDATA)>

<!ELEMENT description (#PCDATA)>

<!ELEMENT action (trigger?)>
<!ATTLIST action action (delete | info | edit | form | trigger | gear | notes | name | load | lock | unlock | master | minion | getgear | combatstart | combatend | newturn | newpass | initchange | integrate | dashsort | initreroll) "delete">
<!ATTLIST action buttontext CDATA #IMPLIED>
<!ATTLIST action panel CDATA #IMPLIED>
<!ATTLIST action form CDATA #IMPLIED>
<!ATTLIST action field CDATA #IMPLIED>
<!ATTLIST action confirm CDATA #IMPLIED>
<!ATTLIST action minion CDATA #IMPLIED>

<!ELEMENT trigger (#PCDATA)>

<!ELEMENT region EMPTY>

<!ELEMENT table_fixed (list?, headertitle?)>
<!ATTLIST table_fixed component CDATA #REQUIRED>
<!ATTLIST table_fixed showtemplate CDATA #IMPLIED>
<!ATTLIST table_fixed showpicks (thing | container | hero | lead | minion | actor | miniontree | no | yes) "container">
<!ATTLIST table_fixed allowuserorder (yes | no) "no">
<!ATTLIST table_fixed alwaysupdate (yes | no) "no">
<!ATTLIST table_fixed scrollable (yes | no) "yes">
<!ATTLIST table_fixed headertemplate CDATA #IMPLIED>
<!ATTLIST table_fixed headerpick CDATA #IMPLIED>
<!ATTLIST table_fixed footertemplate CDATA #IMPLIED>
<!ATTLIST table_fixed showsortset CDATA #IMPLIED>
<!ATTLIST table_fixed ordercomponent CDATA #IMPLIED>
<!ATTLIST table_fixed columns CDATA #IMPLIED "1">
<!ATTLIST table_fixed showfixedlast (yes | no) "no">
<!ATTLIST table_fixed showgapx CDATA #IMPLIED "0">
<!ATTLIST table_fixed showgapy CDATA #IMPLIED "0">
<!ATTLIST table_fixed agentlist CDATA #IMPLIED>

<!ELEMENT list (#PCDATA)>

<!ELEMENT headertitle (#PCDATA)>

<!ELEMENT table_dynamic (list?, candidate?, restriction?, needtag*, denytag*, xacttag*, secondary?, existence?, autotag*, titlebar?, description?, headertitle?, additem?)>
<!ATTLIST table_dynamic component CDATA #REQUIRED>
<!ATTLIST table_dynamic showtemplate CDATA #REQUIRED>
<!ATTLIST table_dynamic choosetemplate CDATA #REQUIRED>
<!ATTLIST table_dynamic addtemplate CDATA #IMPLIED>
<!ATTLIST table_dynamic addthing CDATA #IMPLIED>
<!ATTLIST table_dynamic addpick CDATA #IMPLIED>
<!ATTLIST table_dynamic addspace CDATA #IMPLIED "2">
<!ATTLIST table_dynamic choosepicks (thing | container | hero | lead | minion | actor | miniontree | no | yes) "thing">
<!ATTLIST table_dynamic ismultiadd (yes | no) "yes">
<!ATTLIST table_dynamic showsortset CDATA #IMPLIED>
<!ATTLIST table_dynamic choosesortset CDATA #IMPLIED>
<!ATTLIST table_dynamic descwidth CDATA #IMPLIED "250">
<!ATTLIST table_dynamic showgapx CDATA #IMPLIED "0">
<!ATTLIST table_dynamic showgapy CDATA #IMPLIED "0">
<!ATTLIST table_dynamic choosegapx CDATA #IMPLIED "0">
<!ATTLIST table_dynamic choosegapy CDATA #IMPLIED "0">
<!ATTLIST table_dynamic headertemplate CDATA #IMPLIED>
<!ATTLIST table_dynamic headerpick CDATA #IMPLIED>
<!ATTLIST table_dynamic allowuserorder (yes | no) "no">
<!ATTLIST table_dynamic ordercomponent CDATA #IMPLIED>
<!ATTLIST table_dynamic alwaysupdate (yes | no) "no">
<!ATTLIST table_dynamic scrollable (yes | no) "yes">
<!ATTLIST table_dynamic showfrozenfixed (yes | no) "no">
<!ATTLIST table_dynamic buytemplate CDATA #IMPLIED>
<!ATTLIST table_dynamic selltemplate CDATA #IMPLIED>
<!ATTLIST table_dynamic xactspecial CDATA #IMPLIED "0">
<!ATTLIST table_dynamic linkage CDATA #IMPLIED>
<!ATTLIST table_dynamic allowstack (yes | no) "yes">
<!ATTLIST table_dynamic candidatepick CDATA #IMPLIED>
<!ATTLIST table_dynamic candidatefield CDATA #IMPLIED>
<!ATTLIST table_dynamic prereqtarget (container | hero | parent) "container">
<!ATTLIST table_dynamic columns CDATA #IMPLIED "1">
<!ATTLIST table_dynamic showfixedlast (yes | no) "no">
<!ATTLIST table_dynamic empty CDATA #IMPLIED>
<!ATTLIST table_dynamic agentlist CDATA #IMPLIED>
<!ATTLIST table_dynamic useagentcandidate (yes | no) "no">
<!ATTLIST table_dynamic useagentadd (yes | no) "no">
<!ATTLIST table_dynamic useagentlinkage (yes | no) "no">
<!ATTLIST table_dynamic agentautotag CDATA #IMPLIED>

<!ELEMENT restriction (#PCDATA)>

<!ELEMENT additem (#PCDATA)>

<!ELEMENT table_auto (list?, secondary?, existence?, autotag*, headertitle?, additem?)>
<!ATTLIST table_auto component CDATA #REQUIRED>
<!ATTLIST table_auto showtemplate CDATA #IMPLIED>
<!ATTLIST table_auto autothing CDATA #REQUIRED>
<!ATTLIST table_auto addtemplate CDATA #IMPLIED>
<!ATTLIST table_auto addthing CDATA #IMPLIED>
<!ATTLIST table_auto addpick CDATA #IMPLIED>
<!ATTLIST table_auto addspace CDATA #IMPLIED "2">
<!ATTLIST table_auto showgapx CDATA #IMPLIED "0">
<!ATTLIST table_auto showgapy CDATA #IMPLIED "0">
<!ATTLIST table_auto headertemplate CDATA #IMPLIED>
<!ATTLIST table_auto headerpick CDATA #IMPLIED>
<!ATTLIST table_auto allowuserorder (yes | no) "no">
<!ATTLIST table_auto alwaysupdate (yes | no) "no">
<!ATTLIST table_auto scrollable (yes | no) "yes">
<!ATTLIST table_auto showfrozenfixed (yes | no) "no">
<!ATTLIST table_auto showsortset CDATA #IMPLIED>
<!ATTLIST table_auto ordercomponent CDATA #IMPLIED>
<!ATTLIST table_auto linkage CDATA #IMPLIED>
<!ATTLIST table_auto prereqtarget (container | hero | parent) "container">
<!ATTLIST table_auto columns CDATA #IMPLIED "1">
<!ATTLIST table_auto gap CDATA #IMPLIED "0">
<!ATTLIST table_auto agentlist CDATA #IMPLIED>
<!ATTLIST table_auto useagentadd (yes | no) "no">
<!ATTLIST table_auto useagentlinkage (yes | no) "no">
<!ATTLIST table_auto agentautotag CDATA #IMPLIED>

<!ELEMENT alliance EMPTY>

<!ELEMENT separator EMPTY>
<!ATTLIST separator isvertical (yes | no) "no">

<!ELEMENT output_label (labeltext?)>
<!ATTLIST output_label text CDATA #IMPLIED>
<!ATTLIST output_label field CDATA #IMPLIED>
<!ATTLIST output_label ismultiline (yes | no) "yes">

<!ELEMENT output_dots EMPTY>

<!ELEMENT output_image EMPTY>
<!ATTLIST output_image image CDATA #IMPLIED>
<!ATTLIST output_image field CDATA #IMPLIED>
<!ATTLIST output_image istransparent (yes | no) "no">

<!ELEMENT output_table (list?, headertitle?)>
<!ATTLIST output_table component CDATA #REQUIRED>
<!ATTLIST output_table showtemplate CDATA #REQUIRED>
<!ATTLIST output_table showpicks (thing | container | hero | lead | minion | actor | miniontree | no | yes) "container">
<!ATTLIST output_table varyheight (yes | no) "no">
<!ATTLIST output_table showsortset CDATA #IMPLIED>
<!ATTLIST output_table headertemplate CDATA #IMPLIED>
<!ATTLIST output_table headerpick CDATA #IMPLIED>
<!ATTLIST output_table showgapx CDATA #IMPLIED "0">
<!ATTLIST output_table showgapy CDATA #IMPLIED "0">
<!ATTLIST output_table columns CDATA #IMPLIED "1">

<!ELEMENT output_separator EMPTY>
<!ATTLIST output_separator isvertical (yes | no) "no">

<!ELEMENT live (#PCDATA)>

<!ELEMENT mouseinfo (#PCDATA)>
<!ATTLIST mouseinfo mousepos (summary | left+above | left+center | left+below | middle+above | middle+below | right+above | right+center | right+below) "middle+above">

<!ELEMENT template (live?, portal+, position?, header?)>
<!ATTLIST template id CDATA #REQUIRED>
<!ATTLIST template name CDATA #REQUIRED>
<!ATTLIST template compset CDATA #REQUIRED>
<!ATTLIST template width CDATA #IMPLIED>
<!ATTLIST template height CDATA #IMPLIED "100">
<!ATTLIST template marginhorz CDATA #IMPLIED "0">
<!ATTLIST template marginvert CDATA #IMPLIED "0">
<!ATTLIST template istransaction (yes | no) "no">

<!ELEMENT position (#PCDATA)>

<!ELEMENT header (#PCDATA)>

<!ELEMENT layout (comment?, live?, portalref*, templateref*, position?)>
<!ATTLIST layout id CDATA #REQUIRED>
<!ATTLIST layout marginhorz CDATA #IMPLIED "0">
<!ATTLIST layout marginvert CDATA #IMPLIED "0">

<!ELEMENT portalref EMPTY>
<!ATTLIST portalref portal CDATA #REQUIRED>
<!ATTLIST portalref reference CDATA #IMPLIED>
<!ATTLIST portalref taborder CDATA #IMPLIED "0">

<!ELEMENT templateref EMPTY>
<!ATTLIST templateref template CDATA #REQUIRED>
<!ATTLIST templateref reference CDATA #IMPLIED>
<!ATTLIST templateref thing CDATA #IMPLIED>
<!ATTLIST templateref ispick (yes | no) "yes">
<!ATTLIST templateref dynamic (yes | no) "no">
<!ATTLIST templateref useagent (yes | no) "no">
<!ATTLIST templateref taborder CDATA #IMPLIED "0">

<!ELEMENT form (live?, layoutref+, position?)>
<!ATTLIST form id CDATA #REQUIRED>
<!ATTLIST form name CDATA #REQUIRED>
<!ATTLIST form order CDATA #IMPLIED "0">
<!ATTLIST form issummary (yes | no) "no">
<!ATTLIST form underlay CDATA #IMPLIED>
<!ATTLIST form defwidth CDATA #IMPLIED "300">
<!ATTLIST form defheight CDATA #IMPLIED "300">
<!ATTLIST form minwidth CDATA #IMPLIED "0">
<!ATTLIST form minheight CDATA #IMPLIED "0">
<!ATTLIST form maxwidth CDATA #IMPLIED "0">
<!ATTLIST form maxheight CDATA #IMPLIED "0">
<!ATTLIST form marginhorz CDATA #IMPLIED "0">
<!ATTLIST form marginvert CDATA #IMPLIED "0">
<!ATTLIST form agentpick CDATA #IMPLIED>
<!ATTLIST form agentlive CDATA #IMPLIED>
<!ATTLIST form agentcompset CDATA #IMPLIED>
<!ATTLIST form agentname CDATA #IMPLIED "name">

<!ELEMENT layoutref EMPTY>
<!ATTLIST layoutref layout CDATA #REQUIRED>
<!ATTLIST layoutref reference CDATA #IMPLIED>

<!ELEMENT panel (live?, layoutref+, position?)>
<!ATTLIST panel id CDATA #REQUIRED>
<!ATTLIST panel name CDATA #REQUIRED>
<!ATTLIST panel order CDATA #IMPLIED "0">
<!ATTLIST panel issummary (yes | no) "no">
<!ATTLIST panel underlay CDATA #IMPLIED>
<!ATTLIST panel defwidth CDATA #IMPLIED "300">
<!ATTLIST panel defheight CDATA #IMPLIED "300">
<!ATTLIST panel minwidth CDATA #IMPLIED "0">
<!ATTLIST panel minheight CDATA #IMPLIED "0">
<!ATTLIST panel maxwidth CDATA #IMPLIED "0">
<!ATTLIST panel maxheight CDATA #IMPLIED "0">
<!ATTLIST panel marginhorz CDATA #IMPLIED "0">
<!ATTLIST panel marginvert CDATA #IMPLIED "0">
<!ATTLIST panel agentpick CDATA #IMPLIED>
<!ATTLIST panel agentlive CDATA #IMPLIED>
<!ATTLIST panel agentcompset CDATA #IMPLIED>
<!ATTLIST panel agentname CDATA #IMPLIED "name">

<!ELEMENT sheet (live?, layoutref+, position?)>
<!ATTLIST sheet id CDATA #REQUIRED>
<!ATTLIST sheet name CDATA #REQUIRED>
<!ATTLIST sheet landscape (yes | no) "no">
<!ATTLIST sheet spillover (yes | no) "no">

<!ELEMENT dossier ANY>
<!ATTLIST dossier id CDATA #REQUIRED>
<!ATTLIST dossier name CDATA #REQUIRED>

<!ELEMENT dossier_sheet (live?, sheetref*)>
<!ATTLIST dossier_sheet grouping CDATA #REQUIRED>
<!ATTLIST dossier_sheet default (yes | no) "no">

<!ELEMENT sheetref EMPTY>
<!ATTLIST sheetref sheet CDATA #REQUIRED>

<!ELEMENT dossier_text (live?, synthesize*)>
<!ATTLIST dossier_text grouping CDATA #REQUIRED>
<!ATTLIST dossier_text styles CDATA #IMPLIED>
<!ATTLIST dossier_text default (yes | no) "no">

<!ELEMENT synthesize (#PCDATA)>

<!ELEMENT dossier_export (synthesize*)>
<!ATTLIST dossier_export filename CDATA #IMPLIED>
<!ATTLIST dossier_export location CDATA #IMPLIED>

<!ELEMENT hidden EMPTY>
<!ATTLIST hidden id CDATA #REQUIRED>
<!ATTLIST hidden type (thing) "thing">

<!ELEMENT preclude EMPTY>
<!ATTLIST preclude id CDATA #REQUIRED>
<!ATTLIST preclude source CDATA #REQUIRED>

<!ELEMENT editthing (inputthing*, prereq*)>
<!ATTLIST editthing compset CDATA #REQUIRED>
<!ATTLIST editthing name CDATA #REQUIRED>
<!ATTLIST editthing summary CDATA #REQUIRED>
<!ATTLIST editthing description CDATA #REQUIRED>
<!ATTLIST editthing prefix CDATA #IMPLIED>
<!ATTLIST editthing defunique (none | unique | useronce) "none">

<!ELEMENT inputthing (it_field?, it_tagcheck?, it_tagpick?, it_taglist?, it_bootstrap?, it_bootlist?, it_bootcustom?, it_linkage?, it_separator?)>
<!ATTLIST inputthing name CDATA #REQUIRED>
<!ATTLIST inputthing helptext CDATA #IMPLIED>

<!ELEMENT it_field EMPTY>
<!ATTLIST it_field field CDATA #REQUIRED>
<!ATTLIST it_field ismultiline (yes | no) "no">

<!ELEMENT it_tagcheck EMPTY>
<!ATTLIST it_tagcheck group CDATA #REQUIRED>
<!ATTLIST it_tagcheck tag CDATA #REQUIRED>
<!ATTLIST it_tagcheck default (yes | no) "no">

<!ELEMENT it_tagpick (extratag*)>
<!ATTLIST it_tagpick group CDATA #REQUIRED>
<!ATTLIST it_tagpick tag CDATA #REQUIRED>
<!ATTLIST it_tagpick deftag CDATA #IMPLIED>
<!ATTLIST it_tagpick require (yes | no) "no">
<!ATTLIST it_tagpick dynamic (yes | no) "no">
<!ATTLIST it_tagpick title CDATA #IMPLIED>
<!ATTLIST it_tagpick addtitle CDATA #IMPLIED>

<!ELEMENT extratag EMPTY>
<!ATTLIST extratag group CDATA #REQUIRED>
<!ATTLIST extratag tag CDATA #REQUIRED>
<!ATTLIST extratag title CDATA #IMPLIED>

<!ELEMENT it_taglist (extratag*)>
<!ATTLIST it_taglist group CDATA #REQUIRED>
<!ATTLIST it_taglist tag CDATA #REQUIRED>
<!ATTLIST it_taglist deftag CDATA #IMPLIED>
<!ATTLIST it_taglist require (yes | no) "no">
<!ATTLIST it_taglist dynamic (yes | no) "no">
<!ATTLIST it_taglist title CDATA #IMPLIED>
<!ATTLIST it_taglist addtitle CDATA #IMPLIED>

<!ELEMENT it_bootstrap (match?)>
<!ATTLIST it_bootstrap compset CDATA #REQUIRED>

<!ELEMENT it_bootlist (match?)>
<!ATTLIST it_bootlist compset CDATA #REQUIRED>

<!ELEMENT it_bootcustom (match?, inputthing*)>
<!ATTLIST it_bootcustom compset CDATA #REQUIRED>

<!ELEMENT it_linkage (match?)>
<!ATTLIST it_linkage compset CDATA #REQUIRED>
<!ATTLIST it_linkage linkage CDATA #REQUIRED>

<!ELEMENT it_separator EMPTY>

<!ELEMENT string (#PCDATA, comment?)>
<!ATTLIST string id CDATA #REQUIRED>
<!ATTLIST string text CDATA #IMPLIED>

<!ELEMENT faq (#PCDATA, comment?)>
<!ATTLIST faq id CDATA #REQUIRED>
<!ATTLIST faq order CDATA #IMPLIED "100">
<!ATTLIST faq topic CDATA #REQUIRED>
<!ATTLIST faq description CDATA #IMPLIED>

]>