hlship 2003/06/24 10:17:04
Modified: hivemind/src/java/org/apache/commons/hivemind/parse
HiveMind_1.0.xsd
Log:
Make the HiveMind XSD Ascii.
Revision Changes Path
1.7 +391 -391
jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/HiveMind_1.0.xsd
Index: HiveMind_1.0.xsd
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/hivemind/src/java/org/apache/commons/hivemind/parse/HiveMind_1.0.xsd,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- HiveMind_1.0.xsd 18 Jun 2003 18:47:00 -0000 1.6
+++ HiveMind_1.0.xsd 24 Jun 2003 17:17:04 -0000 1.7
@@ -1,391 +1,391 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="qualified">
- <xs:simpleType name="occurance-count">
- <xs:annotation>
- <xs:documentation>Identifies a quantity.</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:enumeration value="unbounded"/>
- <xs:enumeration value="0..1"/>
- <xs:enumeration value="1"/>
- <xs:enumeration value="1..n"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:element name="module">
- <xs:annotation>
- <xs:documentation>Document element for Hive
modules.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="description" minOccurs="0"/>
- <xs:element name="meta" minOccurs="0"
maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation>Defines meta-data
about the module.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="key"
type="xs:string" use="required"/>
- <xs:attribute name="value"
type="xs:string" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="dependency" minOccurs="0"
maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation>Identifies a
dependency on another module. This should include modules to which contributions are
made, but also any modules referenced in this modules code.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="module-id"
type="qualified-id" use="required"/>
- <xs:attribute name="version"
type="version-filter" use="optional" default="*"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="library" minOccurs="0"
maxOccurs="unbounded">
- <xs:annotation>
- <xs:documentation>Defines a library in
an external (maven-like) repository. Libraries are referenced in terms of an id and a
version. All libraries are included in the compile-time and runtime classpath for
this module. Exported libraries may also be included in the classpaths of dependant
modules.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="id"
type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The
id of the library. Library ids are used to obtain libraries from a shared
repository.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="version"
type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The
version identifier for the library. This is used to find the correct version of the
library jar. It is generally (but not always) in the same format as a module version
number.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="export"
type="xs:boolean" use="optional" default="false">
- <xs:annotation>
- <xs:documentation>If
true, the modules which depend on this module will include this library in their
compile-time and runtime classpath. If false, the default, then only this module will
include the library in the classpaths. This value is set to true only when the API of
the module exposes classes and interfaces provided by the library.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="service">
- <xs:annotation>
- <xs:documentation>Defines a
new service extension point.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element
ref="description" minOccurs="0"/>
- <xs:choice
minOccurs="0">
- <xs:element
ref="create-instance"/>
- <xs:element
ref="factory"/>
- </xs:choice>
- <xs:element
ref="interceptor" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="id"
type="simple-id" use="required"/>
- <xs:attribute name="interface"
type="xs:string" use="required"/>
- <xs:attribute name="required"
type="xs:boolean" use="optional" default="true">
- <xs:annotation>
-
<xs:documentation>If true (the default), then an implementation of the service must be
provided. If false, then the service is optional.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="contribute-service">
- <xs:annotation>
- <xs:documentation>Provides an
instance and/or interceptors to a service extension point.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:choice
minOccurs="0">
- <xs:element
ref="create-instance"/>
- <xs:element
ref="factory"/>
- </xs:choice>
- <xs:element
ref="interceptor" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute
name="service-id" type="qualified-id" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="configuration">
- <xs:annotation>
- <xs:documentation>Defines a
new configuration extension point.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:sequence>
- <xs:element
ref="description" minOccurs="0"/>
- <xs:choice
minOccurs="0" maxOccurs="unbounded">
- <xs:element
ref="expression"/>
- <xs:element
ref="value"/>
- <xs:element
ref="service-ref"/>
- <xs:element
ref="xml"/>
- <xs:element
ref="create-instance"/>
- <xs:element
ref="factory"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="id"
type="simple-id" use="required"/>
- <xs:attribute
name="element-type" type="xs:string" use="required"/>
- <xs:attribute name="count"
type="occurance-count" use="optional" default="unbounded">
- <xs:annotation>
-
<xs:documentation>The number of elements that may be contributed. The default is
unbounded (zero or more).</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute
name="cache-elements" type="xs:boolean" use="optional" default="true">
- <xs:annotation>
-
<xs:documentation>If true (the default), then the extension point will cache the
element list is creates. If false, then the element list will be created every time.
Set this to false when the element list is only needed once (for example, if used only
by a startup service).</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="contribute-configuration">
- <xs:complexType>
- <xs:choice minOccurs="0"
maxOccurs="unbounded">
- <xs:element
ref="expression"/>
- <xs:element
ref="value"/>
- <xs:element
ref="service-ref"/>
- <xs:element ref="xml"/>
- <xs:element
ref="create-instance"/>
- <xs:element
ref="factory"/>
- </xs:choice>
- <xs:attribute
name="configuration-id" type="qualified-id" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="id" type="qualified-id" use="required"/>
- <xs:attribute name="class" type="xs:string" use="optional"/>
- <xs:attribute name="version" type="version" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:complexType name="configure-instance-type">
- <xs:annotation>
- <xs:documentation>Collection of elements for configuring an
object instance.</xs:documentation>
- </xs:annotation>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="set">
- <xs:annotation>
- <xs:documentation>Sets the value of an object
property to a literal value.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attributeGroup
ref="property-setter"/>
- <xs:attribute name="value"
type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="set-expression">
- <xs:annotation>
- <xs:documentation>Sets the value of a property
to a computed OGNL expression. The module is the root object of the
expression.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute
name="expression" type="xs:string" use="optional"/>
- <xs:attributeGroup
ref="property-setter"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="set-create">
- <xs:annotation>
- <xs:documentation>Creates an instance of a new
object, optionally configures it, and assigns it to an object
property.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension
base="configure-instance-type">
- <xs:attributeGroup
ref="property-setter"/>
- <xs:attribute name="class"
type="xs:string" use="required">
- <xs:annotation>
-
<xs:documentation>The fully qualified class name of the object to create. The class
must have a public, no-arguments constructor.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="set-factory">
- <xs:annotation>
- <xs:documentation>Creates an instance of a new
object by referencing another service (a factory service). The instance may be
further configured before being assigned to the property.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension
base="configure-instance-type">
- <xs:attributeGroup
ref="property-setter"/>
- <xs:attribute
name="service-id" type="qualified-id" use="required">
- <xs:annotation>
-
<xs:documentation>The fully qualfiied id of a service extension point that will
manufacture a new instance of an object (which may then be
configured).</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="set-service-ref">
- <xs:annotation>
- <xs:documentation>Sets a property of the
configured object to a service.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="service-id"
type="qualified-id" use="required">
- <xs:annotation>
- <xs:documentation>The fully
qualified name of the service to assign to the property.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attributeGroup ref="property-setter"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="set-xml">
- <xs:annotation>
- <xs:documentation>Reads the contents of an XML
file (located relative to the contributing module's descriptor) and assigns that to a
property.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attributeGroup ref="property-setter"/>
- <xs:attribute name="path" type="xs:string"
use="required">
- <xs:annotation>
- <xs:documentation>The path of
the XML file, relative to the contributing module's descriptor.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- </xs:complexType>
- <xs:element name="value" type="xs:string">
- <xs:annotation>
- <xs:documentation>A literal value (which may contain variable
references).</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element name="expression" type="xs:string">
- <xs:annotation>
- <xs:documentation>An OGNL expression to be evaluated in the
context of the Module.</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element name="description" type="xs:string">
- <xs:annotation>
- <xs:documentation>Documents a module, service extension point,
or configuration extension point.</xs:documentation>
- </xs:annotation>
- </xs:element>
- <xs:element name="create-instance">
- <xs:annotation>
- <xs:documentation>Instantiates and configures an
instance.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="configure-instance-type">
- <xs:attribute name="class" type="xs:string"
use="required">
- <xs:annotation>
- <xs:documentation>The fully
qualified class name of the JavaBean to instantiate.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="interceptor">
- <xs:annotation>
- <xs:documentation>References an interceptor service that can
provide an enhancement to the service.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="service-id" type="qualified-id"
use="required">
- <xs:annotation>
- <xs:documentation>The id of an interceptor
factory service.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- <xs:attribute name="order" type="xs:int" use="optional"
default="0">
- <xs:annotation>
- <xs:documentation>Used to sort interceptor
contributions (from multiple Modules) into an order in which they will be applied.
Interceptors are applied in ascending order.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:simpleType name="qualified-id">
- <xs:annotation>
- <xs:documentation>A combination of a package id and a simple
id.</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern
value="(_?(\p{L}|_[0-9])*\.?)+(_?(\p{L}|_|[0-9])*)"/>
- </xs:restriction>
- </xs:simpleType>
- <!--We don't use the xs:ID type, because we want to be able to aggregate many
module elements together as modules (this is useful when trying to create
documentation from a number of module descriptors).-->
- <xs:simpleType name="simple-id">
- <xs:annotation>
- <xs:documentation>An unqualified, local id.</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="_?(\p{L}|[0-9]|_)+">
- <xs:annotation>
- <xs:documentation>A simple Java
id.</xs:documentation>
- </xs:annotation>
- </xs:pattern>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="version">
- <xs:annotation>
- <xs:documentation>Defines a module version number, as three
numeric values.</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="([0-9]+\.){2}[0-9]+">
- <xs:annotation>
- <xs:documentation>A sequence of three numeric
values: major version, minor version, incremental version. Example: "0.1.2" or
"1.1.7".</xs:documentation>
- </xs:annotation>
- </xs:pattern>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="version-filter">
- <xs:annotation>
- <xs:documentation>Used to handle version
checking.</xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="\*">
- <xs:annotation>
- <xs:documentation>The value "*" matches any
version.</xs:documentation>
- </xs:annotation>
- </xs:pattern>
- <xs:pattern value="([0-9]+\.){2}[0-9]+\+?">
- <xs:annotation>
- <xs:documentation>An exact (or minimum)
version to match. A trailing "+" means any subsequent version is acceptible.
Example: "1.0.3" would match only version "1.0.3", but "1.0.3+" would match "1.0.4",
"1.1.0", "2.0.0", etc.</xs:documentation>
- </xs:annotation>
- </xs:pattern>
- </xs:restriction>
- </xs:simpleType>
- <xs:element name="factory">
- <xs:annotation>
- <xs:documentation>Used to reference a service which can be
used to create an instance, which is then configured further.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="configure-instance-type">
- <xs:attribute name="service-id"
type="qualified-id" use="required">
- <xs:annotation>
- <xs:documentation>The identity
of a service which can create an instance. The instance created by the factory may be
further configured.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- <xs:attributeGroup name="property-setter">
- <xs:annotation>
- <xs:documentation>Used with elements that set a property of an
object.</xs:documentation>
- </xs:annotation>
- <xs:attribute name="property" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The name of the property of the
object to set.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:attributeGroup>
- <xs:element name="service-ref">
- <xs:annotation>
- <xs:documentation>A reference to a service, allowing a service
to be directly added to a configuration extension point as an
element.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="service-id" type="qualified-id"
use="required">
- <xs:annotation>
- <xs:documentation>The fully qualified name of
the service to add as a configuration element.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
- <xs:element name="xml">
- <xs:annotation>
- <xs:documentation>Contributes the contents of an XML
file.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="path" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>The path of the XML file,
relative to the contributing module's module descriptor.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
-</xs:schema>
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id$ -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" attributeFormDefault="qualified">
+ <xs:simpleType name="occurance-count">
+ <xs:annotation>
+ <xs:documentation>Identifies a quantity.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="unbounded"/>
+ <xs:enumeration value="0..1"/>
+ <xs:enumeration value="1"/>
+ <xs:enumeration value="1..n"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="module">
+ <xs:annotation>
+ <xs:documentation>Document element for Hive
modules.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element ref="description" minOccurs="0"/>
+ <xs:element name="meta" minOccurs="0"
maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>Defines meta-data
about the module.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="key"
type="xs:string" use="required"/>
+ <xs:attribute name="value"
type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="dependency" minOccurs="0"
maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>Identifies a
dependency on another module. This should include modules to which contributions are
made, but also any modules referenced in this modules code.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="module-id"
type="qualified-id" use="required"/>
+ <xs:attribute name="version"
type="version-filter" use="optional" default="*"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="library" minOccurs="0"
maxOccurs="unbounded">
+ <xs:annotation>
+ <xs:documentation>Defines a library in
an external (maven-like) repository. Libraries are referenced in terms of an id and a
version. All libraries are included in the compile-time and runtime classpath for
this module. Exported libraries may also be included in the classpaths of dependant
modules.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="id"
type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>The
id of the library. Library ids are used to obtain libraries from a shared
repository.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="version"
type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>The
version identifier for the library. This is used to find the correct version of the
library jar. It is generally (but not always) in the same format as a module version
number.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="export"
type="xs:boolean" use="optional" default="false">
+ <xs:annotation>
+ <xs:documentation>If
true, the modules which depend on this module will include this library in their
compile-time and runtime classpath. If false, the default, then only this module will
include the library in the classpaths. This value is set to true only when the API of
the module exposes classes and interfaces provided by the library.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="service">
+ <xs:annotation>
+ <xs:documentation>Defines a
new service extension point.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element
ref="description" minOccurs="0"/>
+ <xs:choice
minOccurs="0">
+ <xs:element
ref="create-instance"/>
+ <xs:element
ref="factory"/>
+ </xs:choice>
+ <xs:element
ref="interceptor" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="id"
type="simple-id" use="required"/>
+ <xs:attribute name="interface"
type="xs:string" use="required"/>
+ <xs:attribute name="required"
type="xs:boolean" use="optional" default="true">
+ <xs:annotation>
+
<xs:documentation>If true (the default), then an implementation of the service must be
provided. If false, then the service is optional.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="contribute-service">
+ <xs:annotation>
+ <xs:documentation>Provides an
instance and/or interceptors to a service extension point.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice
minOccurs="0">
+ <xs:element
ref="create-instance"/>
+ <xs:element
ref="factory"/>
+ </xs:choice>
+ <xs:element
ref="interceptor" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute
name="service-id" type="qualified-id" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="configuration">
+ <xs:annotation>
+ <xs:documentation>Defines a
new configuration extension point.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element
ref="description" minOccurs="0"/>
+ <xs:choice
minOccurs="0" maxOccurs="unbounded">
+ <xs:element
ref="expression"/>
+ <xs:element
ref="value"/>
+ <xs:element
ref="service-ref"/>
+ <xs:element
ref="xml"/>
+ <xs:element
ref="create-instance"/>
+ <xs:element
ref="factory"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="id"
type="simple-id" use="required"/>
+ <xs:attribute
name="element-type" type="xs:string" use="required"/>
+ <xs:attribute name="count"
type="occurance-count" use="optional" default="unbounded">
+ <xs:annotation>
+
<xs:documentation>The number of elements that may be contributed. The default is
unbounded (zero or more).</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute
name="cache-elements" type="xs:boolean" use="optional" default="true">
+ <xs:annotation>
+
<xs:documentation>If true (the default), then the extension point will cache the
element list is creates. If false, then the element list will be created every time.
Set this to false when the element list is only needed once (for example, if used only
by a startup service).</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="contribute-configuration">
+ <xs:complexType>
+ <xs:choice minOccurs="0"
maxOccurs="unbounded">
+ <xs:element
ref="expression"/>
+ <xs:element
ref="value"/>
+ <xs:element
ref="service-ref"/>
+ <xs:element ref="xml"/>
+ <xs:element
ref="create-instance"/>
+ <xs:element
ref="factory"/>
+ </xs:choice>
+ <xs:attribute
name="configuration-id" type="qualified-id" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="id" type="qualified-id" use="required"/>
+ <xs:attribute name="class" type="xs:string" use="optional"/>
+ <xs:attribute name="version" type="version" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="configure-instance-type">
+ <xs:annotation>
+ <xs:documentation>Collection of elements for configuring an
object instance.</xs:documentation>
+ </xs:annotation>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="set">
+ <xs:annotation>
+ <xs:documentation>Sets the value of an object
property to a literal value.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attributeGroup
ref="property-setter"/>
+ <xs:attribute name="value"
type="xs:string" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="set-expression">
+ <xs:annotation>
+ <xs:documentation>Sets the value of a property
to a computed OGNL expression. The module is the root object of the
expression.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute
name="expression" type="xs:string" use="optional"/>
+ <xs:attributeGroup
ref="property-setter"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="set-create">
+ <xs:annotation>
+ <xs:documentation>Creates an instance of a new
object, optionally configures it, and assigns it to an object
property.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension
base="configure-instance-type">
+ <xs:attributeGroup
ref="property-setter"/>
+ <xs:attribute name="class"
type="xs:string" use="required">
+ <xs:annotation>
+
<xs:documentation>The fully qualified class name of the object to create. The class
must have a public, no-arguments constructor.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="set-factory">
+ <xs:annotation>
+ <xs:documentation>Creates an instance of a new
object by referencing another service (a factory service). The instance may be
further configured before being assigned to the property.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension
base="configure-instance-type">
+ <xs:attributeGroup
ref="property-setter"/>
+ <xs:attribute
name="service-id" type="qualified-id" use="required">
+ <xs:annotation>
+
<xs:documentation>The fully qualfiied id of a service extension point that will
manufacture a new instance of an object (which may then be
configured).</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="set-service-ref">
+ <xs:annotation>
+ <xs:documentation>Sets a property of the
configured object to a service.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="service-id"
type="qualified-id" use="required">
+ <xs:annotation>
+ <xs:documentation>The fully
qualified name of the service to assign to the property.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attributeGroup ref="property-setter"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="set-xml">
+ <xs:annotation>
+ <xs:documentation>Reads the contents of an XML
file (located relative to the contributing module's descriptor) and assigns that to a
property.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attributeGroup ref="property-setter"/>
+ <xs:attribute name="path" type="xs:string"
use="required">
+ <xs:annotation>
+ <xs:documentation>The path of
the XML file, relative to the contributing module's descriptor.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:complexType>
+ <xs:element name="value" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>A literal value (which may contain variable
references).</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="expression" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>An OGNL expression to be evaluated in the
context of the Module.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="description" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>Documents a module, service extension point,
or configuration extension point.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="create-instance">
+ <xs:annotation>
+ <xs:documentation>Instantiates and configures an
instance.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="configure-instance-type">
+ <xs:attribute name="class" type="xs:string"
use="required">
+ <xs:annotation>
+ <xs:documentation>The fully
qualified class name of the JavaBean to instantiate.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="interceptor">
+ <xs:annotation>
+ <xs:documentation>References an interceptor service that can
provide an enhancement to the service.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="service-id" type="qualified-id"
use="required">
+ <xs:annotation>
+ <xs:documentation>The id of an interceptor
factory service.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="order" type="xs:int" use="optional"
default="0">
+ <xs:annotation>
+ <xs:documentation>Used to sort interceptor
contributions (from multiple Modules) into an order in which they will be applied.
Interceptors are applied in ascending order.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:simpleType name="qualified-id">
+ <xs:annotation>
+ <xs:documentation>A combination of a package id and a simple
id.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern
value="(_?(\p{L}|_[0-9])*\.?)+(_?(\p{L}|_|[0-9])*)"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!--We don't use the xs:ID type, because we want to be able to aggregate many
module elements together as modules (this is useful when trying to create
documentation from a number of module descriptors).-->
+ <xs:simpleType name="simple-id">
+ <xs:annotation>
+ <xs:documentation>An unqualified, local id.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="_?(\p{L}|[0-9]|_)+">
+ <xs:annotation>
+ <xs:documentation>A simple Java
id.</xs:documentation>
+ </xs:annotation>
+ </xs:pattern>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="version">
+ <xs:annotation>
+ <xs:documentation>Defines a module version number, as three
numeric values.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="([0-9]+\.){2}[0-9]+">
+ <xs:annotation>
+ <xs:documentation>A sequence of three numeric
values: major version, minor version, incremental version. Example: "0.1.2" or
"1.1.7".</xs:documentation>
+ </xs:annotation>
+ </xs:pattern>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="version-filter">
+ <xs:annotation>
+ <xs:documentation>Used to handle version
checking.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\*">
+ <xs:annotation>
+ <xs:documentation>The value "*" matches any
version.</xs:documentation>
+ </xs:annotation>
+ </xs:pattern>
+ <xs:pattern value="([0-9]+\.){2}[0-9]+\+?">
+ <xs:annotation>
+ <xs:documentation>An exact (or minimum)
version to match. A trailing "+" means any subsequent version is acceptible.
Example: "1.0.3" would match only version "1.0.3", but "1.0.3+" would match "1.0.4",
"1.1.0", "2.0.0", etc.</xs:documentation>
+ </xs:annotation>
+ </xs:pattern>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:element name="factory">
+ <xs:annotation>
+ <xs:documentation>Used to reference a service which can be
used to create an instance, which is then configured further.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="configure-instance-type">
+ <xs:attribute name="service-id"
type="qualified-id" use="required">
+ <xs:annotation>
+ <xs:documentation>The identity
of a service which can create an instance. The instance created by the factory may be
further configured.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="property-setter">
+ <xs:annotation>
+ <xs:documentation>Used with elements that set a property of an
object.</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="property" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>The name of the property of the
object to set.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:attributeGroup>
+ <xs:element name="service-ref">
+ <xs:annotation>
+ <xs:documentation>A reference to a service, allowing a service
to be directly added to a configuration extension point as an
element.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="service-id" type="qualified-id"
use="required">
+ <xs:annotation>
+ <xs:documentation>The fully qualified name of
the service to add as a configuration element.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="xml">
+ <xs:annotation>
+ <xs:documentation>Contributes the contents of an XML
file.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="path" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>The path of the XML file,
relative to the contributing module's module descriptor.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]