<!--****************************************************************************
*
* General Tags.
*
*****************************************************************************-->
 
<!ELEMENT strategy (include | compilationUnit | classExtension | xmlFile | file | page)*>
 
<!ELEMENT include EMPTY>
<!ATTLIST include
          file CDATA #REQUIRED>
 
<!--****************************************************************************
*
* Realizable Tags.
*
*****************************************************************************-->
 
<!ELEMENT compilationUnit (import | class | interface | if | for)*>
<!ATTLIST compilationUnit
          package CDATA #REQUIRED
          name CDATA #REQUIRED
          isPrimary (false | true) "false">
 
<!ELEMENT classExtension (import | javadoc | initializer | field | constructor | method | class | interface | if | for)*>
<!ATTLIST classExtension
          class CDATA #REQUIRED>
 
<!ELEMENT import EMPTY>
<!ATTLIST import
          name CDATA #REQUIRED>
 
<!ELEMENT class (javadoc | modifier | implements | initializer | field | constructor | method | class | interface | if | for)*>
<!ATTLIST class
          modifiers CDATA ""
          name CDATA #REQUIRED
          extends CDATA ""
          delegateTo CDATA ""
          stubStyle (returnDefault | unsupportedOperation) "">
 
<!ELEMENT interface (javadoc | modifier | field | method | class | interface | if | for)*>
<!ATTLIST interface
          modifiers CDATA ""
          name CDATA #REQUIRED
          extends CDATA "">
 
<!ELEMENT modifiers EMPTY>
<!ATTLIST modifiers
          modifiers CDATA #REQUIRED>
 
<!ELEMENT implements EMPTY>
<!ATTLIST implements
          name CDATA #REQUIRED
          createStubs (false | true) "false"
          delegateTo CDATA ""
          stubStyle (returnDefault | unsupportedOperation) "returnDefault">
 
