| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- $Id: Tapestry_3_0.dtd,v 1.1 2004/12/30 16:18:31 Maxim.Mossienko Exp $ --> |
| <!-- |
| |
| The DTD for Tapestry application, library, page and component specifications. |
| Associated with the public identifier: |
| |
| -//Apache Software Foundation//Tapestry Specification 3.0//EN |
| |
| The canonical location for the DTD is: |
| |
| http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.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.3 DTD, with the following exceptions: |
| - <field-binding> has been removed |
| - attribute class of <component-specification> and <page-specification is now optional |
| - attributes name and engine-class of <application> are now optional |
| - added value attribute to <static-binding> |
| - added value attribute to <property> |
| - renamed <component-alias> to <component-type> |
| - rename <set-string-property> to <set-message-property> |
| - added <listener-binding> element |
| - added <property-specification> element |
| - renamed java-type to type inside <parameter> |
| - allow values to be specified as attributes or wrapped character data in many elements |
| - allow only a single <description> per element |
| --> |
| <!-- ======================================================= |
| Entity: attribute-flag |
| |
| For entity attributes that 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-type|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 #IMPLIED |
| engine-class CDATA #IMPLIED |
| > |
| <!-- ======================================================= |
| 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-message-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 OGNL expression, relative |
| to its container. The expression may be provided as an attribute, or |
| as the body of the element. The latter case is useful when the |
| expression is long, or uses problematic characters (such as a |
| mix of single and double quotes). |
| |
| Attributes: |
| name: The name of the component parameter to bind. |
| expression: The OGNL expression. |
| --> |
| <!ELEMENT binding (#PCDATA)> |
| <!ATTLIST binding |
| name CDATA #REQUIRED |
| expression CDATA #IMPLIED |
| > |
| <!-- ======================================================= |
| 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. |
| value: The value to be converted and applied. If not |
| specified, the element's character data is |
| used. |
| |
| --> |
| <!ELEMENT configure (#PCDATA)> |
| <!ATTLIST configure |
| property-name CDATA #REQUIRED |
| type %static-value-type; |
| value CDATA #IMPLIED |
| > |
| <!-- ======================================================= |
| 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 | inherited-binding | listener-binding | static-binding | message-binding)*)> |
| <!ATTLIST component |
| id ID #REQUIRED |
| type CDATA #IMPLIED |
| copy-of IDREF #IMPLIED |
| inherit-informal-parameters %attribute-flag; "no" |
| > |
| <!-- ======================================================= |
| Element: component-type |
| 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-type EMPTY> |
| <!ATTLIST component-type |
| 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 | property-specification)*)> |
| <!ATTLIST component-specification |
| class CDATA #IMPLIED |
| 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. |
| |
| --> |
| <!ELEMENT description (#PCDATA)> |
| <!-- ======================================================= |
| 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: 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: listener-binding |
| Appears in: component |
| |
| Defines an in-place script using the scripting language |
| supported by Bean Scripting Framework (http://jakarta.apache.org/bsf). |
| The script itself is the element's character data (often, inside |
| a CDATA block). |
| |
| The default language is jython, though this can be overridden. |
| |
| Attributes: |
| name: The name of the component parameter to bind. |
| language: The language the script is written in. |
| --> |
| <!ELEMENT listener-binding (#PCDATA)> |
| <!ATTLIST listener-binding |
| name CDATA #REQUIRED |
| language CDATA #IMPLIED |
| > |
| <!-- ======================================================= |
| 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 | property-specification)*)> |
| <!ATTLIST page-specification |
| class CDATA #IMPLIED |
| > |
| <!-- ======================================================= |
| Element: parameter |
| Contained by: component-specification |
| |
| Defines a formal parameter for the component. |
| |
| Attributes: |
| name: A unique name for the parameter. |
| type: The name of a Java class or primitive type expected by the parameter. |
| 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 |
| (in, form, custom, auto). |
| default-value: Specifies the default value for the parameter, |
| if the parameter is not bound. |
| --> |
| <!ELEMENT parameter (description?)> |
| <!ATTLIST parameter |
| name CDATA #REQUIRED |
| type CDATA #IMPLIED |
| required %attribute-flag; "no" |
| property-name CDATA #IMPLIED |
| default-value CDATA #IMPLIED |
| direction (in | form | custom | auto) "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. |
| value: If specified, is the value of the property, otherwise, the PCDATA is used. |
| |
| --> |
| <!ELEMENT property (#PCDATA)> |
| <!ATTLIST property |
| name CDATA #REQUIRED |
| value CDATA #IMPLIED |
| > |
| <!-- ======================================================= |
| Element: property-specification |
| Appears in: page-specification, component-specification |
| |
| Identifies a transient or persistent property. |
| |
| Attributes: |
| name: The name of the property. |
| type: The type of the value, either the name of a scalar type, |
| or the fully qualified name of a class. If omitted, |
| java.lang.Object is used. |
| persistent: If "yes", the value will be made persistant. Default |
| is "no". |
| initial-value: If provided, this is an OGNL expression used |
| to initialize the property. If not specified, the |
| body of the element is used as the initial value. |
| |
| --> |
| <!ELEMENT property-specification (#PCDATA)> |
| <!ATTLIST property-specification |
| name CDATA #REQUIRED |
| type CDATA #IMPLIED |
| persistent %attribute-flag; "no" |
| initial-value CDATA #IMPLIED |
| > |
| <!-- ======================================================= |
| 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. An OGNL expression |
| is provided as the expression attribute, or as wrapped |
| character data. |
| |
| Attributes: |
| name: The name of the property to be set. |
| expression: The OGNL expression that provides a value. |
| --> |
| <!ELEMENT set-property (#PCDATA)> |
| <!ATTLIST set-property |
| name CDATA #REQUIRED |
| expression CDATA #IMPLIED |
| > |
| <!-- ======================================================= |
| Element: set-message-property |
| Appears in: bean |
| |
| A localized string. |
| |
| Attributes: |
| key: Sets a property of a string from a localized string. |
| |
| --> |
| <!ELEMENT set-message-property EMPTY> |
| <!ATTLIST set-message-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 either the value ttribute, or |
| the PCDATA wrapped by the element (with leading and trailing whitespace removed). |
| |
| Attributes: |
| name: The name of the component parameter to bind. |
| value: The value of the binding. If not specied, the PCDATA wrapped |
| by the element is the binding. |
| --> |
| <!ELEMENT static-binding (#PCDATA)> |
| <!ATTLIST static-binding |
| name CDATA #REQUIRED |
| value CDATA #IMPLIED |
| > |
| <!-- ======================================================= |
| Element: message-binding |
| Appears in: component |
| |
| Binds a parameter of the component to a localized message of |
| its container. |
| |
| Attributes: |
| name: The name of the component parameter to bind. |
| key: The key used to access a localized string. |
| |
| --> |
| <!ELEMENT message-binding EMPTY> |
| <!ATTLIST message-binding |
| name CDATA #REQUIRED |
| key CDATA #REQUIRED |
| > |