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
>
 
loading table of contents...