Resources supporting the creation of a {@link org.apache.avalon.meta.info.Type} instance from a serialized form.
External Form (XML)
Configuration instances supplied to the builder shall correspond to the Type DTD. The structure of a component-info XML document is is described below:
<!-- Example of a component meta info external XML form. The element contains the information required to construct an instance of org.apache.avalon.meta.info.Type. It includes information about the component type, the service it provides, and the services it is dependent on. --> <type> <!-- Defintion of a single component descriptor. --> <info> <!-- the name of the component (character restriction appply) --> <name>my-component</name> <!-- the implementation version --> <version>1.2.1</version> <lifestyle>singleton</lifestyle> <!-- the set of attribibutes associated with the type (attribute names and values are examples only) --> <attributes> <attribute key="color" value="blue"/> <attribute key="speed" value="fast"/> </attributes> </info> <!-- The set of logging catagories the component uses. --> <loggers> <logger name="store"/> <logger name="store.cache"/> <logger name="verifier"/> </loggers> <!-- Declaration of the context constraints for the compoent type. The "type" attribute is the name of an interface derived from the default contenxt interface org.apache.avalon.framework.context.Context --> <context type="MyContextInterface"> <!-- Declaration of an entry in a context object, the "key" is the key used by a component to locate the context entry, the "type" is the classname of value (typically an interface) or primative type. The default value is java.lang.String. The "optional" attribute is a boolean value derived from the TRUE or FALSE that indicates if the context value must be provided or not (default is FALSE). --> <entry key="base" type="java.io.File"/> <entry key="mode" optional="TRUE"/> </context> <!-- Declaration of the set of services that this component is capable of supplying. Each service declarared under the services element may be referenced by other component info descriptions as a dependecy. A container is responsible for the assemably of components based on the connection of supply components to consumer components via a common service description. --> <services> <!-- The service type is the classname of an interface and the version identifier qualifes the interface version. The default version value is 1.0. --> <service> <reference type="SimpleService" version="3.2"> <attributes> <!-- Service type attributes go here. Need some relevant examples. --> </attributes> </service> </services> <!-- Declaration of the set of dependecies that this component type has on component suppliers. Dependency declarations define the role name that the component will use to access a service via a service or component manager. The service element identifies a service descriptor that is publised by a potential supplier component. A dependecy may be declared as optional by setting the optional attribute value to TRUE. The default value for optional is FALSE. --> <dependencies> <!-- A dependecy declaration. In the following example the optional attribute is redundant as it is equivalent to the default value but is included here for completness. --> <dependency optional="FALSE"> <!-- The role name that the component will use as the argument to lookup. The default value is the value of the service type attribute listed below. --> <role>my-transformer</role> <!-- service reference containing the classname of the service interface and the version value where version defaults to 1.0 --> <reference type="org.apache.cocoon.api.Transformer" version="1.1"/> <!-- the set of attributes associated with the dependecy --> <attributes> <!-- Service type constraints go here. Need some relevant examples. --> </attributes> </dependency> </dependencies> </type>