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/09/20 22:25:28 UTC

svn commit: r577905 [4/7] - in /geronimo/site/trunk/docs/xml: ./ ns/ ns/j2ee/

Added: geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-module-1.1.xsd
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-module-1.1.xsd?rev=577905&view=auto
==============================================================================
--- geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-module-1.1.xsd (added)
+++ geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-module-1.1.xsd Thu Sep 20 13:25:18 2007
@@ -0,0 +1,340 @@
+<?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.1"
+    xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1"
+    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:
+
+            &gt;gbeans xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1"&lt;
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:element name="module" type="sys:moduleType"/>
+
+    <xs:complexType name="moduleType">
+        <xs:sequence>
+            <xs:element ref="sys:environment"/>
+            <xs:element ref="sys:gbean" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:element name="environment" type="sys:environmentType">
+<!--    TODO figure out why this doesn't work
+        <xs:key name="name-key-key">
+            <xs:annotation>
+                <xs:documentation>
+                    name-key-key assures that key-values for the names of services in this module will
+                    have unique key names.
+                </xs:documentation>
+            </xs:annotation>
+            <xs:selector xpath="sys:name-key"/>
+            <xs:field xpath="sys:name-key/key"/>
+        </xs:key>
+-->
+    </xs:element>
+    <xs:element name="client-environment" type="sys:environmentType">
+<!--
+        <xs:annotation>
+            <xs:documentation>
+                TODO document me - am I only used by the app client builder?
+            </xs:documentation>
+        </xs:annotation>
+-->        
+    </xs:element>
+    
+    <xs:element name="server-environment" type="sys:environmentType">
+<!--
+        <xs:annotation>
+            <xs:documentation>
+                TODO document me - am I only used by the app client builder?
+            </xs:documentation>
+        </xs:annotation>
+-->
+    </xs:element>
+
+    <xs:complexType name="environmentType">
+        <xs:sequence>
+            <xs:element name="moduleId" type="sys:artifactType" minOccurs="0" >
+                <xs:annotation>
+                    <xs:documentation>
+                        "moduleId" holds elements for the groupId, artifactId, and version of the module
+                        version can be ommitted in which case a timestamp is used.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="dependencies" type="sys:dependenciesType" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        "dependences" holds all classloader and dependency information for the module
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="hidden-classes" type="sys:classFilterType" minOccurs="0">
+                <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 classes are specified in zero or more child "filter" elements
+                        where each filter element specifies a fully-qualified class name or
+                        prefix.  Essentially, any class that starts with one of the prefixes listed
+                        here will be treated as hidden.  For example, if you specify two filter elements
+                        containing "java.util" and "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" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        A list of classes which will only be loaded from parent ClassLoaders 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 classes are specified in zero or more child "filter" elements
+                        where each filter element specifies a fully-qualified class name or
+                        prefix.  Essentially, any class that starts with one of the prefixes listed
+                        here will be treated as hidden.  For example, specifying two filter elements
+                        containing "javax.servlet" and "javax.ejb" would protect some of the core 
+                        J2EE classes from being overridden.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="inverse-classloading" type="sys:emptyType" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        If the "inverse-classloading" element is specified, the standard 
+                        class loading delegation model is to be reversed for this module.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="suppress-default-environment" type="sys:emptyType" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        If the "suppress-default-environment" element is specified then any
+                        default environment build by a builder when deploying the plan will
+                        be suppressed.
+                        
+                        An example of where this is useful is when deploying a connector on an app
+                        client in a separate (standalone) module (not as part of a client plan).
+                        
+                        The connector builder defaultEnvironment includes some server modules
+                        that won't work on an app client, so you need to suppress the default 
+                        environment and supply a complete environment including all parents for a 
+                        non-app-client module you want to run on an app client
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="dependenciesType">
+        <xs:sequence>
+            <xs:element name="dependency" type="sys:dependencyType" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+                        "dependency" holds an artifact locating an artifact in a repository.
+                        Depending on the type of artifact and value of the import element, the artifact may be
+                        included in the current classpath, be loaded as a parent, may require the services
+                        in the artifact to be started, or may not be added to the classpath.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="emptyType"/>
+
+     <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" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+                        A fully-qualified class name or prefix to be filtered.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="artifactType">
+        <xs:annotation>
+            <xs:documentation><![CDATA[
+                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>
+
+          ]]></xs:documentation>
+        </xs:annotation>
+            <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>
+
+    <xs:complexType name="dependencyType">
+        <xs:complexContent>
+            <xs:extension base="sys:artifactType">
+                <xs:sequence>
+                    <xs:element name="import" type="sys:importType" minOccurs="0"/>
+                </xs:sequence>
+
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:simpleType name="importType">
+        <xs:annotation>
+            <xs:documentation><![CDATA[
+            The import element is restrictive.  The default (when omitted) is to include the specified dependency in
+            the classloader (as a parent or URL) and (if the dependency is a module) make sure it is started
+            before starting the current module.  Specifying "classes" means that the classes must be included
+            in the current module's classloader but the dependency does not need to be started. (I'm not sure this
+            is actually possible, but it is what is meant).  Specifying "services" means that the dependency (a module)
+            must be started before the current module, but it is not included as a parent classloader.
+
+            You probably never need to use the import element.
+
+          ]]></xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="classes"/>
+            <xs:enumeration value="services"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <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="name" type="xs:string" use="required"/>
+        <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="##any" 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:annotation>
+            <xs:documentation>This group contains the components of an abstract name</xs:documentation>
+        </xs:annotation>
+         <xs:sequence>
+            <xs:sequence>
+                <xs:element name="groupId" type="xs:string" minOccurs="0"/>
+                <xs:element name="artifactId" type="xs:string" minOccurs="0"/>
+                <xs:element name="version" 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" minOccurs="0"/>
+            </xs:sequence>
+        </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:element name="service" type="sys:serviceType"/>
+
+    <xs:complexType name="serviceType">
+        <xs:sequence>
+            <xs:element name="dependency" type="sys:artifactType" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+    </xs:complexType>
+
+</xs:schema>

