Apache Geronimo >  Index >  Development >  XML Schemas >  Apache Geronimo v2.2 XML Schemas User List | Dev List | Wiki | Issue Tracker  
  Overview
Home
License
ASF
Project Policies
Downloads
Documentation
News Archive
  Search
Powered by Google Search
  Community
Events
Get Involved
Committers
Mailing Lists
Discussion Forums
IRC
FAQ
Wiki
Found a Bug?
Service and Support
ASF Sponsorship
ASF Thanks!
  Development
Javadoc
XML Schemas
Source Code
Coding Standards
Issue Tracker
Related Projects
Sample Applications
  Subprojects
Development Tools
GBuild
GShell
XBean

Documentation for plugins-1.3

Table of Contents

top

Schema Document Properties

Target Namespace http://geronimo.apache.org/xml/ns/plugins-1.3
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations belong to this schema's target namespace.
  • By default, local attribute declarations have no namespace.
Schema Composition
  • This schema imports schema(s) from the following namespace(s):
    • http://geronimo.apache.org/xml/ns/attributes-1.2 (at attributes-1.2.xsd)
Documentation Schema for a list of Geronimo plugins available at some external site (namely, a Maven 2 repository).
Application Data <jaxb:globalBindings>
<xjc:serializable uid="12343"/>
</jaxb:globalBindings>

Declared Namespaces

Prefix Namespace
xml http://www.w3.org/XML/1998/namespace
list http://geronimo.apache.org/xml/ns/plugins-1.3
xs http://www.w3.org/2001/XMLSchema
atts http://geronimo.apache.org/xml/ns/attributes-1.2
jaxb http://java.sun.com/xml/ns/jaxb
xjc http://java.sun.com/xml/ns/jaxb/xjc
Schema Component Representation
<xs:schema targetNamespace="http://geronimo.apache.org/xml/ns/plugins-1.3" elementFormDefault="qualified" attributeFormDefault="unqualified" extensionBindingPrefixes="xjc" version="2.0">
<xs:import namespace="http://geronimo.apache.org/xml/ns/attributes-1.2" schemaLocation="attributes-1.2.xsd"/>
...
</xs:schema>
top

Global Declarations

Element: geronimo-plugin

Name geronimo-plugin
Type list:pluginType
Nillable no
Abstract no
Documentation The geronimo-plugin root element is used as the config file submitted with an individual Geronimo plugin to the plugin repository. It will be merged into the plugin list for the repository when the submitted plugin is accepted. It is also used for the metadata packed into a plugin when a plugin archive is downloaded from an online repository for local installation, in which case it should be packed into the archive at META-INF/geronimo-plugin.xml
Logical Diagram
XML Instance Representation
<list:geronimo-plugin>
<list:name> xs:string </list:name> [1]

'A human-readable name for this plugin. This will be used to identify the plugin to a user when giving them a list of plugins to select from.'

<list:category> xs:string </list:category> [1]

'A category name for this plugin. The user interface typically groups plugins by their category name, so this should match the value for other plugins in the same category.'

<list:pluginGroup> xs:boolean </list:pluginGroup> [0..1]

'Influences whether a geronimo plugin is a geronimo plugin group, which is just a list of other plugins to install. The dependencies listed for this plugin will be treated as the list of actual plugins to install.'

<list:description> xs:string </list:description> [1]

'A description of this plugin. This will be displayed when the user looks for more information about this plugin. It typically includes a description of what it does, what if any third-party software it\'s based on, why it would be interesting to use it, etc. Currently this should be plain text, where whitespace is not significant except an entirely blank line indicates a paragraph break (like this documentation, for example). This may change to a more structured format in the future, if we can agree on what that ought to be.'

<list:url> xs:string </list:url> [0..1]

'The URL for a site that contains more detailed information about this plugin. The plugin repository has access to the basic information provided in this file, but a plugin may have a home page with more detailed information, documentation, source code, etc.'

<list:author> xs:string </list:author> [0..1]

'Names the author of the plugin. This may be a person, a company, an open source project, or whatever. Basically, this gives some idea who submitted the plugin, perhaps where to go for support, etc.'

<list:license> list:licenseType </list:license> [0..*]

