<?xml version="1.0" encoding="UTF-8"?> | |
<!-- $Id: Tapestry_1_3.dtd,v 1.18 2002/09/19 17:25:28 hship Exp $ --> | |
<!-- | |
The DTD for Tapestry application, page and component specifications. | |
Associated with the public identifier: | |
-//Howard Lewis Ship//Tapestry Specification 1.3//EN | |
The canonical location for the DTD is: | |
http://tapestry.sf.net/dtd/Tapestry_1_3.dtd | |
For application specifications, the root element is application. | |
For component specifications, the root element is component-specification. | |
For page specifications, the root element is page-specification. | |
For library specifiations, the root element is library-specification. | |
This DTD is backwards compatible with the 1.2 DTD, with the following exceptions: | |
- specification (in 1.1) has been split into page-specification and component-specification | |
- added string-value element | |
- added library-specification root element | |
- added library element | |
- added extension element | |
- added static value type 'long' | |
- allow <property> within <bean>, <component>, <extension>, <private-asset>, <context-asset> and <external-asset> | |
- add "render" to bean lifecycle value | |
- rename <binding>'s property-path attribute to expression | |
- simplify set-property to use OGNL expressions | |
- add "form" as parameter direction | |
--> | |
<!-- ======================================================= | |
Entity: attribute-flag | |
For entity attributesthat take a boolean value, defines 'yes' and 'no'. | |
The default varies, so isn't included here. | |
--> | |
<!ENTITY % attribute-flag "(yes|no)"> | |
<!-- ======================================================= | |
Entity: static-value-type | |
For entity attributes that take a string but convert it to a real | |
type. Defaults to String. | |
--> | |
<!ENTITY % static-value-type "(boolean|int|long|double|String) 'String'"> | |
<!ENTITY % library-content "(description*, property*, (page|component-alias|service|library|extension)*)"> | |
<!-- ======================================================= | |
Element: application | |
Root element | |
Defines a Tapestry application. | |
Attributes: | |
name: A textual name used to uniquely identify the application. | |
engine-class: The Java class to instantiate as the application engine. | |
--> | |
<!ELEMENT application %library-content;> | |
<!ATTLIST application | |
name CDATA #REQUIRED | |
engine-class CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: bean | |
Appears in: component-specification, page-specification | |
Defines a JavaBean that will be used in some way by the component. Beans | |
are accessible via the components' beans property (which contains a property | |
for each bean). Beans are created as needed, and are discarded based on | |
the lifecycle attribute. Beans are typically used to extend the | |
implementation of a component via aggregation. | |
Attributes: | |
name: the name of the bean | |
class: the Java class to instantiate | |
lifecycle: when the reference to the bean should be discard | |
"none" no lifecycle, the bean is created and returned, but not stored | |
"request" the bean is retained until the end of the request cycle | |
"page" the bean is retained for the lifespan of the page | |
"render" the bean is retained until the end of the current page render | |
Nothing prevents a bean for storing state; however, such state will | |
not be associated with any particular session (unlike persistant page | |
properties). Further, because of page pooling, subsequent requests | |
from the same client may be serviced by different instances of a page and | |
(therefore) different bean instances. | |
Beans that have the "request" lifecycle may be stored into a pool | |
for later re-use (in the same or different page). | |
The bean may have its properties set. Properties are set on both | |
newly instantiated beans, and beans that are retrieved from a pool. | |
--> | |
<!ELEMENT bean (description*, property*, (set-property | set-string-property)*)> | |
<!ATTLIST bean | |
name CDATA #REQUIRED | |
class CDATA #REQUIRED | |
lifecycle (none|request|page|render) "request" | |
> | |
<!-- ======================================================= | |
Element: binding | |
Appears in: component | |
Binds a parameter of the component to a property of its container. | |
Attributes: | |
name: The name of the component parameter to bind. | |
expression: The OGNL expression. | |
--> | |
<!ELEMENT binding EMPTY> | |
<!ATTLIST binding | |
name CDATA #REQUIRED | |
expression CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: configure | |
Appears in: extension | |
Configures one JavaBean property of an extension. | |
Attributes: | |
property-name: The name of the property to configure. | |
type: Conversion of property value. | |
--> | |
<!ELEMENT configure (#PCDATA)> | |
<!ATTLIST configure | |
property-name CDATA #REQUIRED | |
type %static-value-type; | |
> | |
<!-- ======================================================= | |
Element: component | |
Contained by: component-specification, page-specification | |
Defines a component contained by the component being specified. | |
Attribute: | |
id: A unique identifier for the component within the container. | |
type: The type of component, either a well known logical name, or the complete path | |
to the component's specification. | |
copy-of: The id of a previously defined component; this component will be a copy | |
of the other component. | |
The Tapestry page loader ensures that either type or copy-of is specified, but not both. | |
--> | |
<!ELEMENT component (property*, (binding | field-binding | inherited-binding | static-binding | string-binding)*)> | |
<!ATTLIST component | |
id ID #REQUIRED | |
type CDATA #IMPLIED | |
copy-of IDREF #IMPLIED | |
> | |
<!-- ======================================================= | |
Element: component-alias | |
Contained by: application | |
Establishes a short logic name for a particular component that is used | |
within the application. | |
Attributes: | |
type: The logical name for the component. | |
specification-path: The complete path to the component's specification. | |
--> | |
<!ELEMENT component-alias EMPTY> | |
<!ATTLIST component-alias | |
type CDATA #REQUIRED | |
specification-path CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: component-specification | |
Root element | |
A component specification. It's attributes define the Java class to | |
instantiate, whether the component may wrap other elements, and whether | |
informal (undeclared) parameters are allowed. Very similar to a page-specification, | |
except that component-specification allows for parameters (formal and informal). | |
Attributes: | |
class: The Java class to instantiate for the component. | |
allow-body: If yes (the default), the component may wrap other elements (have a body). | |
allow-informal-parameters: If yes (the default), informal parameters (parameters that are not | |
explictily defined) are allowed. | |
--> | |
<!ELEMENT component-specification | |
(description*, parameter*, reserved-parameter*, property*, | |
(bean | component | external-asset | context-asset | private-asset)*)> | |
<!ATTLIST component-specification | |
class CDATA #REQUIRED | |
allow-body %attribute-flag; "yes" | |
allow-informal-parameters %attribute-flag; "yes" | |
> | |
<!-- ======================================================= | |
Element: context-asset | |
Contained by: component-specification, page-specification | |
An asset located in the same web application context as the running | |
application. | |
Attributes: | |
name: The name of the asset. | |
path: The path, relative to the web application context, of the resource. | |
--> | |
<!ELEMENT context-asset (property*)> | |
<!ATTLIST context-asset | |
name CDATA #REQUIRED | |
path CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: description | |
Appears in: many | |
Several elements may contain descriptions; these descriptions are | |
optional. The eventual goal is to provide help in some form of IDE. | |
Currently, descriptions are optional and ignored. | |
Attributes: | |
xml:lang the language that the description is expressed in. | |
--> | |
<!ELEMENT description (#PCDATA)> | |
<!ATTLIST description | |
xml:lang NMTOKEN "en" | |
> | |
<!-- ======================================================= | |
Element: extension | |
Contained by: application, library-specification | |
Defines an extension, an object that is instantiated and configured | |
(like a helper bean) and is then accessible, by name, from the | |
containing library (or application). | |
Attributes: | |
name: Name of the extension. | |
class: Java class to instantiate. | |
immediate: If true, the extension is instantiated early instead of as-needed. | |
--> | |
<!ELEMENT extension (property*, configure*)> | |
<!ATTLIST extension | |
name CDATA #REQUIRED | |
class CDATA #REQUIRED | |
immediate %attribute-flag; "no" | |
> | |
<!-- ======================================================= | |
Element: external-asset | |
Contained by: component-specification, page-specification | |
Defines an asset at some external source. | |
Attributes: | |
name: The name of the asset. | |
URL: The URL used to reference the asset. | |
--> | |
<!ELEMENT external-asset (property*)> | |
<!ATTLIST external-asset | |
name CDATA #REQUIRED | |
URL CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: field-binding | |
Appears in: component | |
Binds a parameter of the component to a public static field of | |
some Java object. | |
Attributes: | |
name: The name of the component parameter to bind. | |
field-name: The name of the field, of the form [package.]class.field. | |
The package may be ommitted if it is "java.lang". | |
--> | |
<!ELEMENT field-binding EMPTY> | |
<!ATTLIST field-binding | |
name CDATA #REQUIRED | |
field-name CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: inherited-binding | |
Appears in: component | |
Binds a parameter of the component to a parameter of the container. | |
Attributes: | |
name: The name of the component parameter to bind. | |
parameter-name: The name of the container parameter to bind the | |
component parameter to. | |
--> | |
<!ELEMENT inherited-binding EMPTY> | |
<!ATTLIST inherited-binding | |
name CDATA #REQUIRED | |
parameter-name CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: library | |
Appears in: application-specification, library-specification | |
Defines a library used in the construction of the container | |
(either another library, or the application itself). | |
Attributes: | |
id: An identifier used to reference pages and components | |
provided by the library. | |
specification-path: The path to the resource that provides | |
the library specification. | |
--> | |
<!ELEMENT library EMPTY> | |
<!ATTLIST library | |
id CDATA #REQUIRED | |
specification-path CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: library-specification | |
Root element | |
Defines a library that may be used in the construction | |
of an application (or another library). An application can | |
be thought of as a specialized kind of library. | |
--> | |
<!ELEMENT library-specification %library-content;> | |
<!-- ======================================================= | |
Element: page | |
Contained by: application, library-specification | |
Defines a single page within the application. Each application will contain | |
at least one of these, to define the Home page. | |
Attributes: | |
name: A unique name for the application. | |
specification-path: The resource classpath of the component specification | |
for the page. | |
--> | |
<!ELEMENT page EMPTY> | |
<!ATTLIST page | |
name CDATA #REQUIRED | |
specification-path CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: page-specification | |
Root element | |
A page specification. It's attributes define the Java class to | |
instantiate. Pages are like components, except they always allow | |
a body, and never allow parameters (formal or otherwise). | |
Attributes: | |
class: The Java class to instantiate for the component. | |
--> | |
<!ELEMENT page-specification (description*, property*, | |
(bean | component | external-asset | context-asset | private-asset)*)> | |
<!ATTLIST page-specification | |
class CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: parameter | |
Contained by: component-specification | |
Defines a formal parameter for the component. | |
Attributes: | |
name: A unqiue name for the parameter. | |
java-type: The name of a Java class or primitive type expected by the parameter. | |
This is for documentation purposes only, it is not enforced. | |
required: If yes, then the parameter must be bound. If no (the default), | |
then the parameter is optional. | |
property-name: The name to use, instead of the parameter name, for the | |
JavaBean property connected to this parameter. | |
direction: The normal flow of data through the component. | |
--> | |
<!ELEMENT parameter (description*)> | |
<!ATTLIST parameter | |
name CDATA #REQUIRED | |
java-type CDATA #IMPLIED | |
required %attribute-flag; "no" | |
property-name CDATA #IMPLIED | |
direction (in|form|custom) "custom" | |
> | |
<!-- ======================================================= | |
Element: private-asset | |
Contained by: component-specification, page-specification | |
An asset available within the Java classpath (i.e., bundled inside a JAR or WAR). | |
Attributes: | |
name: The name of the asset. | |
resource-path: The complete pathname of the resource. | |
--> | |
<!ELEMENT private-asset (property*)> | |
<!ATTLIST private-asset | |
name CDATA #REQUIRED | |
resource-path CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: property | |
Contained by: (many other elements) | |
Defines a key/value pair associated with the application or component specification. Properties | |
are used to capture information that doesn't fit into the DTD. The value for the property is | |
the PCDATA wrapped by the property tag (which is trimmed of leading and trailing whitespace). | |
This should not be confused with several other tags which are used to set JavaBeans properties | |
of various objects. The <property> tag exists to allow meta-data to be stored in the specification. | |
Attributes: | |
name: The name of the property to set. | |
--> | |
<!ELEMENT property (#PCDATA)> | |
<!ATTLIST property | |
name CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: reserved-parameter | |
Appears in: component-specification | |
Identifies a name which may not be used as an informal parameter. | |
Informal parameters are typically HTML attribute names; this | |
list identifies HTML attributes that are written exclusively | |
by the component and may not be affected by informal parameters. | |
Attributes: | |
name: The parameter name to reserve. | |
--> | |
<!ELEMENT reserved-parameter EMPTY> | |
<!ATTLIST reserved-parameter | |
name CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: service | |
Appears in: application | |
Defines an engine service. You may override the default | |
set of engine services or provide completely new services. | |
Attributes: | |
name: The name of the service. | |
class: The Java class to instantiate for the service. | |
--> | |
<!ELEMENT service EMPTY> | |
<!ATTLIST service | |
name CDATA #REQUIRED | |
class CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: set-property | |
Appears in: bean | |
Used to initialize a property of a helper bean. | |
Attributes: | |
name: The name of the property to be set. | |
expression: The OGNL expression that provides a value. | |
--> | |
<!ELEMENT set-property EMPTY> | |
<!ATTLIST set-property | |
name CDATA #REQUIRED | |
expression CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: set-string-property | |
Appears in: bean | |
A localized string. | |
Attributes: | |
key: Sets a property of a string from a localized string. | |
--> | |
<!ELEMENT set-string-property EMPTY> | |
<!ATTLIST set-string-property | |
name CDATA #REQUIRED | |
key CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: static-binding | |
Appears in: component | |
Binds a parameter of the component to a static value defined directly | |
within this specification. The value is the PCDATA wrapped by the element | |
(with leading and trailing whitespace removed). | |
Attributes: | |
name: The name of the component parameter to bind. | |
--> | |
<!ELEMENT static-binding (#PCDATA)> | |
<!ATTLIST static-binding | |
name CDATA #REQUIRED | |
> | |
<!-- ======================================================= | |
Element: string-binding | |
Appears in: component | |
Binds a parameter of the component to a localized string of | |
its container. | |
Attributes: | |
name: The name of the component parameter to bind. | |
key: The key used to access a localized string. | |
--> | |
<!ELEMENT string-binding EMPTY> | |
<!ATTLIST string-binding | |
name CDATA #REQUIRED | |
key CDATA #REQUIRED | |
> | |