---
title: "Layout Manager Config 1.4 (obsolete)"
source: https://dev.pageseeder.com/reference/version_5/schemas/layout_config.html
last_updated: 2026-08-07T17:09:54+10:00
tokens: ~3489
---

# Layout Manager Config 1.4 (obsolete)

> **Obsolete:** This article provides information about features which have been removed in version 6.

This DTD defines and maps the components of the Layout Manager to URLs through the following file:

```text

/WEB-INF/template/default/layout/config.xml
```

An Administrator role is required to see this file through Project Files under the Dev menu in the Developer perspective. 

For additional information about the associated files, see [Layout Manager folders and files](../../folders_and_files/project_template/layout.md).

## Entities

Generic definition for boolean attribute values:

```xml

<!ENTITY % BOOLEAN          "( true | false )"   >
```

A comma-separated list of scopes ( group | server | project):

```xml

<!ENTITY % SCOPE            "CDATA"              >
```

A URI Pattern as defined in the URI Template specifications:

```xml

<!ENTITY % URI_PATTERN      "CDATA"              >
```

A string which contains dynamic tokens and is resolved dynamically.

1. \{...\} (curly brackets) indicate that the value is dynamically constructed. 


  - `@` prefixes the name config property.
  - `$` prefixes the name an HTTP parameter.
  - `#` prefixes the name an URL Pattern parameter or a variable.
2. Any other value is considered static and transmitted ‘as is’.

```xml

<!ENTITY % TOKENIX           "CDATA"             >
```

## Containers

### \<layout-config\>

The top level element for a layout configuration.


\<content-security-policy\> 


 


\<navigation\> The container for sections



\<blocks\> The container for blocks (and block sets)



\<dialogs\> The container for dialogs



\<pages\> The container for pages



@version The version of this layout configuration; must be `"1.4"`.


```xml

<!ELEMENT layout-config     ( navigation?, blocks?, dialogs?, pages? ) >
<!ATTLIST layout-config   version              CDATA    #FIXED "1.4" >
```

### \<navigation\>

 Represents the general navigation within a page.


\<menu\> The list of menus (which appear as tabs)


```xml

<!ELEMENT navigation                 ( menu* ) >
```

### \<blocks\>

Groups the blocks.


\<block\> The list of blocks defined in the layout



\<block-set\> The list of block sets that can be used


```xml

<!ELEMENT blocks            ( block*, blockset* ) >
```

### \<dialogs\>

Groups the dialogs.


\<dialog\> The list of dialogs


```xml

<!ELEMENT dialogs             ( dialog* ) >
```

### \<pages\>

Groups the pages.


\<page\> The list of pages


```xml

<!ELEMENT pages                  ( page* ) >
```

### \<content-security-policy\>

Groups the directives.


\<directive\> The list of directives


```xml

<!ELEMENT content-security-policy    ( directive* ) >
```

## Layout Components

### \<menu\>

Defines a menu in the navigation, that might appear as a tab or other form. The first link is the default.


\<link\> A list of links.



@name A unique menu name for reference.



@title The title of the section, displayed on the page.



@scope Specifies the scope for which the navigation item can be displayed.



@permission Specifies the permission required for this menu to display.



@role A role for this menu to qualify it (for use in the output).


```xml

<!ELEMENT menu                                             ( link* ) >
<!ATTLIST menu    title        CDATA                       #REQUIRED
                  name         NMTOKEN                      #IMPLIED
                  scope        %SCOPE;                      #IMPLIED 
                  permission   NMTOKEN                      #IMPLIED
                  role         NMTOKEN                      #IMPLIED >
```

### \<link\>

Defines a Tab subsection.

A subsection is a selection UI component that is displayed when its parent section is selected in the navigation Tab Panel.


@idref The page ID to display if the tab is clicked. Optional for now as not all pages (popups) have IDs in new Layout view.



@name A unique link name for reference.



@title The title of the subsection, displayed on the page.



@default If multiple subsections this is the default to display if the section is clicked.



@optional Only display if this page matches the current URL.



@scope Specifies the scope for which the link can be displayed.