'The name of the license that applies to this plugin, usually composed of a license class (if any) followed by the name and version of a license: BSD 每每 Apache Software License (ASL) 2.0 GPL 每每 Lesser General Public License (LGPL) 2 If there is more than one license listed then that means the user may choose among any of the available licenses. Contains a mandatory true/false attribute indicating whether this license is OSI-approved (e.g. whether the plugin is open source). Note that the license declared here applies only to the current component. Any dependencies may be licensed separately.'

<list:plugin-artifact> list:pluginArtifactType </list:plugin-artifact> [1..*]

'A version and container senstive instance of this plugin.'

</list:geronimo-plugin>
Diagram
h1312712086 h-1273280476
Schema Component Representation
<xs:element name="geronimo-plugin" type=" list:pluginType "/>
top

Element: geronimo-plugin-list

Name geronimo-plugin-list
Type list:plugin-listType
Nillable no
Abstract no
Documentation The geronimo-plugin-list root element is used for the config file present in the root directory of a Maven repository supporting Geronimo plugin downloads. This will be scanned by Geronimo clients to determine what plugins are available on that server.
Logical Diagram
XML Instance Representation
<list:geronimo-plugin-list>
<list:plugin> list:pluginType </list:plugin> [0..*]

'The list of plugins available in the current plugin repository.'

<list:default-repository> xs:string </list:default-repository> [0..*]

'Each default-repository is a URL to check for any dependencies that need to be downloaded. Different values can be used, for example, to host Geronimo plugins at one site and common third-party JARs at another site, or to maintain a plugin list at a site that is not actually a repository. The URL where this fill is downloaded from must list itself as the first default-repository if it wants to be checked for file downloads in addition to hosting the plugin list. For every dnwload, each of the repositories listed here will be checked in the order listed until the artifact is found. However, if a plugin in the list includes its own source-repository list, those repositories will be used instead of these list-level repositories when downloading that plugin or its dependencies. Note that while the primary repository may be protected by HTTP Basic authentication, the backup repositories must either use the same username and password as the primary or use no authentication.'

</list:geronimo-plugin-list>
Diagram
h91651890
Schema Component Representation
<xs:element name="geronimo-plugin-list" type=" list:plugin-listType "/>
top

Global Definitions

Complex Type: artifactType

Super-types: None
Sub-types:
Name artifactType
Used by (from the same schema document) Complex Type pluginArtifactType , Complex Type pluginArtifactType , Complex Type prerequisiteType
Abstract no
Documentation Refers to either another module running in the server, or an entry in the server's Repository. In either case this effectively uses a URI. When this is pointing to a repository entry, the URI must have a form acceptable to the repository, which is currently a URI consisting of Maven-style identifiers separated by slashes (groupId/artifactId/version/type, for example, the URI "postgresql/postgresql-8.0-jdbc/313/jar" for a file like "repository/postgresql/postgresql-8.0-jdbc-313.jar"). When this is pointing to a module, the URI should match the module's moduleId. This also looks like a Maven-style URI discussed above. The artifactType element can take either a straight URI (as in the examples above), or maven-style identifier fragments (groupId, type, artifactId, and version), which it will compose into a URI by adding up the fragments with slashes in between. There is a correspondence between the xml format and a URI. For example, the URI postgresql/postgresql-8.0-jdbc/313/jar corresponds to the xml: <groupId>postgresql</groupId> <artifactId>postgresql-8.0-jdbc</artifactId> <version>313</version> <type>jar</type>
XML Instance Representation
<...>
<list:groupId> xs:string </list:groupId> [0..1]

'The name for group containing this module. By default, it is considered \'default\' for declaration and wild card \'*\' for dependencies.'

<list:artifactId> xs:string </list:artifactId> [1]

'The name for module in a specified group. All the artifactId\'s should be unique within a group. If no articfactId is provided it will be defaulted to file name of the module file.'

<list:version> xs:string </list:version> [0..1]

'The version number for the module formatted by dot separated numbers. If no version is provided it will be defaulted to numeric timestamp generated by System.currentTimeMillis() at deploy time. In case of dependencies latest available version will be used.'

<list:type> xs:string </list:type> [0..1]

