As with any XML file, the portal manifest uses a corresponding Document Type Definition (DTD) to specify the permissible elements in the portal manifest XML file. The following is the DTD for the portal manifest XML file:
<!-- ==================================================================== portal_manifest_1.0.dtd - document type for Portal Manifests Version: $Id$ ==================================================================== --> <!ELEMENT portal-manifest (gear-definitions? | color-palettes? | styles? | page-templates? | layout-templates? | gear-title-templates?) > <!ATTLIST portal-manifest name CDATA #IMPLIED version CDATA #IMPLIED author CDATA #IMPLIED > <!ELEMENT gear-definitions (gear-definition+)> <!ELEMENT color-palettes (color-palette+)> <!ELEMENT styles (style+)> <!ELEMENT page-templates (page-template+)> <!ELEMENT layout-templates (layout-template+)> <!ELEMENT gear-title-templates (gear-title-template+)> <!ELEMENT gear-definition (description?, localized-names?, localized-descriptions?, servlet-context, images?, dimensions, gear-modes, rendering?, caching?, error-handling?, instance-parameters?, user-parameters?, alerts?, gear-roles?) > <!ATTLIST gear-definition name CDATA #REQUIRED version CDATA #REQUIRED author CDATA #REQUIRED > <!ELEMENT description (#PCDATA)> <!ELEMENT localized-names (localized-name+)> <!ELEMENT localized-name (#PCDATA)> <!ATTLIST localized-name locale CDATA #REQUIRED> <!ELEMENT localized-descriptions (localized-description+)> <!ELEMENT localized-description (#PCDATA)> <!ATTLIST localized-description locale CDATA #REQUIRED> <!ELEMENT servlet-context (#PCDATA)> <!ELEMENT images (image+)> <!ELEMENT image (url | alt-text?)> <!ATTLIST image type (small | large | background) #REQUIRED > <!ELEMENT url (#PCDATA)> <!ATTLIST url type (template | pretemplate | posttemplate) #IMPLIED > <!ELEMENT alt-text (#PCDATA)> <!ELEMENT dimensions (dimension+)> <!-- Expected values for a dimension in Portal Application Framework 1.0: Gear Height: short | tall | nopreference Region Height: short | tall Gear Width: wide | narrow | nopreference Region Width: wide | narrow --> <!ELEMENT dimension (#PCDATA)> <!ATTLIST dimension name (height | width) #REQUIRED > <!ELEMENT rendering (render-asynchronously, timeout?)> <!ELEMENT render-asynchronously EMPTY> <!ATTLIST render-asynchronously value (true | false) 'true' > <!ELEMENT timeout EMPTY> <!ATTLIST timeout value CDATA #REQUIRED > <!ELEMENT caching (cache-output | (timeout, cache-key?))> <!ELEMENT cache-key (property+)> <!ELEMENT property EMPTY> <!ATTLIST property name CDATA #REQUIRED > <!ELEMENT cache-output EMPTY> <!ATTLIST cache-output value (true | false) 'true' > <!ELEMENT error-handling (intercept-errors | cover-errors-with-cache)> <!ELEMENT intercept-errors EMPTY> <!ATTLIST intercept-errors value (true | false) 'true' > <!ELEMENT cover-errors-with-cache EMPTY> <!ATTLIST cover-errors-with-cache value (true | false) 'true' > <!ELEMENT gear-modes (gear-mode+)> <!ELEMENT gear-mode (display-modes)> <!ATTLIST gear-mode name (content | userConfig | instanceConfig | initialConfig | installConfig | help | about | preview) #REQUIRED > <!ELEMENT gear-roles (gear-role+)> <!ELEMENT gear-role (#PCDATA)> <!ELEMENT display-modes (display-mode+)> <!ELEMENT display-mode (device-output+)> <!ATTLIST display-mode name (shared | full | popup) #REQUIRED > <!ELEMENT device-output (#PCDATA)> <!ATTLIST device-output name (html | wml | chtml) 'html' > <!ELEMENT instance-parameters (parameter+)> <!ELEMENT user-parameters (parameter+)> <!ELEMENT parameter (default-value?, description?)> <!ATTLIST parameter name CDATA #REQUIRED > <!ELEMENT alerts (alert-message+)> <!ELEMENT alert-message (message-type?, default-value?, resource-bundle?)> <!ATTLIST alert-message name CDATA #REQUIRED > <!ELEMENT message-type (#PCDATA)> <!ELEMENT resource-bundle (#PCDATA)> <!ELEMENT default-value (#PCDATA)> <!ELEMENT color-palette (description, servlet-context, images?, entity+)> <!ATTLIST color-palette name CDATA #REQUIRED version CDATA #IMPLIED author CDATA #IMPLIED > <!ELEMENT entity (colors? | images?)> <!ATTLIST entity type (page-body | gear-body | gear-title | highlight) #REQUIRED > <!ELEMENT colors (color+)> <!ELEMENT color (#PCDATA)> <!ATTLIST color type (background | text | link | action-link | visited-link) #REQUIRED > <!ELEMENT style (description?, servlet-context, cascading-style-sheet)> <!ATTLIST style name CDATA #REQUIRED version CDATA #IMPLIED author CDATA #IMPLIED > <!ELEMENT cascading-style-sheet (#PCDATA)> <!ELEMENT page-template (description?, servlet-context, images?, display-modes)> <!ATTLIST page-template name CDATA #REQUIRED version CDATA #IMPLIED author CDATA #IMPLIED > <!ELEMENT layout-template (description?, servlet-context, images?, display-modes, regions)> <!ATTLIST layout-template name CDATA #REQUIRED version CDATA #IMPLIED author CDATA #IMPLIED > <!ELEMENT regions (region+)> <!ELEMENT region (dimensions+)> <!ATTLIST region name CDATA #REQUIRED > <!ELEMENT gear-title-template (description?, servlet-context, images?, gear-title-template-modes?)> <!ATTLIST gear-title-template name CDATA #REQUIRED version CDATA #IMPLIED author CDATA #IMPLIED > <!ELEMENT gear-title-template-modes (gear-title-template-mode+)> <!ELEMENT gear-title-template-mode (display-modes)> <!ATTLIST gear-title-template-mode name (preTemplate | template | postTemplate) #REQUIRED >