You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by hc...@apache.org on 2007/10/01 16:40:52 UTC
svn commit: r580977 - in /geronimo/site/trunk/docs/xml/ns:
geronimo-config-1.0.xsd j2ee/geronimo-config-1.0.xsd
Author: hcunico
Date: Mon Oct 1 07:40:51 2007
New Revision: 580977
URL: http://svn.apache.org/viewvc?rev=580977&view=rev
Log:
reorganizing xml schemas
Added:
geronimo/site/trunk/docs/xml/ns/geronimo-config-1.0.xsd
Removed:
geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-config-1.0.xsd
Added: geronimo/site/trunk/docs/xml/ns/geronimo-config-1.0.xsd
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/docs/xml/ns/geronimo-config-1.0.xsd?rev=580977&view=auto
==============================================================================
--- geronimo/site/trunk/docs/xml/ns/geronimo-config-1.0.xsd (added)
+++ geronimo/site/trunk/docs/xml/ns/geronimo-config-1.0.xsd Mon Oct 1 07:40:51 2007
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright 2004 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<xs:schema
+ targetNamespace="http://geronimo.apache.org/xml/ns/deployment-1.0"
+ xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.0"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"
+ >
+ <xs:annotation>
+ <xs:documentation>
+ Schema for Geronimo Services deployment plans.
+ Instance documents should begin with the element:
+
+ >gbeans xmlns="http://geronimo.apache.org/xml/ns/deployment-1.0"<
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="configuration" type="sys:configurationType"/>
+
+ <xs:complexType name="configurationType">
+ <xs:sequence>
+ <xs:group ref="sys:classloader-include-infoGroup"/>
+ <xs:element ref="sys:gbean" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="configId" type="xs:string" use="required"/>
+ <xs:attribute name="parentId" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation>
+ You are required to specify either parentId or both domain and server. domain and server form
+ the domain and J2EEServer key for gbeans in this configuration and any descendant configurations.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="domain" type="xs:string" use="optional"/>
+ <xs:attribute name="server" type="xs:string" use="optional"/>
+ <xs:attribute name="inverseClassloading" type="xs:boolean" use="optional"/>
+ </xs:complexType>
+
+ <xs:group name="classloader-infoGroup">
+ <xs:sequence>
+ <xs:element ref="sys:import" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="sys:dependency" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="sys:hidden-classes" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="sys:non-overridable-classes" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="classloader-include-infoGroup">
+ <xs:sequence>
+ <xs:element ref="sys:import" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="sys:include" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="sys:dependency" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="sys:hidden-classes" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element ref="sys:non-overridable-classes" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:group>
+
+ <xs:element name="import" type="sys:dependencyType">
+ <xs:annotation>
+ <xs:documentation>
+ "import" holds a URI, where the URI matches the configId of another configuration.
+ That configuration will be added as a parent of this configuration (the main
+ impact being that it's ClassLoader will be a parent of the ClassLoader for this
+ configuration.
+
+ Generally this URI will have the Maven form (groupId/artifactId/version/type),
+ and you can also use the sub-elements (groupId, type, ...) accordingly.
+ However, if you deploy a custom module with a simple configId like "Foo",
+ you can use that as the URI value here, and in that case you could not use the
+ subelements because you wouldn't have values for all of them.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="include" type="sys:dependencyType">
+ <xs:annotation>
+ <xs:documentation>
+ "include" holds a URI, where the URI identifies an entry in the server's Repository.
+ When this module is being built, the content of that repository entry will be
+ copied into this module and added to the ClassPath of this module. This is
+ currently only supported for a small number of module types, and is typically used
+ to create more "standalone" modules that don't need a populated repository to run.
+
+ This URI must always have a form acceptable to the Repository, which currently
+ takes Maven-style URIs (groupId/artifactId/version/type). You can also use the
+ sub-elements (groupId, type, ...) instead of a full URI.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="dependency" type="sys:dependencyType">
+ <xs:annotation>
+ <xs:documentation>
+ "dependency" holds a URI, where the URI identifies an entry in the server's
+ Repository. That repository entry will be added to the ClassPath of this module.
+ Essentially, this module's ClassPath points to that location in the server's
+ repository, so that entry must be in the repository at runtime for this to work.
+
+ This URI must always have a form acceptable to the Repository, which currently
+ takes Maven-style URIs (groupId/artifactId/version/type). You can also use the
+ sub-elements (groupId, type, ...) instead of a full URI.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="hidden-classes" type="sys:classFilterType">
+ <xs:annotation>
+ <xs:documentation>
+ A list of classes which will never be loaded from parent ClassLoaders of this
+ module. For example, if Log4J was listed here, the module would never see
+ Geronimo's copy of Log4J. If the module provided it's own Log4J JAR it would
+ use that, otherwise it would not be able to load Log4J at all.
+
+ The form of this is a comma-separated list of fully-qualified class names or
+ prefixes. Essentially, any class that starts with one of the prefixes listed
+ here will be treated as hidden. For example, if you set this value to
+ "java.util,java.lang" then you would really screw up your application. :)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="non-overridable-classes" type="sys:classFilterType">
+ <xs:annotation>
+ <xs:documentation>
+ A list of classes which will only be loaded from parent ClassLodaers of this
+ module (never from the module's own ClassLoader). For example, this is used
+ to prevent a web application from redefining "javax.servlet", so those
+ classes will *always* be loaded from the server instead of from the web
+ web application's own ClassPath.
+
+ The form of this is a comma-separated list of fully-qualified class names or
+ prefixes. Essentially, any class that starts with one of the prefixes listed
+ here will be treated as hidden. For example, setting this to
+ "javax.servlet,javax.ejb" would protect some of the core J2EE classes from
+ being overridden.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="gbean" type="sys:gbeanType">
+ <xs:annotation>
+ <xs:documentation>
+ Adds a new custom component to the server. The component will be deployed
+ when this application module is deployed, but it is not in any way protected,
+ so once it is up and running, other modules can refer to it normally.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
+ <xs:complexType name="classFilterType">
+ <xs:sequence>
+ <xs:element name="filter" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="dependencyType">
+ <xs:annotation>
+ <xs:documentation><![CDATA[
+ Refers to either another module (aka configuration) 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/configuration, the URI should match the
+ module's configId. For standard Geronimo configurations, this also looks
+ like a Maven-style URI discussed above. However, user-deployed applications
+ or configurations can use arbitrary URIs like "Foo".
+
+ The dependencyType 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. Therefore, if you are pointing to a module with a
+ non-Maven-style configId, you can't use the maven fragments since you
+ wouldn't have something to specify for all of them.
+
+ For example, two ways to map the URI listed above would be:
+ 1.
+ <uri>postgresql/postgresql-8.0-jdbc/313/jar</uri>
+ 2.
+ <groupId>postgresql</groupId>
+ <type>jar</type>
+ <artifactId>postgresql-8.0-jdbc</artifactId>
+ <version>313</version>
+
+ ]]></xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:sequence>
+ <xs:element name="groupId" type="xs:string"/>
+ <xs:element name="type" type="xs:string" minOccurs="0"/>
+ <xs:element name="artifactId" type="xs:string"/>
+ <xs:element name="version" type="xs:string"/>
+ </xs:sequence>
+ <xs:element name="uri" type="xs:string"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="gbeanType">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="attribute" type="sys:attributeType"/>
+ <xs:element name="xml-attribute" type="sys:xml-attributeType"/>
+ <xs:element name="reference" type="sys:referenceType"/>
+ <xs:element name="references" type="sys:referencesType"/>
+ <xs:element name="xml-reference" type="sys:xml-attributeType"/>
+ <xs:element name="dependency" type="sys:patternType"/>
+ </xs:choice>
+ <xs:attribute name="gbeanName" type="xs:string"/>
+ <xs:attribute name="name" type="xs:string"/>
+ <xs:attribute name="class" type="xs:string" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="attributeType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="name" type="xs:string"/>
+ <xs:attribute name="type" type="xs:string"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <xs:complexType name="xml-attributeType">
+ <xs:sequence>
+ <xs:any namespace="##other" processContents="lax"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string"/>
+ </xs:complexType>
+
+ <xs:complexType name="referencesType">
+ <xs:sequence>
+ <xs:element name="pattern" type="sys:patternType" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="name" type="xs:string"/>
+ </xs:complexType>
+
+ <xs:complexType name="patternType">
+ <xs:sequence>
+ <xs:group ref="sys:gbean-nameGroup"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="referenceType">
+ <xs:complexContent>
+ <xs:extension base="sys:patternType">
+ <xs:attribute name="name" type="xs:string"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:group name="gbean-nameGroup">
+ <xs:annotation>
+ <xs:documentation>This group contains the components of a jsr-77 object name</xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:sequence>
+ <xs:element name="domain" type="xs:string" minOccurs="0"/>
+ <xs:element name="server" type="xs:string" minOccurs="0"/>
+ <xs:element name="application" type="xs:string" minOccurs="0"/>
+ <xs:element name="moduleType" type="xs:string" minOccurs="0"/>
+ <xs:element name="module" type="xs:string" minOccurs="0"/>
+ <xs:element name="type" type="xs:string" minOccurs="0"/>
+ <xs:element name="name" type="xs:string"/>
+ </xs:sequence>
+ <xs:element name="gbean-name" type="xs:string"/>
+ </xs:choice>
+ </xs:group>
+
+ <xs:element name="service" type="sys:serviceType"/>
+
+ <xs:complexType name="serviceType">
+ <xs:sequence>
+ <xs:element name="dependency" type="sys:dependencyType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>