'This element defines the type of the module. The type could be \'CAR\', \'JAR\', EAR\', \'WAR\', etc. If no type is provided it will be defaulted appropriately by the deployer depending upon type of deployed module.'

</...>
Diagram
Schema Component Representation
<xs:complexType name="artifactType">
<xs:sequence>
<-- TODO not sure if groupId can in fact be optional -->
<xs:element name="groupId" type=" xs:string " minOccurs="0"/>
<xs:element name="artifactId" type=" xs:string "/>
<xs:element name="version" type=" xs:string " minOccurs="0"/>
<xs:element name="type" type=" xs:string " minOccurs="0"/>
</xs:sequence>
</xs:complexType>
top

Complex Type: config-xml-contentType

Super-types: None
Sub-types: None
Name config-xml-contentType
Used by (from the same schema document) Complex Type pluginArtifactType
Abstract no
Documentation Lets a plugin declare data that should be inserted into config.xml when the plugin is installed. This is normally used to add ports and other settings that the user is likely to want to change. The gbean entries declared here will be written into config.xml for the new module when the plugin is installed.
XML Instance Representation
<...
load=" xs:boolean [0..1]

'Whether the module should be marked load true or false. If marked false it can still be started if other started modules depend on it.'

"

condition=" xs:string [0..1]

'Optional condition that if present is evaluated to determine whether to load the module.'

"

server=" xs:string [0..1]

'The \"server\", i.e. the named set of configuration files, this should be added to.'

"
>
<atts:comment> ... </atts:comment> [0..1]
<atts:gbean> ... </atts:gbean> [1..*]
</...>
Diagram
h-948439012 h-601039468
Schema Component Representation
<xs:complexType name="config-xml-contentType">
<xs:sequence>
<xs:element ref=" atts:comment " minOccurs="0" maxOccurs="1"/>
<xs:element ref=" atts:gbean " maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="load" type=" xs:boolean " default="true"/>
<xs:attribute name="condition" type=" xs:string "/>
<xs:attribute name="server" type=" xs:string " default="default"/>
</xs:complexType>
top

Complex Type: copy-fileType

Super-types: xs:string < copy-fileType (by extension)
Sub-types: None
Name copy-fileType
Used by (from the same schema document) Complex Type pluginArtifactType
Abstract no
Documentation The name of a file in the plugin archive that should be copied into the server installation tree somewhere when the plugin is installed. There may be a path component (relative to the root of the plugin archive), though that will not be used to construct the destination location. For example: resources/keystores/my-keystore This will copy the file resources/keystores/my-keystore to e.g. var/security/keystores/my-keystore
XML Instance Representation
<...
relative-to=" xs:NMTOKEN (value comes from list: {'geronimo'|'server'}) [1]

'Indicates whether the destination is relative to the Geronimo install directory or the server instance directory (which are the same unless the server instance is configured). The values presently supported are: geronimo server'

"

dest-dir=" xs:string [1]

'The directory to copy the file to, relative to either the Geronimo install dir or the server\'s home directory (normally the same as the Geronimo install dir but may be configured to be elsewhere).'

"
>
xs:string
</...>
Diagram
Schema Component Representation
<xs:complexType name="copy-fileType">
<xs:simpleContent>
<xs:extension base=" xs:string ">
<xs:attribute name="relative-to" use="required">
<xs:simpleType>
<xs:restriction base=" xs:NMTOKEN ">
<xs:enumeration value="geronimo"/>
<xs:enumeration value="server"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dest-dir" type=" xs:string " use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
top

Complex Type: dependencyType

Super-types: artifactType < dependencyType (by extension)
Sub-types: None
Name dependencyType
Used by (from the same schema document) Complex Type pluginArtifactType
Abstract no
Documentation See pluginType/dependency above
XML Instance Representation
<...
start=" xs:boolean [0..1]

'Influences whether a dependency is marked to start. A plugin is marked to start in a particular server \"instance\" primarily based on the load and condition settings in the config-xml sections. However the start attribute overrides this for plugins installed as dependencies.'

"
>
<list:groupId> xs:string </list:groupId> [0..1]

'The name for group containing this module. By default, it is considered \'default\' for declaration and wild card \'*\' for dependencies.'

<list:artifactId> xs:string </list:artifactId> [1]

