Java Desktop System Configuration Manager Release 1.1 Developer Guide

Appendix C The Template DTD

<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT apt:template (resImport*, category)>
<!ATTLIST apt:template
    xmlns:apt CDATA #FIXED "http://www.sun.com/jds/apoc/2004/template"
    xmlns:oor CDATA #FIXED "http://openoffice.org/2001/registry"
    xmlns:xs  CDATA #FIXED "http://www.w3.org/2001/XMLSchema"
    xmlns:xsi CDATA #FIXED "http://www.w3.org/2001/XMLSchema-instance"
>
<!ELEMENT resImport EMPTY>
<!ATTLIST resImport
    apt:packagePath NMTOKEN #REQUIRED
>

<!ELEMENT category (category | page)>
<!ATTLIST category
    apt:name ID #REQUIRED
    apt:scope (user | host | global) #IMPLIED
    apt:label NMTOKEN #IMPLIED
    apt:inlineHelp NMTOKEN #IMPLIED
>

<!ELEMENT page ((section | set)+, xmlHandler*)>
<!ATTLIST page
    apt:name ID #REQUIRED
    apt:scope (user | host | global) #IMPLIED
    apt:label NMTOKEN #IMPLIED
    apt:inlineHelp NMTOKEN #IMPLIED
    apt:onlineHelp CDATA #IMPLIED
>

<!ELEMENT section (property+)>
<!ATTLIST section
    apt:name ID #REQUIRED
    apt:scope (user | host | global) #IMPLIED
    apt:label NMTOKEN #IMPLIED
>

<!ELEMENT set (page)> 
<!ATTLIST set
    apt:name ID #REQUIRED
    apt:scope (user | host | global) #IMPLIED
    apt:label NMTOKEN #IMPLIED
    apt:labelPopup NMTOKEN #IMPLIED
    apt:dataPath CDATA #REQUIRED
    apt:elementNamePath CDATA #IMPLIED
>

<!ELEMENT property (constraints?, value*, visual)>
<!ATTLIST property
    apt:name ID #REQUIRED
    apt:scope (user | host | global) #IMPLIED
    apt:label NMTOKEN #IMPLIED
    apt:inlineHelp NMTOKEN #IMPLIED
    apt:dataPath CDATA #REQUIRED
    oor:type (xs:boolean | xs:short | xs:int | xs:long | xs:double |
              xs:string | xs:hexBinary | oor:any | oor:boolean-list | 
              oor:short-list | oor:int-list | oor:long-list | oor:double-list | 
              oor:string-list | oor:hexBinary-list) #IMPLIED
    apt:storeDefault (true | false) #IMPLIED
    apt:xmlHandler IDREF #IMPLIED
    apt:extendsProperty CDATA #IMPLIED
>

<!ELEMENT visual (checkBox | chooser)?>
<!ATTLIST visual
    apt:type (textField | password | textArea | radioButtons | comboBox | 
              stringList | colorSelector | hidden) #IMPLIED
>

<!ELEMENT  checkBox EMPTY>
<!ATTLIST checkBox
    apt:labelPost NMTOKEN #IMPLIED
>

<!ELEMENT  chooser EMPTY>
<!ATTLIST chooser
    apt:labelPopup NMTOKEN #IMPLIED
    apt:listDataPath CDATA #IMPLIED
>

<!ELEMENT value (#PCDATA)>
<!ATTLIST value
    xsi:nil (true | false) #IMPLIED
    oor:separator CDATA #IMPLIED
>

<!ELEMENT constraints (enumeration*, length?, minLength?, maxLength?, minInclusive?, 
                       maxInclusive?, minExclusive?, maxExclusive?)>

<!ELEMENT enumeration EMPTY>
<!ATTLIST enumeration
    oor:value CDATA #REQUIRED
    apt:label NMTOKEN #IMPLIED
>

<!ELEMENT length EMPTY>
<!ATTLIST length oor:value CDATA #REQUIRED
>
<!ELEMENT minLength EMPTY>
<!ATTLIST minLength oor:value CDATA #REQUIRED
>
<!ELEMENT maxLength EMPTY>
<!ATTLIST maxLength oor:value CDATA #REQUIRED
>
<!ELEMENT minInclusive EMPTY>
<!ATTLIST minInclusive oor:value CDATA #REQUIRED
>
<!ELEMENT maxInclusive EMPTY>
<!ATTLIST maxInclusive oor:value CDATA #REQUIRED
>
<!ELEMENT minExclusive EMPTY>
<!ATTLIST minExclusive oor:value CDATA #REQUIRED
>
<!ELEMENT maxExclusive EMPTY>
<!ATTLIST maxExclusive oor:value CDATA #REQUIRED
>
<!ELEMENT xmlHandler (event+, action+)>
<!ATTLIST xmlHandler apt:name ID #REQUIRED>

<!ELEMENT event EMPTY>
<!ATTLIST event apt:type (onChange) #IMPLIED>

<!ELEMENT action (choose|command)+>

<!ELEMENT choose (when+, otherwise?)>

<!ELEMENT when (command+)>
<!ATTLIST when apt:test CDATA #REQUIRED>

<!ELEMENT otherwise (command+)>
<!ELEMENT command (#PCDATA)>