@also A list of Page ID refs that would make this link active.



@role A role for this link to further qualify it (for use in the output).


```xml

<!ELEMENT link                                                EMPTY >
<!ATTLIST link       idref        IDREF                    #REQUIRED
                     title        CDATA                    #REQUIRED
                     name         NMTOKEN                   #IMPLIED
                     href         CDATA                     #IMPLIED
                     default      %BOOLEAN;                  "false"
                     optional     %BOOLEAN;                  "false"
                     scope        %SCOPE;                   #IMPLIED
                     permission   NMTOKEN                   #IMPLIED
                     also         IDREFS                    #IMPLIED
                     role         NMTOKEN                   #IMPLIED >
```

### \<block\>

Defines a block. A block is a UI component which can be included inside other pages, or produced as a standalone component for inclusion inside a page.

The servlets are invoked in the order in which they are specified.


\<url\> How this block can be accessed.



\<servlet\> A servlet to invoke to produce content.



\<generator\> A content generator to invoke to produce content.



\<script\> A script to import with the block.



@id A specific identifier for this block.



@style-id Style ID (used for XSLT and CSS).



@permission Only display if the specified permission is `true` (e.g. edit-group).



@shared The name of the shared script/css used (e.g. `block-account`). Added in v1.4.



@method Restricts this component to an HTTP method `get` or `post`.  Added in v1.4.



@title The title for the block.



@scope Specifies the scope for which the dialog can be displayed.


```xml

<!ELEMENT block   ( url+, (servlet | generator)*, script*) >

<!ATTLIST block id       ID                                #REQUIRED
          style-id       IDREF                              #IMPLIED
          permission     NMTOKEN                            #IMPLIED
          shared         NMTOKEN                            #IMPLIED
          method         NMTOKENS                           "get post"
          title          CDATA                              #IMPLIED
          scope          %SCOPE;                            #IMPLIED >
```

### \<blockset\>

Defines a set of blocks for inclusion in a page.


\<block-ref\> A referenced block (note: referenced block must not require parameters).



@id A specific identifier for this block.


```xml

<!ELEMENT blockset                                    ( block-ref* ) >
<!ATTLIST blockset id       ID                             #REQUIRED >
```

### \<dialog\>

An interface component for re-usable, standalone pages that do not require any blocks or navigation, for example, [workflow](../../glossary/workflow.md). 

The servlets are invoked in the order in which they are specified.


\<url\> How this dialog can be accessed.



\<servlet\> A servlet to invoke to produce content.



\<generator\> A content generator to invoke to produce content.



\<script\> A script to import with the dialog.



@id A specific identifier for this dialog.



@style-id Style ID (used for XSLT and CSS).



@permission Only display if the specified permission is `true` (e.g. edit-group).



@shared The name of the shared script/css used (e.g. `dialog-account`). Added in v1.4.



@method Restricts this component to an HTTP method `get` or `post`.  Added in v1.4.



@title The title for the dialog.



@scope Specifies the scope for which the dialog can be displayed.


```xml

<!ELEMENT dialog   ( url+, (servlet | generator)*, script*) >

<!ATTLIST dialog id       ID                                #REQUIRED
          style-id       IDREF                              #IMPLIED
          permission     NMTOKEN                            #IMPLIED
          shared         NMTOKEN                            #IMPLIED
          method         NMTOKENS                           "get post"
          title          CDATA                              #IMPLIED
          scope          %SCOPE;                            #IMPLIED >
```

### \<page\>

This element aggregates multiple content sources and interface components such as `<blockset>` into a cohesive object accessible by a URI. The servlets are invoked in the order in which they are specified.


\<url\> How this element is accessed. The value must be a valid URI Pattern.



\<var\> A variable for use in the page definition.



\<servlet\> The servlets to invoke for the required content.



\<generator\> The generators to invoke for the required content.



\<script\> Any scripts to be imported with the page content.



\<block-ref\> Reference to any individual blocks to include on the page.



\<blockset-ref\> Reference to any combined blocksets included on the page.



@id A specific identifier for this page.