'The name for module in a specified group. All the artifactId\'s should be unique within a group. If no articfactId is provided it will be defaulted to file name of the module file.'

<list:version> xs:string </list:version> [0..1]

'The version number for the module formatted by dot separated numbers. If no version is provided it will be defaulted to numeric timestamp generated by System.currentTimeMillis() at deploy time. In case of dependencies latest available version will be used.'

<list:type> xs:string </list:type> [0..1]

'This element defines the type of the module. The type could be \'CAR\', \'JAR\', EAR\', \'WAR\', etc. If no type is provided it will be defaulted appropriately by the deployer depending upon type of deployed module.'

</...>
Diagram
Schema Component Representation
<xs:complexType name="dependencyType">
<xs:complexContent>
<xs:extension base=" list:artifactType ">
<xs:attribute name="start" type=" xs:boolean " use="optional" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
top

Complex Type: hashType

Super-types: xs:string < hashType (by extension)
Sub-types: None
Name hashType
Used by (from the same schema document) Complex Type pluginArtifactType
Abstract no
Documentation See pluginType/hash above
XML Instance Representation
<...
type=" xs:NMTOKEN (value comes from list: {'MD5'|'SHA-1'}) [1]

'Indicates the type of hash. The values presently supported are: MD5 SHA-1'

"
>
xs:string
</...>
Diagram
Schema Component Representation
<xs:complexType name="hashType">
<xs:simpleContent>
<xs:extension base=" xs:string ">
<xs:attribute name="type" use="required">
<xs:simpleType>
<xs:restriction base=" xs:NMTOKEN ">
<xs:enumeration value="MD5"/>
<xs:enumeration value="SHA-1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
top

Complex Type: licenseType

Super-types: xs:string < licenseType (by extension)
Sub-types: None
Name licenseType
Used by (from the same schema document) Complex Type pluginType
Abstract no
Documentation See pluginType/license above
XML Instance Representation
<...
osi-approved=" xs:boolean [1]

'Indicates whether this license is OSI-approved, which is to say, whether the plugin is open source. Typically this is true for all licenses you\'d expect to be open source, and false for proprietary plugins. If there\'s some doubt, visit http://www.opensource.org/licenses/index.php'

"
>
xs:string
</...>
Diagram
Schema Component Representation
<xs:complexType name="licenseType">
<xs:simpleContent>
<xs:extension base=" xs:string ">
<xs:attribute name="osi-approved" type=" xs:boolean " use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
top

Complex Type: plugin-listType

Super-types: None
Sub-types: None
Name plugin-listType
Used by (from the same schema document) Element geronimo-plugin-list
Abstract no
XML Instance Representation
<...>
<list:plugin> list:pluginType </list:plugin> [0..*]

'The list of plugins available in the current plugin repository.'

<list:default-repository> xs:string </list:default-repository> [0..*]

'Each default-repository is a URL to check for any dependencies that need to be downloaded. Different values can be used, for example, to host Geronimo plugins at one site and common third-party JARs at another site, or to maintain a plugin list at a site that is not actually a repository. The URL where this fill is downloaded from must list itself as the first default-repository if it wants to be checked for file downloads in addition to hosting the plugin list. For every dnwload, each of the repositories listed here will be checked in the order listed until the artifact is found. However, if a plugin in the list includes its own source-repository list, those repositories will be used instead of these list-level repositories when downloading that plugin or its dependencies. Note that while the primary repository may be protected by HTTP Basic authentication, the backup repositories must either use the same username and password as the primary or use no authentication.'

</...>
Diagram
h91651890
Schema Component Representation
<xs:complexType name="plugin-listType">
<xs:sequence>
<xs:element name="plugin" type=" list:pluginType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="default-repository" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
top

Complex Type: pluginArtifactType

Super-types: None
Sub-types: None
Name pluginArtifactType
Used by (from the same schema document) Complex Type pluginType
Abstract no
XML Instance Representation
<...>
<list:module-id> list:artifactType </list:module-id> [1]

'The Geronimo moduleId for this plugins, which uniquely identifies it, and also is used to construct a path to download it if necessary. If no module-id is provided, that means this is a plugin group, which is just a list of other plugins to install. The prerequisites must still be met, but then the dependencies listed for this plugin will be treated as the list of actual plugins to install.'