<!ELEMENT initializer (#PCDATA | javadoc | modifier | if | for)*>
<!ATTLIST initializer
          modifiers CDATA "">
 
<!ELEMENT field (javadoc | modifier | if | for)*>
<!ATTLIST field
          modifiers CDATA ""
          type CDATA #REQUIRED
          name CDATA #REQUIRED
          initializer CDATA "">
 
<!ELEMENT constructor (#PCDATA | javadoc | modifier | param | throws | if | for)*>
<!ATTLIST constructor
          modifiers CDATA ""
          basedOn CDATA "">
 
     <!--
     The "returnType" and "name" attributes are only optional if the
     "basedOn" attribute is provided.
     -->
<!ELEMENT method (#PCDATA | javadoc | modifier | param | throws | if | for)*>
<!ATTLIST method
          modifiers CDATA ""
          returnType CDATA ""
          name CDATA ""
          basedOn CDATA ""
          delegateTo CDATA ""
          stubStyle (returnDefault | unsupportedOperation) "returnDefault">
 
<!ELEMENT param EMPTY>
<!ATTLIST param
          modifiers CDATA ""
          type CDATA #REQUIRED
          name CDATA #REQUIRED>
 
<!ELEMENT javadoc (#PCDATA | tag | if | for)*>
 
     <!--
     When the "tag" tag appears as a child of a "javadoc" tag, it cannot have
     any children. When it appears as a child of either an "xmlFile" or
     "deploymentDescriptor" tag, it cannot have a "contents" attribute.
     -->
<!ELEMENT tag (attribute | tag | if | for)*>
<!ATTLIST tag
          name CDATA #REQUIRED
          contents CDATA "">
 
<!ELEMENT xmlFile (tag | if | for)*>
<!ATTLIST xmlFile
          directory CDATA ""
          package CDATA ""
          name CDATA #REQUIRED
          docType CDATA ""
          isPrimary (false | true) "false">
 
<!ELEMENT deploymentDescriptor (tag | if | for)*>
<!ATTLIST deploymentDescriptor
          type (web | ejb | client | application) #REQUIRED
          isPrimary (false | true) "false">
 
<!ELEMENT attribute EMPTY>
<!ATTLIST attribute
          name CDATA #REQUIRED
          value CDATA #REQUIRED
          isKey (false | true) "false"
          replace (false | true) "false">
 
<!ELEMENT file (#PCDATA | if | for)*>
<!ATTLIST file
          directory CDATA ""
          package CDATA ""
          name CDATA #REQUIRED
          isPrimary (false | true) "false"
          replace (false | true) "false">
 
     <!--
     The children of the "if" tag are limited to being valid children of the
     parent of the "if" tag.
     -->
<!ELEMENT if ANY>
<!ATTLIST if
          condition CDATA #REQUIRED>
 
     <!--
     The children of the "for" tag are limited to being valid children of the
     parent of the "for" tag.
     -->
<!ELEMENT for ANY>
<!ATTLIST for
          variable CDATA #REQUIRED
          index CDATA ""
          in CDATA #REQUIRED>
 
<!--****************************************************************************
*
* User Interface Tags.
*
*****************************************************************************-->
 
<!ELEMENT page (group | label | spacer | boolean | string | multipleChoice | sourceFolder | package | type | class | interface | list | table | subset | callOut)*>
<!ATTLIST page
          label CDATA #REQUIRED
          initialFocus CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT group (group | label | spacer | boolean | string | multipleChoice | sourceFolder | package | type | class | interface | list | table | subset | callOut)*>
<!ATTLIST group
          label CDATA ""
          numColumns CDATA "1"
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT label (group | label | spacer | boolean | string | multipleChoice | sourceFolder | package | type | class | interface | list | table | subset | callOut)*>
<!ATTLIST label
          text CDATA #REQUIRED
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT spacer EMPTY>
<!ATTLIST spacer
          displayLine (false | true) "true"
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT boolean (group | label | spacer | boolean | string | multipleChoice | sourceFolder | package | type | class | interface | list | table | subset | callOut)*>
<!ATTLIST boolean
          name CDATA #REQUIRED
          default (false | true) "false"
          label CDATA ""
          tooltip CDATA ""
          trueLabel CDATA ""
          trueTooltip CDATA ""
          falseLabel CDATA ""
          falseTooltip CDATA ""
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT string EMPTY>
<!ATTLIST string
          name CDATA #REQUIRED
          label CDATA ""
          tooltip CDATA ""
          style (any | identifier | name) "any"
          required (false | true) "false"
          default CDATA ""
          numLines CDATA "1"
          list CDATA ""
          derivedFrom CDATA ""
          editable (false | true) "true"
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT multipleChoice (choice, choice+)>
<!ATTLIST multipleChoice
          name CDATA #REQUIRED
          label CDATA ""
          numColumns CDATA "1"
          default CDATA "0"
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT choice (group | label | spacer | boolean | string | multipleChoice | sourceFolder | package | type | class | interface | list | table | subset | callOut)*>
<!ATTLIST choice
          name CDATA ""
          label CDATA #REQUIRED
          tooltip CDATA ""
          value CDATA ""
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT sourceFolder EMPTY>
<!ATTLIST sourceFolder
          name CDATA #REQUIRED
          label CDATA ""
          tooltip CDATA ""
          browseLabel CDATA "Browse..."
          browseTooltip CDATA ""
          browseMessage CDATA "Choose a folder:"
          required (false | true) "true"
          missingValue CDATA ""
          allowReadOnly (false | true) "false"
          mustBeEditable CDATA ""
          default CDATA ""
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT package EMPTY>
<!ATTLIST package
          name CDATA #REQUIRED
          folderLabel CDATA ""
          folderTooltip CDATA ""
          folderBrowseLabel CDATA "Browse..."
          folderBrowseTooltip CDATA ""
          folderBrowseMessage CDATA "Choose a folder:"
          packageLabel CDATA ""
          packageTooltip CDATA ""
          packageBrowseLabel CDATA "Browse..."
          packageBrowseTooltip CDATA ""
          packageBrowseMessage CDATA "Choose a package:"
          required CDATA "true"
          missingValue CDATA ""
          allowReadOnly (false | true) "false"
          mustBeEditable CDATA ""
          defaultFolder CDATA ""
          defaultPackage CDATA ""
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT type EMPTY>
<!ATTLIST type
          name CDATA #REQUIRED
          label CDATA ""
          tooltip CDATA ""
          browseLabel CDATA "Browse..."
          browseTooltip CDATA ""
          browseMessage CDATA "Choose a type:"
          required CDATA "true"
          missingValue CDATA ""
          invalidValue CDATA ""
          allowReadOnly (false | true) "false"
          mustBeEditable CDATA ""
          style (new | existing | newOrExisting) "newOrExisting"
          rootType CDATA "java.lang.Object"
          default CDATA ""
          defaultPackage CDATA ""
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT class EMPTY>
<!ATTLIST class
          name CDATA #REQUIRED
          label CDATA ""
          tooltip CDATA ""
          browseLabel CDATA "Browse..."
          browseTooltip CDATA ""
          browseMessage CDATA "Choose a type:"
          required CDATA "true"
          missingValue CDATA ""
          invalidValue CDATA ""
          allowReadOnly (false | true) "false"
          mustBeEditable CDATA ""
          style (new | existing | newOrExisting) "newOrExisting"
          rootType CDATA "java.lang.Object"
          default CDATA ""
          defaultPackage CDATA ""
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT interface EMPTY>
<!ATTLIST interface
          name CDATA #REQUIRED
          label CDATA ""
          tooltip CDATA ""
          browseLabel CDATA "Browse..."
          browseTooltip CDATA ""
          browseMessage CDATA "Choose a type:"
          required CDATA "true"
          missingValue CDATA ""
          invalidValue CDATA ""
          allowReadOnly (false | true) "false"
          mustBeEditable CDATA ""
          style (new | existing | newOrExisting) "newOrExisting"
          rootType CDATA "java.lang.Object"
          default CDATA ""
          defaultPackage CDATA ""
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT list EMPTY>
<!ATTLIST list
          name CDATA #REQUIRED
          label CDATA ""
          tooltip CDATA ""
          addLabel CDATA "Add..."
          addTooltip CDATA ""
          removeLabel CDATA "Remove"
          removeTooltip CDATA ""
          orientation (vertical | horizontal) "vertical"
          emptyAllowed (false | true) "false"
          userOrdered (false | true) "false"
          missingValue CDATA ""
          default CDATA ""
          elementType (string | package | type | class | interface) #REQUIRED
          allowReadOnly (false | true) "false"
          mustBeEditable CDATA ""
          rootType CDATA "java.lang.Object"
          style (simple | hierarchical | any | identifier | name) ""
          list CDATA ""
          editable (false | true) "true"
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT table (column+ | default*)>
<!ATTLIST table
          name CDATA #REQUIRED
          label CDATA ""
          tooltip CDATA ""
          addLabel CDATA "Add..."
          addTooltip CDATA ""
          removeLabel CDATA "Remove"
          removeTooltip CDATA ""
          orientation (vertical | horizontal) "vertical"
          emptyAllowed (false | true) "false"
          userOrdered (false | true) "true"
          missingValue CDATA ""
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT column EMPTY>
<!ATTLIST column
          name CDATA #REQUIRED
          label CDATA #REQUIRED
          default CDATA ""
          elementType CDATA #REQUIRED
          weight CDATA "1"
          allowReadOnly (false | true) "false"
          mustBeEditable CDATA ""
          rootType CDATA "java.lang.Object"
          allowPrimitive (false | true) "false"
          allowVoid (false | true) "false"
          style (any | identifier | name) "any">
 
<!ELEMENT default EMPTY>
<!ATTLIST default
          columns CDATA #REQUIRED>
 
<!ELEMENT subset EMPTY>
<!ATTLIST subset
          name CDATA #REQUIRED
          label CDATA ""
          tooltip CDATA ""
          orientation (vertical | horizontal) "vertical"
          visibility CDATA "public, package, protected, private"
          showInherited (never | user | always) "always"
          emptyAllowed (false | true) "false"
          missingValue CDATA ""
          elementType (method | field) #REQUIRED
          derivedFrom CDATA #REQUIRED
          computedBy CDATA ""
          enabledBy CDATA ""
          disabledBy CDATA "">
 
<!ELEMENT callOut EMPTY>
<!ATTLIST callOut
          name CDATA #REQUIRED
          type CDATA #REQUIRED
          handler CDATA #REQUIRED
          runOnce (false | true) "false">