@style-id The ID of a page (affects for XSLT and CSS).



@permission Only display if the specified permission is `true` (e.g. edit-group).



@shared The name of the shared script/css used (e.g. `page-account`). Added in v1.4.



@method Restricts this component to an HTTP method `get` or `post`.  Added in v1.4.



@title The title of the HTML page.



@scope Specifies the scope for which the page can be displayed.


```xml

<!ELEMENT page (url+, var*, servlet*, generator*, script*, 
                              blockset-ref?, block-ref*) >
<!ATTLIST page id           ID                             #REQUIRED
               style-id     IDREF                           #IMPLIED
               permission   NMTOKEN                         #IMPLIED
               shared       NMTOKEN                         #IMPLIED
               method       NMTOKENS                        "get post"
               title        CDATA                           #IMPLIED
               scope        %SCOPE;                         #IMPLIED >
```

## Basic Elements

### \<block-ref\>

A reference to an existing block or block set.


\<parameter\> A URL parameter to send to the referenced block.



@idref The ID of the referenced block.


```xml

<!ELEMENT block-ref                                     (parameter*) >
<!ATTLIST block-ref idref   IDREF                          #REQUIRED >
```

### \<blockset-ref\>

A reference to an existing block or block set.


@idref The ID of the referenced block set.


```xml

<!ELEMENT blockset-ref                                         EMPTY >
<!ATTLIST blockset-ref idref    IDREF                      #REQUIRED >
```

### \<url\>

The URL to access the UI component.  

The scope can narrow down.


@pattern A URI pattern to match for this component.



@scope Indicates the scope of this URL.


```xml

<!ELEMENT url                                                  EMPTY >
<!ATTLIST url pattern   %URI_PATTERN;                      #REQUIRED
              scope     %SCOPE;                             #IMPLIED >
```

### \<var\>

Defines a variable for use in the component (page, block) –**Advanced feature**.


@name The name of the variable.



@type The type (constructor) for instantiating the variable.



@value The value to use to instantiate a variable.


```xml

<!ELEMENT var                                                  EMPTY >
<!ATTLIST var name        NMTOKEN                          #REQUIRED
              type        NMTOKEN                           #IMPLIED
              value       %TOKENIX;                         #IMPLIED >
```

### \<servlet\>

Specifies a [Java servlet](../servlets.md) to invoke.


\<parameter\> Parameters to transmit the Java servlet when invoked; they are ordered.



@class The Java servlet class.



@tunnel Specifies whether all parameters on the URL should be tunnelled through.


```xml
<!ELEMENT servlet                                     ( parameter* ) >
<!ATTLIST servlet class       NMTOKEN                     #REQUIRED
                  tunnel      %BOOLEAN;                      "false" >
```

### \<generator\>

Specifies a content generator to invoke.


\<parameter\> Parameters to transmit the Java servlet when invoked; they are ordered.



@class The Java generator class.


```xml

<!ELEMENT generator                                   ( parameter* ) >
<!ATTLIST generator class NMTOKEN                          #REQUIRED >
```

### \<parameter\>

A parameter to pass.

The meaning of the parameter depends on the context element.


@name The name of the parameter that the servlet receives.



@value How the value is constructed.



@default A fallback value in case the value is empty.


```xml

<!ELEMENT parameter                                            EMPTY >
<!ATTLIST parameter name       NMTOKEN                     #REQUIRED
                    value      %TOKENIX;                    #IMPLIED
                    default    %TOKENIX;                    #IMPLIED >
```

### \<script\>

A script required for the UI component. All scripts are assumed to be JavaScript.


@src The source of the script from the PageSeeder public web area.


```xml

<!ELEMENT script                                               EMPTY >
<!ATTLIST script src       CDATA                           #REQUIRED >
```

### \<directive\>

Defines a content security policy (add in v1.4).


@name The name of the directive.



@value The value of the directive.


```xml

<!ELEMENT directive                                            EMPTY >
<!ATTLIST directive name       CDATA                       #REQUIRED
                    value      CDATA                       #REQUIRED >
```