<list:hash> list:hashType </list:hash> [0..1]

'A hash value (typically MD5 or SHA-1) that applies to the plugin download file. This can be used to confirm that a plugin download was complete, and to ensure that the file downloaded is the same as the file originally posted to the repository.'

<list:geronimo-version> xs:string </list:geronimo-version> [0..*]

'Indicates a version of the Geronimo base server that this plugin can run in. If no geronimo-version is listed, that means the plugin can run in any version of Geronimo so long as the prerequisites, parents, and dependencies are present. If one or more geronimo-version elements are listed, then the current version of Geronimo must match one of them in order for this plugin to be installable. This is applied as an exact match: 1.2 does not match 1.2.1 or 1.2-SNAPSHOT'

<list:jvm-version> xs:string </list:jvm-version> [0..*]

'Indicates a version of the JVM that this plugin can run in. If no jvm-version is listed, that means the plugin can run in any version of the JVM supported by Geronimo so long as the prerequisites, parents, and dependencies are present. If one or more jvm-version elements are listed, then the JVM that Geronimo is currently running on must match one of them in order for this plugin to be installable. (It does not stop you from restarting Geronimo on a different JVM version once the components is already installed.) This is not normally used, but must be for plugins that use CORBA or serialized QNames, etc. This is applied as a prefix match: 1.4 matches 1.4.2 or 1.4.2_10'

<list:prerequisite> list:prerequisiteType </list:prerequisite> [0..*]

'A dependency of this plugin that must be previously installed if this plugin is to be considered to be installable. This is generally the same as the dependency element (for example, it may refer to a plugin by moduleId or a JAR by repository ID) except that the dependency will not be downloaded on demand and must have been previously installed. This is currently used for a web application to specify the web container it runs in (so we don\'t show Tomcat downloads for a Jetty installation, etc.). It may be used for similar things in the future if more distribution choices are added to Geronimo. It is also used by the public Geronimo plugin repository in cases where the dependencies cannot be redistributed (e.g. a dependency on a commercial JDBC driver JAR which must be manually acquired and installed). It is also used when a user must set something up (like a database pool or security realm) to point to a custom resource in their environment before the plugin can be installed. This is applied as an exact match, except that the version number may be omitted, in which case any matching version of the dependency will work. It has an optional resource-type attribute indicating to the user what type of prerequisite this is (for cases where they\'re expected to set something up as opposed to just downloading a JAR). e.g. it could be set to \"JDBC Pool\". Likewise there is an option description to provide more detailed guidance for how to resolve the prerequisite.'

<list:dependency> list:dependencyType </list:dependency> [0..*]

'The moduleId of another plugin or Geronimo module, or the repository ID of a 3rd party JAR that this plugin depends on. That means that the dependency must be downloaded and installed if this plugin is selected. This is applied as an exact match, except that the version number may be omitted, in which case any matching version of the dependency will work.'

<list:obsoletes> list:artifactType </list:obsoletes> [0..*]

'The moduleId of another plugin or Geronimo module that this plugin replaces. That can be used, for example, to replace a less functional module with a more functional one, or to upgrade a component to a newer version. This is applied as an exact match, except that the version number may be omitted, in which case any matching version of the module or plugin will be replaced. Be aware that omitting the version number may cause a plugin to be downgraded, so you may choose to explicitly list all lesser versions. That may not be desirable either, though. If the server has foo-1.0.2 installed and you install foo-1.0.1, would you rather have it downgrade or end up with both installed? NOTE: currently the \"obsoletes\" entries are only processed on the plugin(s) passed directly to the PluginInstaller (not on dependencies that are brought down as a result). That means that a plugin group must list obsoletes for all its components, etc.'

<list:source-repository> xs:string </list:source-repository> [0..*]

'The base URL for the repository that this plugin should be downloaded from. The repositories listed here will be consulted in the order listed every time something needs to be downloaded, and the search will stop at the first repository that holds any matching plugin or JAR. In a normal plugin list, the repositories are specified at the list level, and do not need to be repeated at the plugin level. However, any values specified at the plugin level replace the values specified at the list level. This can be used to maintain a single list of plugins from multiple sources. This value is required if this is not a plugin list but metadata for a single plugin included in a plugin file downloaded from a repository. Otherwise, the installer would not know where to download any dependencies from.'

