<?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, 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
>