Added: geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-module-1.2.xsd
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-module-1.2.xsd?rev=577905&view=auto
==============================================================================
--- geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-module-1.2.xsd (added)
+++ geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-module-1.2.xsd Thu Sep 20 13:25:18 2007
@@ -0,0 +1,701 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.2"
+    xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+    attributeFormDefault="unqualified">
+
+    <xs:annotation>
+        <xs:documentation>
+            This is an XML Schema Definition for Geronimo service deployment
+            plan. This deployment plan is used for deploying service modules
+            which contains non-application GBeans like thread pool, the
+            tomcat/jetty container, security manager, etc. In case the Service
+            deployment plan is provided internally in the java archive, it
+            should be named META-INF/geronimo-service.xml. In case the Service
+            deployment plan is provided externally, the deployment descriptor
+            can be named anything and provided to the deploy tool. All the
+            Service deployment plan must specify the top level element as module
+            with namespace specified as xmlns=
+            "http://geronimo.apache.org/xml/ns/j2ee/deployment-1.2". The default
+            location for this document is
+            http://geronimo.apache.org/schemas-1.2/geronimo-module-1.2.xsd.
+            Typical Geronimo Service Deployment plan will look like this:
+            <![CDATA[
+            <?xml version="1.0" encoding="UTF-8"?>
+            <module
+                xmlns="http://geronimo.apache.org/xml/ns/j2ee/deployment-1.2">
+                <environment>
+                    ...
+                </environment>
+                <gbean>
+                    ...
+                </gbean>
+            </module>
+            ]]>
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:element name="module" type="sys:moduleType">
+        <xs:annotation>
+            <xs:documentation>
+                The module element is the root element of the deployment plan
+                for the Geronimo Service module. Note that the sub-elements of
+                this element should be as in the given order in a sequence. It
+                includes two basic sections, environment section to provide
+                information like moduleName, dependencies, etc. and gbean
+                section to provide information about individual beans contained
+                in this module.
+            </xs:documentation>
+        </xs:annotation>
+    </xs:element>
+
+    <xs:complexType name="moduleType">
+        <xs:sequence>
+            <xs:element ref="sys:environment">
+                <xs:annotation>
+                    <xs:documentation>
+                        Reference to environment element defined later in this
+                        xsd.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element ref="sys:service" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+                        Reference to service element defined later in this xsd.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:element name="environment" type="sys:environmentType">
+        <xs:annotation>
+            <xs:documentation>
+                The environment element defines elements to store information
+                like moduleId, dependencies, and classloader Info for the
+                module. This element is used in all the Services and application
+                modules deployment plans.
+            </xs:documentation>
+        </xs:annotation>
+
+        <!-- TODO figure out why this doesn't work
+            <xs:key name="name-key-key">
+            <xs:annotation>
+            <xs:documentation>
+            name-key-key assures that key-values for the names of services in this module will
+            have unique key names.
+            </xs:documentation>
+            </xs:annotation>
+            <xs:selector xpath="sys:name-key"/>
+            <xs:field xpath="sys:name-key/key"/>
+            </xs:key>
+        -->
+
+    </xs:element>
+    <xs:element name="client-environment" type="sys:environmentType">
+        <xs:annotation>
+            <xs:documentation>
+                The client-environment element is used only by Application
+                Client modules to provide client module environment setting. It
+                defines elements to store information like moduleId,
+                dependencies, and classloader Info for the client-side
+                application module. This information is used to identify the
+                module in the client container only and it should not be
+                directly used by deployment process.
+            </xs:documentation>
+        </xs:annotation>
+    </xs:element>
+
+    <xs:element name="server-environment" type="sys:environmentType">
+        <xs:annotation>
+            <xs:documentation>
+                The server-environment element is used only by Application
+                Client modules to define server side module environment
+                settings. It defines elements to store information like
+                moduleId, dependencies, and classloader Info for the server-side
+                of client application module. This information is used to
+                identify the module in the server environment only.
+            </xs:documentation>
+        </xs:annotation>
+    </xs:element>
+
+    <xs:complexType name="environmentType">
+        <xs:sequence>
+            <xs:element name="moduleId" type="sys:artifactType" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        "moduleId" holds elements for the groupId, artifactId,
+                        and version of the module version can be ommitted in
+                        which case a timestamp is used. Module IDs are normally
+                        printed with slashes between the four components, such
+                        as GroupID/ArtifactID/Version/Type.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="dependencies" type="sys:dependenciesType"
+                minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        "dependencies" holds all classloader and dependency
+                        information for the module
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="hidden-classes" type="sys:classFilterType"
+                minOccurs="0">
+                <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 classes are specified in zero or more child "filter"
+                        elements where each filter element specifies a
+                        fully-qualified class name or prefix. Essentially, any
+                        class that starts with one of the prefixes listed here
+                        will be treated as hidden. For example, if you specify
+                        two filter elements containing "java.util" and
+                        "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" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        A list of classes which will only be loaded from parent
+                        ClassLoaders 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 classes are specified in zero or more child "filter"
+                        elements where each filter element specifies a
+                        fully-qualified class name or prefix. Essentially, any
+                        class that starts with one of the prefixes listed here
+                        will be treated as hidden. For example, specifying two
+                        filter elements containing "javax.servlet" and
+                        "javax.ejb" would protect some of the core J2EE classes
+                        from being overridden.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="inverse-classloading" type="sys:emptyType"
+                minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        If the "inverse-classloading" element is specified, the
+                        standard class loading delegation model is to be
+                        reversed for this module.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="suppress-default-environment" type="sys:emptyType"
+                minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        If the "suppress-default-environment" element is
+                        specified then any default environment build by a
+                        builder when deploying the plan will be suppressed.
+
+                        An example of where this is useful is when deploying a
+                        connector on an app client in a separate (standalone)
+                        module (not as part of a client plan).
+
+                        The connector builder defaultEnvironment includes some
+                        server modules that won't work on an app client, so you
+                        need to suppress the default environment and supply a
+                        complete environment including all parents for a
+                        non-app-client module you want to run on an app client
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:element name="dependencies" type="sys:dependenciesType" />
+
+    <xs:complexType name="dependenciesType">
+        <xs:sequence>
+            <xs:element name="dependency" type="sys:dependencyType"
+                minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+                        "dependency" holds an artifact locating an artifact in a
+                        repository. Depending on the type of artifact and value
+                        of the import element, the artifact may be included in
+                        the current classpath, be loaded as a parent, may
+                        require the services in the artifact to be started, or
+                        may not be added to the classpath.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="emptyType" />
+
+    <xs:element name="service" type="sys:abstract-serviceType">
+        <xs:annotation>
+            <xs:documentation>
+                An empty generic element to be extended by gbean and other
+                module types.
+            </xs:documentation>
+        </xs:annotation>
+    </xs:element>
+
+    <xs:complexType name="abstract-serviceType" abstract="true">
+        <xs:sequence></xs:sequence>
+    </xs:complexType>
+
+    <xs:element name="gbean" type="sys:gbeanType"
+        substitutionGroup="sys:service">
+        <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" minOccurs="0"
+                maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+                        A fully-qualified class name or prefix to be filtered.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="artifactType">
+        <xs:annotation>
+            <xs:documentation>
+                <![CDATA[
+                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>
+	            ]]>
+            </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <!-- TODO not sure if groupId can in fact be optional -->
+            <xs:element name="groupId" type="xs:string" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        The name for group containing this module. By default,
+                        it is considered 'default' for declaration and wild card
+                        '*' for dependencies.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="artifactId" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        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.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="version" type="xs:string" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        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.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+            <xs:element name="type" type="xs:string" minOccurs="0">
+                <xs:annotation>
+                    <xs:documentation>
+                        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.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="dependencyType">
+        <xs:complexContent>
+            <xs:extension base="sys:artifactType">
+                <xs:annotation>
+                    <xs:documentation>
+                        DependencyType includes all the elements defined in
+                        artifactType.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:sequence>
+                    <xs:element name="import" type="sys:importType"
+                        minOccurs="0">
+                        <xs:annotation>
+                            <xs:documentation>
+                                The import element is restrictive element to
+                                defined type of dependency. The default (when
+                                omitted) is to include the specified dependency
+                                in the classloader (as a parent or URL). If
+                                defined as "classes" means that the classes must
+                                be included in the current module's classloader
+                                but the dependency does not need to be started.
+                                Specifying "services" means that the dependency
+                                (a module) must be started before the current
+                                module, but it is not included as a parent
+                                classloader.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:sequence>
+
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:simpleType name="importType">
+        <xs:annotation>
+            <xs:documentation>
+                <![CDATA[
+            The import element is restrictive.  The default (when omitted) is to include the specified dependency in
+            the classloader (as a parent or URL) and (if the dependency is a module) make sure it is started
+            before starting the current module.  Specifying "classes" means that the classes must be included
+            in the current module's classloader but the dependency does not need to be started. (I'm not sure this
+            is actually possible, but it is what is meant).  Specifying "services" means that the dependency (a module)
+            must be started before the current module, but it is not included as a parent classloader.
+
+            You probably never need to use the import element.
+                ]]>
+            </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="classes">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value "classes" means that the classes must be
+                        included in the current module's classloader but the
+                        dependency does not need to be started.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="services">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value "services" means that the dependency (a
+                        module) must be started before the current module, but
+                        it is not included as a parent classloader.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:complexType name="gbeanType">
+        <xs:complexContent>
+            <xs:extension base="sys:abstract-serviceType">
+                <xs:annotation>
+                    <xs:documentation>
+                        gbeanType includes all the elements defined in
+                        abstract-serviceType.
+                    </xs:documentation>
+                </xs:annotation>
+
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element name="attribute" type="sys:attributeType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                The attribute provide the name-value pair of
+                                various attributes for this GBean. The value of
+                                the attributes is specified by value of this
+                                element.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="xml-attribute"
+                        type="sys:xml-attributeType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                The xml-attribute specifies the value of
+                                particular attribute in XML format, which will
+                                be interpreted by a component running in the
+                                system, which convert it to single value for
+                                this attribute.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="reference" type="sys:referenceType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                The "reference" element specifies the value of a
+                                particular reference for this GBean in simplest
+                                form. It holds the reference to the GBean that
+                                matches the single pattern specified here, if no
+                                value is specified it will refer to all the
+                                matching GBeans.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="references" type="sys:referencesType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                The "references" element specifies the value of
+                                a particular reference for this GBean matching
+                                multiple pattern elements.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="xml-reference"
+                        type="sys:xml-attributeType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                The xml-reference specifies the value of
+                                particular reference in XML format, which will
+                                be interpreted by a component running in the
+                                system, which convert it to single value for
+                                this reference.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element name="dependency" type="sys:patternType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                The element "dependency" is used to resolve
+                                dependencies at GBean level. This is normally
+                                only used if for some reason the GBeans within a
+                                module must be started in a certain order that
+                                is not reflected in the references between them.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                </xs:choice>
+                <xs:attribute name="name" type="xs:string" use="required">
+                    <xs:annotation>
+                        <xs:documentation>
+                            A unique name for this GBean within this module,
+                            this name will be used as a name component in
+                            AbstractName, hence AbstractName will be unique
+                            server wide.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="class" type="xs:string" use="required">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The fully-qualified name of the class containing the
+                            GBeanInfo for this GBean.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <xs:complexType name="attributeType">
+        <xs:simpleContent>
+            <xs:extension base="xs:string">
+                <xs:attribute name="name" type="xs:string">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The name for the current attribute. This name should
+                            be same as specified in GBeanInfo for this GBean.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="type" type="xs:string">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The type of the current attribute. Again this should
+                            be same as one provided in GBeanInfo hence optional.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+
+    <xs:complexType name="xml-attributeType">
+        <xs:sequence>
+            <xs:any namespace="##any" processContents="lax" />
+        </xs:sequence>
+        <xs:attribute name="name" type="xs:string">
+            <xs:annotation>
+                <xs:documentation>
+                    The name for the current attribute. This name should be same
+                    as specified in GBeanInfo for this GBean.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+
+    <xs:complexType name="referencesType">
+        <xs:sequence>
+            <xs:element name="pattern" type="sys:patternType" minOccurs="1"
+                maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+                        The pattern used for matching the referenced GBean.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:element>
+        </xs:sequence>
+        <xs:attribute name="name" type="xs:string">
+            <xs:annotation>
+                <xs:documentation>
+                    The name for the current reference. This name should be same
+                    as specified in GBeanInfo for this GBean.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+    </xs:complexType>
+
+    <xs:complexType name="patternType">
+        <xs:annotation>
+            <xs:documentation>
+                This group contains the components of an abstract name
+            </xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:sequence>
+                <xs:element name="groupId" type="xs:string" minOccurs="0">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The name for group containing module to match. By
+                            default is it considered wild card '*'.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element name="artifactId" type="xs:string" minOccurs="0">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The name for module in a specified group to be
+                            matched.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element name="version" type="xs:string" minOccurs="0">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The version number for the module formatted by dot
+                            separated numbers. If no version is provided it will
+                            be defaulted latest available version matching other
+                            criterions.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element name="module" type="xs:string" minOccurs="0">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The value specified here should match the file name
+                            of the module referenced.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element name="type" type="xs:string" minOccurs="0">
+                    <xs:annotation>
+                        <xs:documentation>
+                            This element defines the type of the module to be
+                            matched. The type could be 'CAR', 'JAR', EAR',
+                            'WAR', etc. If no type is provided it will be
+                            defaulted wild card char '*'.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element name="name" type="xs:string" minOccurs="0">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The name element to identify the referenced GBean by
+                            name.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:sequence>
+        </xs:sequence>
+    </xs:complexType>
+
+    <xs:complexType name="referenceType">
+        <xs:complexContent>
+            <xs:extension base="sys:patternType">
+                <xs:annotation>
+                    <xs:documentation>
+                        referenceType includes all the elements defined in
+                        patternType.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:attribute name="name" type="xs:string">
+                    <xs:annotation>
+                        <xs:documentation>
+                            The name for the current reference. This name should
+                            be same as specified in GBeanInfo for this GBean.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+
+    <!--<xs:element name="service" type="sys:serviceType"/>-->
+    <!--<xs:complexType name="serviceType">-->
+    <!--<xs:sequence>-->
+    <!--<xs:element name="dependency" type="sys:artifactType" minOccurs="0" maxOccurs="unbounded"/>-->
+    <!--</xs:sequence>-->
+    <!--</xs:complexType>-->
+
+</xs:schema>