<list:copy-file> list:copy-fileType </list:copy-file> [0..*]

'Lets a plugin include files that should be copied into the Geronimo installation tree, beyond copying the plugin into the repository. For example, this could be used to copy files into geronimo/bin, geronimo/lib, geronimo/var/security/keystores, or other Geronimo dirs.'

<list:config-xml-content> list:config-xml-contentType </list:config-xml-content> [0..*]
<list:artifact-alias> list:propertyType </list:artifact-alias> [0..*]
<list:config-substitution> list:propertyType </list:config-substitution> [0..*]
</...>
Diagram
h-235423471 h1234743501 h238684533 h1955101898 h-235423471 h951809513 h2138790071 h-427698284 h-427698284
Schema Component Representation
<xs:complexType name="pluginArtifactType">
<xs:sequence>
<xs:element name="module-id" type=" list:artifactType "/>
<xs:element name="hash" type=" list:hashType " minOccurs="0"/>
<xs:element name="geronimo-version" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="jvm-version" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="prerequisite" type=" list:prerequisiteType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="dependency" type=" list:dependencyType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="obsoletes" type=" list:artifactType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="source-repository" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="copy-file" type=" list:copy-fileType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="config-xml-content" type=" list:config-xml-contentType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="artifact-alias" type=" list:propertyType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="config-substitution" type=" list:propertyType " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
top

Complex Type: pluginType

Super-types: None
Sub-types: None
Name pluginType
Used by (from the same schema document) Element geronimo-plugin , Complex Type plugin-listType
Abstract no
XML Instance Representation
<...>
<list:name> xs:string </list:name> [1]

'A human-readable name for this plugin. This will be used to identify the plugin to a user when giving them a list of plugins to select from.'

<list:category> xs:string </list:category> [1]

'A category name for this plugin. The user interface typically groups plugins by their category name, so this should match the value for other plugins in the same category.'

<list:pluginGroup> xs:boolean </list:pluginGroup> [0..1]

'Influences whether a geronimo plugin is a geronimo plugin group, which is just a list of other plugins to install. The dependencies listed for this plugin will be treated as the list of actual plugins to install.'

<list:description> xs:string </list:description> [1]

'A description of this plugin. This will be displayed when the user looks for more information about this plugin. It typically includes a description of what it does, what if any third-party software it\'s based on, why it would be interesting to use it, etc. Currently this should be plain text, where whitespace is not significant except an entirely blank line indicates a paragraph break (like this documentation, for example). This may change to a more structured format in the future, if we can agree on what that ought to be.'

<list:url> xs:string </list:url> [0..1]

'The URL for a site that contains more detailed information about this plugin. The plugin repository has access to the basic information provided in this file, but a plugin may have a home page with more detailed information, documentation, source code, etc.'

<list:author> xs:string </list:author> [0..1]

'Names the author of the plugin. This may be a person, a company, an open source project, or whatever. Basically, this gives some idea who submitted the plugin, perhaps where to go for support, etc.'

<list:license> list:licenseType </list:license> [0..*]

'The name of the license that applies to this plugin, usually composed of a license class (if any) followed by the name and version of a license: BSD 每每 Apache Software License (ASL) 2.0 GPL 每每 Lesser General Public License (LGPL) 2 If there is more than one license listed then that means the user may choose among any of the available licenses. Contains a mandatory true/false attribute indicating whether this license is OSI-approved (e.g. whether the plugin is open source). Note that the license declared here applies only to the current component. Any dependencies may be licensed separately.'

<list:plugin-artifact> list:pluginArtifactType </list:plugin-artifact> [1..*]

'A version and container senstive instance of this plugin.'

</...>
Diagram
h1312712086 h-1273280476
Schema Component Representation
<xs:complexType name="pluginType">
<xs:sequence>
<xs:element name="name" type=" xs:string "/>
<xs:element name="category" type=" xs:string "/>
<xs:element name="pluginGroup" type=" xs:boolean " default="false" minOccurs="0"/>
<xs:element name="description" type=" xs:string "/>
<xs:element name="url" type=" xs:string " minOccurs="0"/>
<xs:element name="author" type=" xs:string " minOccurs="0"/>
<xs:element name="license" type=" list:licenseType " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="plugin-artifact" type=" list:pluginArtifactType " minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
top

Complex Type: prerequisiteType

Super-types: None
Sub-types: None
Name prerequisiteType
Used by (from the same schema document) Complex Type pluginArtifactType
Abstract no
XML Instance Representation
<...>
<list:id> list:artifactType </list:id> [1]

'The Module ID of the prerequisite. This is used to check whether it\'s available on the server that you\'re downloading the plugin into. It may omit some portions of the Module ID to be more accomodating (e.g. \"*/MyDBPool/*/*\" to identify a database pool instead of \"console/MyDBPool/1.0/car\"). Note that the values here may take the non-standard syntax of * instead of the empty string for a missing value, which will hopefully make the wildcard format more user-friendly. (On the theory that \"Please install */MyDBPool/*/*\" should make more sense than \"Please install /MyDBPool//\" for an average user)'

<list:resource-type> xs:string </list:resource-type> [0..1]

'Describes the type of resource that the prerequisite is. Examples include: JDBC Driver JDBC Pool JMS Resource Group JavaMail This is mainly used for prerequisites where the user needs to set something up and you want to indicate what. So for example, you could say \"console/myapp-pool/*/jar\" is a prerequisite with resource type \"JDBC Pool\" and then the user should understand that they can install your plugin if they create a JDBC pool called \"myapp-pool\" in the console, or manually deploy a pool with moduleId \"console/myapp-pool/(something)/jar\" Another option in that case would be to use a dependency on a JDBC pool plugins you provide, but then it would have to use the system database (and run a DDL script on the first connect) in order to be installable in an arbitrary Geronimo server. That would be a better approach for demonstration applications, whereas the prerequisite on a user-installed pool would be a better approach for production applications.'

<list:description> xs:string </list:description> [0..1]

'A description for the user about why this is a prerequisite and what they should do to set it up. Here are a couple examples: This plugin of SomeApp is configured for the Jetty version of Geronimo. It cannot be installed on the Tomcat version of Geronimo. There\'s a separate plugin for the Tomcat version of Geronimo. SomeApp requires a database connection pool. Supported databases are PostgreSQL and MySQL. Please configure a database connection pool with the name \"SomeAppPool\" and then run the associated create script from http://someapp.com/db-scripts/ before installing this plugin.'

</...>
Diagram
h-235423471
Schema Component Representation
<xs:complexType name="prerequisiteType">
<xs:sequence>
<xs:element name="id" type=" list:artifactType "/>
<xs:element name="resource-type" type=" xs:string " minOccurs="0"/>
<xs:element name="description" type=" xs:string " minOccurs="0"/>
</xs:sequence>
</xs:complexType>
top

Complex Type: propertyType

Super-types: xs:string < propertyType (by extension)
Sub-types: None
Name propertyType
Used by (from the same schema document) Complex Type pluginArtifactType , Complex Type pluginArtifactType
Abstract no
Documentation holds key-value pair. key is in 'key' attribute, value is in content
XML Instance Representation
<...
key=" xs:string [1]

'key for key-value pair.'

"

server=" xs:string [0..1]

'The \"server\", i.e. the named set of configuration files, this should be added to.'

"
>
xs:string
</...>
Diagram
Schema Component Representation
<xs:complexType name="propertyType">
<xs:simpleContent>
<xs:extension base=" xs:string ">
<xs:attribute name="key" type=" xs:string " use="required"/>
<xs:attribute name="server" type=" xs:string " default="default"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
top

Legend

Complex Type:

Schema Component Type

AusAddress

Schema Component Name
Super-types: Address < AusAddress (by extension)
Sub-types:
  • QLDAddress (by restriction)
If this schema component is a type definition, its type hierarchy is shown in a gray-bordered box.
Name AusAddress
Abstract no
The table above displays the properties of this schema component.
XML Instance Representation
<... country="Australia" >
<unitNo> string </unitNo> [0..1]
<houseNo> string </houseNo> [1]
<street> string </street> [1]
Start Choice [1]
<city> string </city> [1]
<town> string </town> [1]
End Choice
<state> AusStates </state> [1]
<postcode> string <<pattern = [1-9][0-9]{3}>> </postcode> [1]
</...>