Added: geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-naming-1.0.xsd
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-naming-1.0.xsd?rev=577905&view=auto
==============================================================================
--- geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-naming-1.0.xsd (added)
+++ geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-naming-1.0.xsd Thu Sep 20 13:25:18 2007
@@ -0,0 +1,280 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright 2004-2005 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.
+-->
+
+<xsd:schema
+    targetNamespace="http://geronimo.apache.org/xml/ns/naming-1.0"
+    xmlns:gernaming="http://geronimo.apache.org/xml/ns/naming-1.0"
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+    elementFormDefault="qualified"
+    attributeFormDefault="unqualified"
+    version="1.0">
+
+    <xsd:annotation>
+        <xsd:documentation>
+            <![CDATA[
+            Partial schema containing common naming elements which can be included in other schemas.
+            ]]>
+        </xsd:documentation>
+    </xsd:annotation>
+
+
+    <xsd:element name="ejb-ref" type="gernaming:ejb-refType"/>
+    <!--    <xsd:element name="ejb-local-ref" type="gernaming:ejb-local-refType"/>-->
+    <xsd:element name="service-ref" type="gernaming:service-refType"/>
+    <xsd:element name="resource-ref" type="gernaming:resource-refType"/>
+    <xsd:element name="resource-env-ref" type="gernaming:resource-env-refType"/>
+
+    <xsd:element name="message-destination" type="gernaming:message-destinationType"/>
+
+    <xsd:group name="jndiEnvironmentRefsGroup">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                This group keeps the usage of the contained JNDI environment
+                reference elements consistent across J2EE deployment descriptors.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="gbean-ref" type="gernaming:gbean-refType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="ejb-ref" type="gernaming:ejb-refType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="ejb-local-ref" type="gernaming:ejb-local-refType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="service-ref" type="gernaming:service-refType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="resource-ref" type="gernaming:resource-refType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="resource-env-ref" type="gernaming:resource-env-refType" minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+    </xsd:group>
+
+    <!--target-name is the entire object name of the gbean to get the bound object from by calling $getResource-->
+    <!--ejb-link acts like ejb-link in spec descriptors-->
+    <!--resource-link contains the name of the outbound-connectionfactory-instance -->
+    <!--message-destination-link acts like message-destination-link in spec descriptors-->
+    <!--url in resource-ref contains the url for URL typed resource refs-->
+    <!--Possibly the external-uri element should be revived to connect to other naming systems-->
+    <!--when server to server communication exists we will need an element in ejb-ref to specify the geronimo server
+    we wish to talk to.  It might be possible to use the objectName server element for this depending on what we decide it means-->
+    <!--otherwise you can supply the entire object name using the objectNameGroup-->
+
+    <xsd:complexType name="ejb-refType">
+        <xsd:sequence>
+            <xsd:element name="ref-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:group ref="gernaming:objectNameGroup"/>
+                <xsd:group ref="gernaming:corbaNameGroup"/>
+                <xsd:element name="ejb-link" type="xsd:string"/>
+                <xsd:element name="target-name" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="ejb-local-refType">
+        <xsd:sequence>
+            <xsd:element name="ref-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:group ref="gernaming:objectNameGroup"/>
+                <xsd:element name="ejb-link" type="xsd:string"/>
+                <xsd:element name="target-name" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="resource-refType">
+        <xsd:sequence>
+            <xsd:element name="ref-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:group ref="gernaming:objectNameGroup"/>
+                <xsd:element name="resource-link" type="xsd:string"/>
+                <xsd:element name="target-name" type="xsd:string"/>
+                <xsd:element name="url" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="gbean-refType">
+        <xsd:sequence>
+            <xsd:element name="ref-name" type="xsd:string"/>
+            <xsd:element name="ref-type" type="xsd:string"/>
+            <xsd:element name="proxy-type" type="xsd:string" minOccurs="0"/>
+            <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                <xsd:group ref="gernaming:objectNameGroup"/>
+                <xsd:element name="target-name" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <!--used by openejb cmp datasource specification -->
+    <xsd:element name="cmp-connection-factory" type="gernaming:resource-locatorType"/>
+
+    <!--used by openejb mdb resource adapter specification -->
+    <xsd:element name="resource-adapter" type="gernaming:resource-locatorType"/>
+
+    <xsd:complexType name="resource-locatorType">
+        <xsd:sequence>
+            <xsd:choice>
+                <xsd:group ref="gernaming:objectNameGroup"/>
+                <xsd:element name="resource-link" type="xsd:string"/>
+                <xsd:element name="target-name" type="xsd:string"/>
+                <xsd:element name="url" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="resource-env-refType">
+        <xsd:sequence>
+            <xsd:element name="ref-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:group ref="gernaming:objectNameGroup"/>
+                <xsd:element name="message-destination-link" type="xsd:string"/>
+                <xsd:sequence>
+                    <xsd:element name="admin-object-module" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="admin-object-link" type="xsd:string"/>
+                </xsd:sequence>
+                <xsd:element name="target-name" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="message-destinationType">
+        <xsd:sequence>
+            <xsd:element name="message-destination-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:group ref="gernaming:objectNameGroup"/>
+                <xsd:sequence>
+                    <xsd:element name="admin-object-module" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="admin-object-link" type="xsd:string"/>
+                </xsd:sequence>
+                <xsd:element name="target-name" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <!--used by resource adapter -->
+    <xsd:element name="workmanager" type="gernaming:gbean-locatorType"/>
+
+    <xsd:complexType name="gbean-locatorType">
+        <xsd:sequence>
+            <xsd:choice>
+                <xsd:group ref="gernaming:objectNameGroup"/>
+                <xsd:element name="gbean-link" type="xsd:string"/>
+                <xsd:element name="target-name" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:group name="objectNameGroup">
+        <xsd:annotation>
+            <xsd:documentation>This group contains the components of a jsr-77 object name</xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="domain" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="server" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="application" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="module" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="type" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="name" type="xsd:string"/>
+        </xsd:sequence>
+    </xsd:group>
+
+    <xsd:group name="serverGroup">
+        <xsd:annotation>
+            <xsd:documentation>This group contains the protocol, address, and port for a server</xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="protocol" type="xsd:string"/>
+            <xsd:element name="host" type="xsd:string"/>
+            <xsd:element name="port" type="xsd:int"/>
+        </xsd:sequence>
+    </xsd:group>
+
+    <xsd:complexType name="portType">
+        <xsd:sequence>
+            <xsd:element name="port-name" type="xsd:string"/>
+            <xsd:group ref="gernaming:serverGroup" minOccurs="0"/>
+            <xsd:element name="uri" type="xsd:string"/>
+            <xsd:element name="credentials-name" type="xsd:string" minOccurs="0"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="service-refType">
+        <xsd:sequence>
+            <xsd:element name="service-ref-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:element name="service-completion" type="gernaming:service-completionType"/>
+                <xsd:element name="port" type="gernaming:portType" maxOccurs="unbounded"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="service-completionType">
+        <xsd:sequence>
+            <xsd:element name="service-name" type="xsd:string"/>
+            <xsd:element name="port-completion" type="gernaming:port-completionType" maxOccurs="unbounded"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="port-completionType">
+        <xsd:sequence>
+            <xsd:element name="port" type="gernaming:portType"/>
+            <xsd:element name="binding-name" type="xsd:string"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:group name="corbaNameGroup">
+        <xsd:annotation>
+            <xsd:documentation>
+                This group contains the location of the CORBA name server, the
+                name, and the client security server used to make interop calls.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="ns-corbaloc" type="xsd:anyURI">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The corbaloc used to access the CORBA name server.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="name" type="xsd:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The name of the object in the name server.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:choice>
+                <xsd:element name="css" type="gernaming:cssType"/>
+                <xsd:element name="css-link" type="xsd:string"/>
+                <xsd:element name="css-name" type="xsd:string">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                        The GBean name of the client security server used to make interop calls.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:group>
+
+    <xsd:complexType name="cssType">
+        <xsd:sequence>
+            <!-- todo type is not relevant -->
+            <xsd:group ref="gernaming:objectNameGroup"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+</xsd:schema>