The XML Instance Representation table above shows the schema component's content as an XML instance.

  • The minimum and maximum occurrence of elements and attributes are provided in square brackets, e.g. [0..1].
  • Model group information are shown in gray, e.g. Start Choice ... End Choice.
  • For type derivations, the elements and attributes that have been added to or changed from the base type's content are shown in bold.
  • If an element/attribute has a fixed value, the fixed value is shown in green, e.g. country="Australia".
  • Otherwise, the type of the element/attribute is displayed.
    • If the element/attribute's type is in the schema, a link is provided to it.
    • For local simple type definitions, the constraints are displayed in angle brackets, e.g. <<pattern = [1-9][0-9]{3}>>.
Schema Component Representation
<complexType name="AusAddress">
<complexContent>
<extension base=" Address ">
<sequence>
<element name="state" type=" AusStates "/>
<element name="postcode">
<simpleType>
<restriction base=" string ">
<pattern value="[1-9][0-9]{3}"/>
</restriction>
</simpleType>
</element>
</sequence>
<attribute name="country" type=" string " fixed="Australia"/>
</extension>
</complexContent>
</complexType>
The Schema Component Representation table above displays the underlying XML representation of the schema component. (Annotations are not shown.)
top

Glossary

Abstract (Applies to complex type definitions and element declarations). An abstract element or complex type cannot used to validate an element instance. If there is a reference to an abstract element, only element declarations that can substitute the abstract element can be used to validate the instance. For references to abstract type definitions, only derived types can be used.

All Model Group Child elements can be provided in any order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-all.

Choice Model Group Only one from the list of child elements and model groups can be provided in instances. See: http://www.w3.org/TR/xmlschema-1/#element-choice.

Collapse Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32). Then, collapse contiguous sequences of space characters into single space character, and remove leading and trailing space characters.

Disallowed Substitutions (Applies to element declarations). If substitution is specified, then substitution group members cannot be used in place of the given element declaration to validate element instances. If derivation methods, e.g. extension, restriction, are specified, then the given element declaration will not validate element instances that have types derived from the element declaration's type using the specified derivation methods. Normally, element instances can override their declaration's type by specifying an xsi:type attribute.

Key Constraint Like Uniqueness Constraint, but additionally requires that the specified value(s) must be provided. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

Key Reference Constraint Ensures that the specified value(s) must match value(s) from a Key Constraint or Uniqueness Constraint. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

Model Group Groups together element content, specifying the order in which the element content can occur and the number of times the group of element content may be repeated. See: http://www.w3.org/TR/xmlschema-1/#Model_Groups.

Nillable (Applies to element declarations). If an element declaration is nillable, instances can use the xsi:nil attribute. The xsi:nil attribute is the boolean attribute, nil, from the http://www.w3.org/2001/XMLSchema-instance namespace. If an element instance has an xsi:nil attribute set to true, it can be left empty, even though its element declaration may have required content.

Notation A notation is used to identify the format of a piece of data. Values of elements and attributes that are of type, NOTATION, must come from the names of declared notations. See: http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations.

Preserve Whitespace Policy Preserve whitespaces exactly as they appear in instances.

Prohibited Derivations (Applies to type definitions). Derivation methods that cannot be used to create sub-types from a given type definition.

Prohibited Substitutions (Applies to complex type definitions). Prevents sub-types that have been derived using the specified derivation methods from validating element instances in place of the given type definition.

Replace Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32).

Sequence Model Group Child elements and model groups must be provided in the specified order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-sequence.

Substitution Group Elements that are members of a substitution group can be used wherever the head element of the substitution group is referenced.

Substitution Group Exclusions (Applies to element declarations). Prohibits element declarations from nominating themselves as being able to substitute a given element declaration, if they have types that are derived from the original element's type using the specified derivation methods.

Target Namespace The target namespace identifies the namespace that components in this schema belongs to. If no target namespace is provided, then the schema components do not belong to any namespace.

Uniqueness Constraint Ensures uniqueness of an element/attribute value, or a combination of values, within a specified scope. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

top

Copyright © 2003-2010, The Apache Software Foundation