Added: geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-naming-1.1.xsd
URL: http://svn.apache.org/viewvc/geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-naming-1.1.xsd?rev=577905&view=auto
==============================================================================
--- geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-naming-1.1.xsd (added)
+++ geronimo/site/trunk/docs/xml/ns/j2ee/geronimo-naming-1.1.xsd Thu Sep 20 13:25:18 2007
@@ -0,0 +1,274 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright 2004-2005 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.
+-->
+
+<xsd:schema
+        targetNamespace="http://geronimo.apache.org/xml/ns/naming-1.1"
+        xmlns:gernaming="http://geronimo.apache.org/xml/ns/naming-1.1"
+        xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1"
+        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+        elementFormDefault="qualified"
+        attributeFormDefault="unqualified"
+        version="1.0">
+
+    <xsd:import namespace="http://geronimo.apache.org/xml/ns/deployment-1.1" schemaLocation="geronimo-module-1.1.xsd"/>
+
+    <xsd:annotation>
+        <xsd:documentation>
+            <![CDATA[
+            Partial schema containing common naming elements which can be included in other schemas.
+            ]]>
+        </xsd:documentation>
+    </xsd:annotation>
+
+
+    <xsd:element name="gbean-ref" type="gernaming:gbean-refType"/>
+    <xsd:element name="ejb-ref" type="gernaming:ejb-refType"/>
+    <!--    <xsd:element name="ejb-local-ref" type="gernaming:ejb-local-refType"/>-->
+    <xsd:element name="service-ref" type="gernaming:service-refType"/>
+    <xsd:element name="resource-ref" type="gernaming:resource-refType"/>
+    <xsd:element name="resource-env-ref" type="gernaming:resource-env-refType"/>
+
+    <xsd:element name="message-destination" type="gernaming:message-destinationType"/>
+
+    <xsd:group name="jndiEnvironmentRefsGroup">
+        <xsd:annotation>
+            <xsd:documentation>
+
+                This group keeps the usage of the contained JNDI environment
+                reference elements consistent across J2EE deployment descriptors.
+
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="gbean-ref" type="gernaming:gbean-refType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="ejb-ref" type="gernaming:ejb-refType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="ejb-local-ref" type="gernaming:ejb-local-refType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="service-ref" type="gernaming:service-refType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="resource-ref" type="gernaming:resource-refType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="resource-env-ref" type="gernaming:resource-env-refType" minOccurs="0"
+                         maxOccurs="unbounded"/>
+        </xsd:sequence>
+    </xsd:group>
+
+    <!--ejb-link acts like ejb-link in spec descriptors-->
+    <!--resource-link contains the name of the outbound-connectionfactory-instance -->
+    <!--message-destination-link acts like message-destination-link in spec descriptors-->
+    <!--url in resource-ref contains the url for URL typed resource refs-->
+    <!--Possibly the external-uri element should be revived to connect to other naming systems-->
+    <!--when server to server communication exists we will need an element in ejb-ref to specify the geronimo server
+    we wish to talk to.  It might be possible to use the objectName server element for this depending on what we decide it means-->
+    <!--otherwise you can supply the entire object name using the gbean-nameGroup-->
+
+    <xsd:complexType name="ejb-refType">
+        <xsd:sequence>
+            <xsd:element name="ref-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:element name="pattern" type="gernaming:patternType"/>
+                <xsd:group ref="gernaming:corbaNameGroup"/>
+                <xsd:element name="ejb-link" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="ejb-local-refType">
+        <xsd:sequence>
+            <xsd:element name="ref-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:element name="pattern" type="gernaming:patternType"/>
+                <xsd:element name="ejb-link" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="resource-refType">
+        <xsd:sequence>
+            <xsd:element name="ref-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:element name="pattern" type="gernaming:patternType"/>
+                <xsd:element name="resource-link" type="xsd:string"/>
+                <xsd:element name="url" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="gbean-refType">
+        <xsd:sequence>
+            <xsd:element name="ref-name" type="xsd:string"/>
+            <xsd:element name="ref-type" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:choice minOccurs="0" maxOccurs="unbounded">
+                <xsd:element name="pattern" type="gernaming:patternType"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <!--used by openejb cmp datasource specification -->
+    <xsd:element name="cmp-connection-factory" type="gernaming:resource-locatorType"/>
+
+    <!--used by openejb mdb resource adapter specification -->
+    <xsd:element name="resource-adapter" type="gernaming:resource-locatorType"/>
+
+    <xsd:complexType name="resource-locatorType">
+        <xsd:sequence>
+            <xsd:choice>
+                <xsd:element name="pattern" type="gernaming:patternType"/>
+                <xsd:element name="resource-link" type="xsd:string"/>
+                <xsd:element name="url" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="resource-env-refType">
+        <xsd:sequence>
+            <xsd:element name="ref-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:element name="pattern" type="gernaming:patternType"/>
+                <xsd:element name="message-destination-link" type="xsd:string">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            This element is deprecated and should not be used. Use admin-object-link instead.
+                            That is effectively a renamed version of this.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
+                <xsd:sequence>
+                    <xsd:element name="admin-object-module" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="admin-object-link" type="xsd:string"/>
+                </xsd:sequence>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="message-destinationType">
+        <xsd:sequence>
+            <xsd:element name="message-destination-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:element name="pattern" type="gernaming:patternType"/>
+                <xsd:sequence>
+                    <xsd:element name="admin-object-module" type="xsd:string" minOccurs="0"/>
+                    <xsd:element name="admin-object-link" type="xsd:string"/>
+                </xsd:sequence>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <!--used by resource adapter -->
+    <xsd:element name="workmanager" type="gernaming:gbean-locatorType"/>
+
+    <!-- used by web apps/builders-->
+    <xsd:element name="web-container" type="gernaming:gbean-locatorType"/>
+
+    <xsd:complexType name="gbean-locatorType">
+        <xsd:sequence>
+            <xsd:choice>
+                <xsd:element name="pattern" type="gernaming:patternType"/>
+                <xsd:element name="gbean-link" type="xsd:string"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="patternType">
+        <xsd:sequence>
+            <xsd:element name="groupId" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="artifactId" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="version" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="module" type="xsd:string" minOccurs="0"/>
+            <xsd:element name="name" type="xsd:string"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:group name="serverGroup">
+        <xsd:annotation>
+            <xsd:documentation>This group contains the protocol, address, and port for a server</xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="protocol" type="xsd:string"/>
+            <xsd:element name="host" type="xsd:string"/>
+            <xsd:element name="port" type="xsd:int"/>
+        </xsd:sequence>
+    </xsd:group>
+
+    <xsd:complexType name="portType">
+        <xsd:sequence>
+            <xsd:element name="port-name" type="xsd:string"/>
+            <xsd:group ref="gernaming:serverGroup" minOccurs="0"/>
+            <xsd:element name="uri" type="xsd:string"/>
+            <xsd:element name="credentials-name" type="xsd:string" minOccurs="0"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="service-refType">
+        <xsd:sequence>
+            <xsd:element name="service-ref-name" type="xsd:string"/>
+            <xsd:choice>
+                <xsd:element name="service-completion" type="gernaming:service-completionType"/>
+                <xsd:element name="port" type="gernaming:portType" maxOccurs="unbounded"/>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="service-completionType">
+        <xsd:sequence>
+            <xsd:element name="service-name" type="xsd:string"/>
+            <xsd:element name="port-completion" type="gernaming:port-completionType" maxOccurs="unbounded"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="port-completionType">
+        <xsd:sequence>
+            <xsd:element name="port" type="gernaming:portType"/>
+            <xsd:element name="binding-name" type="xsd:string"/>
+        </xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:group name="corbaNameGroup">
+        <xsd:annotation>
+            <xsd:documentation>
+                This group contains the location of the CORBA name server, the
+                name, and the client security server used to make interop calls.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="ns-corbaloc" type="xsd:anyURI">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The corbaloc used to access the CORBA name server.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="name" type="xsd:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The name of the object in the name server.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:choice>
+                <xsd:element name="css" type="gernaming:patternType"/>
+                <xsd:element name="css-link" type="xsd:string"/>
+                <xsd:element name="css-name" type="xsd:string">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            The GBean name of the client security server used to make interop calls.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
+            </xsd:choice>
+        </xsd:sequence>
+    </xsd:group>
+
+</xsd:schema>