geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ccard...@apache.org
Subject svn commit: r511458 [3/5] - in /geronimo/server/trunk/modules: geronimo-client-builder/src/main/schema/ geronimo-connector-builder/src/main/schema/ geronimo-j2ee-builder/src/main/schema/ geronimo-jetty6-builder/src/main/schema/ geronimo-naming-builder/...
Date Sun, 25 Feb 2007 06:29:16 GMT
Modified: geronimo/server/trunk/modules/geronimo-security-builder/src/main/schema/geronimo-login-config-1.2.xsd
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-security-builder/src/main/schema/geronimo-login-config-1.2.xsd?view=diff&rev=511458&r1=511457&r2=511458
==============================================================================
--- geronimo/server/trunk/modules/geronimo-security-builder/src/main/schema/geronimo-login-config-1.2.xsd (original)
+++ geronimo/server/trunk/modules/geronimo-security-builder/src/main/schema/geronimo-login-config-1.2.xsd Sat Feb 24 22:29:15 2007
@@ -1,15 +1,14 @@
 <?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
-
+    
+        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.
@@ -19,44 +18,141 @@
 
 <!-- $Rev$ $Date$ -->
 
-<xsd:schema
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
     xmlns:geronimo="http://geronimo.apache.org/xml/ns/loginconfig-1.2"
     targetNamespace="http://geronimo.apache.org/xml/ns/loginconfig-1.2"
     xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"
-    elementFormDefault="qualified"
-    attributeFormDefault="unqualified"
+    elementFormDefault="qualified" attributeFormDefault="unqualified"
     version="1.0">
 
-    <xsd:import namespace="http://geronimo.apache.org/xml/ns/deployment-1.2" schemaLocation="geronimo-module-1.2.xsd"/>
+    <xsd:annotation>
+        <xsd:documentation>
+            This is an XML Schema Definition for login module configuration to
+            use for particular security module. Login module configuration is
+            specified by the level element as login-config with namespace
+            specified as xmlns =
+            "http://geronimo.apache.org/xml/ns/loginconfig-1.2". The default
+            location for this document is
+            http://geronimo.apache.org/schemas-1.2/geronimo-login-config-1.2.xsd
+            The definition of the XML format for storing login-config should
+            look like this:
+            <![CDATA[
+            <login-config xmlns="http://geronimo.apache.org/xml/ns/loginconfig-1.2">
+                <login-module control-flag="REQUIRED">
+                    <login-domain-name>
+                        some-name
+                    </login-domain-name>
+                    <login-module-class>
+                        org.apache.geronimo.LoginModuleClass
+                    </login-module-class>
+                    <option name="usersURI">
+                        usersinfo
+                    </option>
+                </login-module>
+            </login-config>
+            ]]>
+        </xsd:documentation>
+    </xsd:annotation>
+    <xsd:import namespace="http://geronimo.apache.org/xml/ns/deployment-1.2"
+        schemaLocation="geronimo-module-1.2.xsd">
+        <xsd:annotation>
+            <xsd:documentation>
+                Import Geronimo Services deployment plans, the imported plan
+                includes complex types like moduleType, environmentType,
+                dependenciesType, etc. required by this plan schema.
+            </xsd:documentation>
+        </xsd:annotation>
+    </xsd:import>
 
-    <xsd:element name="login-config" type="geronimo:login-configType"/>
+    <xsd:element name="login-config" type="geronimo:login-configType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The root element for Geronimo login module configuration. This
+                configuration can either refer to existing login module or
+                define a new login configuration. Note that the sub-elements of
+                this element should be as in the given order in sequence.
+            </xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
 
     <xsd:complexType name="login-configType">
         <xsd:annotation>
             <xsd:documentation>
-                Defines the list of login modules for a login configuration represented by a GenericSecurityRealm
+                Defines the list of login modules for a login configuration
+                represented by a GenericSecurityRealm
             </xsd:documentation>
         </xsd:annotation>
         <xsd:sequence>
             <xsd:choice minOccurs="0" maxOccurs="unbounded">
-                <xsd:element name="login-module-ref" type="geronimo:login-module-refType" minOccurs="0" maxOccurs="unbounded"/>
-                <xsd:element name="login-module" type="geronimo:login-moduleType" minOccurs="0" maxOccurs="unbounded"/>
+                <xsd:element name="login-module-ref"
+                    type="geronimo:login-module-refType" minOccurs="0"
+                    maxOccurs="unbounded">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            The login-module-ref element defines a reference to
+                            existing login module configured in some other
+                            GBean.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
+                <xsd:element name="login-module"
+                    type="geronimo:login-moduleType" minOccurs="0"
+                    maxOccurs="unbounded">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            The login-module element defines a new login module
+                            configuration. It should provide the complete
+                            information to GBean module being referred.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
             </xsd:choice>
         </xsd:sequence>
     </xsd:complexType>
 
     <xsd:complexType name="abstract-login-moduleType" abstract="true">
-        <xsd:attribute name="control-flag" type="geronimo:control-flagType" use="required"/>
-        <xsd:attribute name="wrap-principals" type="xsd:boolean"/>
+        <xsd:attribute name="control-flag" type="geronimo:control-flagType"
+            use="required">
+            <xsd:annotation>
+                <xsd:documentation>
+                    The control-flag attribute specifies the JAAS control flag
+                    used for this a login module configuration. It can be
+                    REQUIRED, REQUISITE, SUFFICIENT, or OPTIONAL as defined by
+                    JAAS API's.
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
+        <xsd:attribute name="wrap-principals" type="xsd:boolean">
+            <xsd:annotation>
+                <xsd:documentation>
+                    This boolean attribute specifies if the principals are
+                    wrapped in this login module.
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
     </xsd:complexType>
 
     <xsd:complexType name="login-module-refType">
         <xsd:complexContent>
             <xsd:extension base="geronimo:abstract-login-moduleType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        Include attributes defined in abstract-login-moduleType
+                        above.
+                    </xsd:documentation>
+                </xsd:annotation>
                 <xsd:sequence>
-                    <xsd:element name="pattern" type="sys:patternType"/>
+                    <xsd:element name="pattern" type="sys:patternType">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                                The pattern element defines a components of the
+                                abstract name of GBean referred. It includes
+                                information like groupId, artifactId, version,
+                                module, type, and name of the GBean module.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
                 </xsd:sequence>
             </xsd:extension>
         </xsd:complexContent>
@@ -64,22 +160,101 @@
 
     <xsd:simpleType name="control-flagType">
         <xsd:restriction base="xsd:string">
-            <xsd:enumeration value="REQUIRED"/>
-            <xsd:enumeration value="REQUISITE"/>
-            <xsd:enumeration value="SUFFICIENT"/>
-            <xsd:enumeration value="OPTIONAL"/>
+            <xsd:enumeration value="REQUIRED">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        REQUIRED: Defines the requirement of this login module
+                        configuration for authentication. In any case, control
+                        will proceed to next login module.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="REQUISITE">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        REQUISITE: Defines the requirement of this login module
+                        configuration for authentication. On failure, control
+                        will return to application else proceed to next login
+                        module.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="SUFFICIENT">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        SUFFICIENT: Defines the non-requirement of this login
+                        module configuration for authentication. On success,
+                        control will return to application else proceed to next
+                        login module.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="OPTIONAL">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        OPTIONAL: Defines the requirement of this login module
+                        configuration for authentication. In any case, control
+                        will return to application.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
         </xsd:restriction>
     </xsd:simpleType>
 
     <xsd:complexType name="login-moduleType">
         <xsd:complexContent>
             <xsd:extension base="geronimo:abstract-login-moduleType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        Include attributes defined in abstract-login-moduleType
+                        above.
+                    </xsd:documentation>
+                </xsd:annotation>
                 <xsd:sequence>
-                    <xsd:element name="login-domain-name" type="xsd:string"/>
-                    <xsd:element name="login-module-class" type="xsd:string"/>
-                    <xsd:element name="option" type="geronimo:optionType" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element name="login-domain-name" type="xsd:string">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                                This element defines a unique domain name to
+                                each configuration of login module. This allows
+                                configuration of same login module multiple
+                                times with different domain name.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                    <xsd:element name="login-module-class" type="xsd:string">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                                This provides the name of class which provides
+                                implementation of this LoginModule. This name
+                                should be fully qualified java class name. Also
+                                this class should have implemented
+                                javax.security.auth.spi.LoginModule interface.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                    <xsd:element name="option" type="geronimo:optionType"
+                        minOccurs="0" maxOccurs="unbounded">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                                The name value pair for options (properties)
+                                required by this login module.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
                 </xsd:sequence>
-                <xsd:attribute name="server-side" type="xsd:boolean" use="required"/>
+                <xsd:attribute name="server-side" type="xsd:boolean"
+                    use="required">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            An additional server-side attribute to specify that
+                            this login module will do all its processing on
+                            server side. In the case of a client call the
+                            information will be passed to server and all the
+                            processing will be done on server side by login
+                            module.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:attribute>
             </xsd:extension>
         </xsd:complexContent>
     </xsd:complexType>
@@ -87,7 +262,14 @@
     <xsd:complexType name="optionType">
         <xsd:simpleContent>
             <xsd:extension base="xsd:string">
-                <xsd:attribute name="name" type="xsd:string" use="required"/>
+                <xsd:attribute name="name" type="xsd:string" use="required">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            The name attribute specifies the name of option. The
+                            value is specified by element value.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:attribute>
             </xsd:extension>
         </xsd:simpleContent>
     </xsd:complexType>

Modified: geronimo/server/trunk/modules/geronimo-security-builder/src/main/schema/geronimo-security-1.2.xsd
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-security-builder/src/main/schema/geronimo-security-1.2.xsd?view=diff&rev=511458&r1=511457&r2=511458
==============================================================================
--- geronimo/server/trunk/modules/geronimo-security-builder/src/main/schema/geronimo-security-1.2.xsd (original)
+++ geronimo/server/trunk/modules/geronimo-security-builder/src/main/schema/geronimo-security-1.2.xsd Sat Feb 24 22:29:15 2007
@@ -1,15 +1,14 @@
 <?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
-
+    
+        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.
@@ -19,66 +18,146 @@
 
 <!-- $Rev$ $Date$ -->
 
-<xsd:schema
-    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
     xmlns:geronimo="http://geronimo.apache.org/xml/ns/security-1.2"
     targetNamespace="http://geronimo.apache.org/xml/ns/security-1.2"
     xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-1.2"
-    elementFormDefault="qualified"
-    attributeFormDefault="unqualified"
+    elementFormDefault="qualified" attributeFormDefault="unqualified"
     version="1.0">
-    
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-    <xsd:import namespace="http://geronimo.apache.org/xml/ns/j2ee/application-1.2" schemaLocation="geronimo-application-1.2.xsd"/>
 
-    <xsd:element name="security" type="geronimo:securityType"  substitutionGroup="app:security"/>
-    <xsd:element name="default-principal" type="geronimo:default-principalType"/>
+    <xsd:annotation>
+        <xsd:documentation>
+            This is a partial XML Schema Definition for common security
+            elements. This schema will never be used directly but its elements
+            are used in geronimo-application-client-1.2.xsd,
+            geronimo-connector-1.2.xsd, geronimo-web-1.2.xsd,
+            geronimo-tomcat-1.2.xsd, and geronimo-jetty-1.2.xsd. All the schemas
+            or plans using elements of this schema must specify the top level
+            element with one of the namespace specified as
+            "http://geronimo.apache.org/xml/ns/j2ee/security-1.2". The default
+            location for this document is
+            http://geronimo.apache.org/schemas-1.2/geronimo-security-1.2.xsd.
+        </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
+        schemaLocation="http://www.w3.org/2001/xml.xsd" />
+    <xsd:import
+        namespace="http://geronimo.apache.org/xml/ns/j2ee/application-1.2"
+        schemaLocation="geronimo-application-1.2.xsd">
+        <xsd:annotation>
+            <xsd:documentation>
+                Import Geronimo enterprise application deployment plans. The
+                imported plan includes complex types abstract-securityType
+                required by this plan schema.
+            </xsd:documentation>
+        </xsd:annotation>
+    </xsd:import>
+
+    <xsd:element name="security" type="geronimo:securityType"
+        substitutionGroup="app:security">
+        <xsd:annotation>
+            <xsd:documentation>
+                The element security is used to map security roles setting for
+                applications. If this element is present, all the web and EJB
+                modules must make the appropriate access checks as outlined by
+                the JACC specifications. Essentially, it configures the
+                security-realms to be used by applications.
+            </xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
+    <xsd:element name="default-principal"
+        type="geronimo:default-principalType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The element default-principal provides the principal to be used
+                during unauthorized access.
+            </xsd:documentation>
+        </xsd:annotation>
+    </xsd:element>
 
     <xsd:complexType name="securityType">
         <xsd:annotation>
             <xsd:documentation>
                 Security entries
 
-                If this element is present, all web and EJB modules MUST make the
-                appropriate access checks as outlined in the JACC spec.
+                If this element is present, all web and EJB modules MUST make
+                the appropriate access checks as outlined in the JACC spec.
             </xsd:documentation>
         </xsd:annotation>
         <xsd:complexContent>
             <xsd:extension base="app:abstract-securityType">
-
-        <xsd:sequence>
-            <xsd:element name="description" type="geronimo:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
-            <xsd:element name="default-principal" type="geronimo:default-principalType"/>
-            <xsd:element name="role-mappings" type="geronimo:role-mappingsType" minOccurs="0"/>
-        </xsd:sequence>
-        <xsd:attribute name="doas-current-caller" type="xsd:boolean" default="false">
-            <xsd:annotation>
-                <xsd:documentation>
-                    Set this attribute to "true" if the work is to be performed
-                    as the calling Subject.
-                </xsd:documentation>
-            </xsd:annotation>
-        </xsd:attribute>
-        <xsd:attribute name="use-context-handler" type="xsd:boolean" default="false">
-            <xsd:annotation>
-                <xsd:documentation>
-                    Set this attribute to "true" if the installed JACC policy
-                    contexts will use PolicyContextHandlers.
-                </xsd:documentation>
-            </xsd:annotation>
-        </xsd:attribute>
-        <xsd:attribute name="default-role" type="xsd:string">
-            <xsd:annotation>
-                <xsd:documentation>
-                    Used by the the Deployer to assign method permissions for
-                    all of the unspecified methods, either by assigning them
-                    to security roles, or by marking them as unchecked.  If
-                    the value of default-role is empty, then the unspecified
-                    methods are marked unchecked
-                </xsd:documentation>
-            </xsd:annotation>
-        </xsd:attribute>
+                <xsd:annotation>
+                    <xsd:documentation>
+                        Extension of abstract-securityType element defined in
+                        geronimo-application-1.2.xsd.
+                    </xsd:documentation>
+                </xsd:annotation>
+
+                <xsd:sequence>
+                    <xsd:element name="description"
+                        type="geronimo:descriptionType" minOccurs="0"
+                        maxOccurs="unbounded">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                                Language specific description of security
+                                element.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                    <xsd:element name="default-principal"
+                        type="geronimo:default-principalType">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                                The element default-principal provides the
+                                principal to be used during unauthorized access.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                    <xsd:element name="role-mappings"
+                        type="geronimo:role-mappingsType" minOccurs="0">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                                The element role-mappings provides the mapping
+                                information for roles defined in deployment
+                                descriptors and security realms available.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                </xsd:sequence>
+                <xsd:attribute name="doas-current-caller" type="xsd:boolean"
+                    default="false">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            Set doas-current-caller attribute to "true" if the
+                            work is to be performed as the calling Subject
+                            instead of as application server. The default value
+                            for doas-current-caller is false.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:attribute>
+                <xsd:attribute name="use-context-handler" type="xsd:boolean"
+                    default="false">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            Set this attribute to "true" if the installed JACC
+                            policy contexts will use PolicyContextHandlers.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:attribute>
+                <xsd:attribute name="default-role" type="xsd:string">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            Used by the the Deployer to assign method
+                            permissions for all of the unspecified methods,
+                            either by assigning them to security roles, or by
+                            marking them as unchecked. If the value of
+                            default-role is empty, then the unspecified methods
+                            are marked unchecked
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:attribute>
             </xsd:extension>
         </xsd:complexContent>
     </xsd:complexType>
@@ -86,53 +165,192 @@
     <xsd:complexType name="descriptionType">
         <xsd:simpleContent>
             <xsd:extension base="xsd:string">
-                <xsd:attribute ref="xml:lang"/>
+                <xsd:attribute ref="xml:lang">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            The reference to XML schema's lang attribute. This
+                            is used to define the language for this descriptor.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:attribute>
             </xsd:extension>
         </xsd:simpleContent>
     </xsd:complexType>
 
-
     <xsd:complexType name="default-principalType">
         <xsd:sequence>
-            <xsd:element name="description" type="geronimo:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="description" type="geronimo:descriptionType"
+                minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        Language specific description for default principle.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
             <xsd:choice>
-                <xsd:element name="principal" type="geronimo:principalType"/>
-                <xsd:element name="login-domain-principal" type="geronimo:loginDomainPrincipalType"/>
-                <xsd:element name="realm-principal" type="geronimo:realmPrincipalType"/>
+                <xsd:element name="principal" type="geronimo:principalType">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            The principal element defines the to be used for
+                            default principal, mapped using simple mapping
+                            principal.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
+                <xsd:element name="login-domain-principal"
+                    type="geronimo:loginDomainPrincipalType">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            The login-domain-principal element defines the to be
+                            used for default principal, mapped using login
+                            domain specific mapping.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
+                <xsd:element name="realm-principal"
+                    type="geronimo:realmPrincipalType">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            The realm-principal element defines the to be used
+                            for default principal, mapped using login domain and
+                            realm specific mapping.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
             </xsd:choice>
-            <xsd:element name="named-username-password-credential" type="geronimo:named-username-password-credentialType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="named-username-password-credential"
+                type="geronimo:named-username-password-credentialType"
+                minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The named-username-password-credential element defines
+                        named credential to be used on per-user authentication
+                        bases.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
         </xsd:sequence>
     </xsd:complexType>
 
     <xsd:complexType name="named-username-password-credentialType">
         <xsd:sequence>
-            <xsd:element name="name" type="xsd:string"/>
-            <xsd:element name="username" type="xsd:string"/>
-            <xsd:element name="password" type="xsd:string"/>
+            <xsd:element name="name" type="xsd:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The name for this credential.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="username" type="xsd:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The username for this credential.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="password" type="xsd:string">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The password for this credential.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
         </xsd:sequence>
     </xsd:complexType>
 
     <xsd:complexType name="role-mappingsType">
         <xsd:sequence>
-            <xsd:element name="role" type="geronimo:roleType" minOccurs="1" maxOccurs="unbounded"/>
+            <xsd:element name="role" type="geronimo:roleType" minOccurs="1"
+                maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The set of principals used to map the roles defined in
+                        deployment descriptors.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
         </xsd:sequence>
     </xsd:complexType>
 
     <xsd:complexType name="roleType">
         <xsd:sequence>
-            <xsd:element name="description" type="geronimo:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
-            <xsd:element name="realm-principal" type="geronimo:realmPrincipalType" minOccurs="0" maxOccurs="unbounded"/>
-            <xsd:element name="login-domain-principal" type="geronimo:loginDomainPrincipalType" minOccurs="0" maxOccurs="unbounded"/>
-            <xsd:element name="principal" type="geronimo:principalType" minOccurs="0" maxOccurs="unbounded"/>
-            <xsd:element name="distinguished-name" type="geronimo:distinguishedNameType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="description" type="geronimo:descriptionType"
+                minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The language specific description of the role.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="realm-principal"
+                type="geronimo:realmPrincipalType" minOccurs="0"
+                maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The realm-principal element defines the to be used for
+                        default principal, mapped using login domain and realm
+                        specific mapping.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="login-domain-principal"
+                type="geronimo:loginDomainPrincipalType" minOccurs="0"
+                maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The login-domain-principal element defines the to be
+                        used for default principal, mapped using login domain
+                        specific mapping.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="principal" type="geronimo:principalType"
+                minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The principal element defines the to be used for default
+                        principal, mapped using simple mapping principal.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="distinguished-name"
+                type="geronimo:distinguishedNameType" minOccurs="0"
+                maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The distinguished-name element defines the client
+                        certification authentication.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
         </xsd:sequence>
-        <xsd:attribute name="role-name" type="xsd:string" use="required"/>
+        <xsd:attribute name="role-name" type="xsd:string" use="required">
+            <xsd:annotation>
+                <xsd:documentation>
+                    The role-name element defines the name for this role.
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
     </xsd:complexType>
 
     <xsd:complexType name="realmPrincipalType">
         <xsd:complexContent>
             <xsd:extension base="geronimo:loginDomainPrincipalType">
-                <xsd:attribute name="realm-name" type="xsd:string" use="required"/>
+                <xsd:annotation>
+                    <xsd:documentation>
+                        Extends loginDomainPrincipalType defined later in this
+                        schema.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:attribute name="realm-name" type="xsd:string"
+                    use="required">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            The realm-name attribute maps to the Geronimo
+                            security realm.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:attribute>
             </xsd:extension>
         </xsd:complexContent>
     </xsd:complexType>
@@ -140,22 +358,61 @@
     <xsd:complexType name="loginDomainPrincipalType">
         <xsd:complexContent>
             <xsd:extension base="geronimo:principalType">
-                <xsd:attribute name="domain-name" type="xsd:string" use="required"/>
+                <xsd:annotation>
+                    <xsd:documentation>
+                        Extends principalType defined later in this schema.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:attribute name="domain-name" type="xsd:string"
+                    use="required">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            The domain-name attribute maps to the
+                            login-domain-name set for the JAAS login module.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:attribute>
             </xsd:extension>
         </xsd:complexContent>
     </xsd:complexType>
 
     <xsd:complexType name="principalType">
         <xsd:sequence>
-            <xsd:element name="description" type="geronimo:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="description" type="geronimo:descriptionType"
+                minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The language specific description for this principal.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
         </xsd:sequence>
-        <xsd:attribute name="class" type="xsd:string" use="required"/>
-        <xsd:attribute name="name" type="xsd:string" use="required"/>
-        <xsd:attribute name="designated-run-as" type="xsd:boolean" default="false">
+        <xsd:attribute name="class" type="xsd:string" use="required">
             <xsd:annotation>
                 <xsd:documentation>
-                    Set this attribute to "true" if this principal is to be
-                    used as the run-as principal for this role.
+                    The class attribute provides the fully qualified class name
+                    of the principal class. The default Geronimo principal
+                    classes are
+                    org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal
+                    and
+                    org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
+        <xsd:attribute name="name" type="xsd:string" use="required">
+            <xsd:annotation>
+                <xsd:documentation>
+                    The name attribute provides the unique name for this
+                    principal.
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
+        <xsd:attribute name="designated-run-as" type="xsd:boolean"
+            default="false">
+            <xsd:annotation>
+                <xsd:documentation>
+                    Set this attribute to "true" if this principal is to be used
+                    as the run-as principal for this role.
                 </xsd:documentation>
             </xsd:annotation>
         </xsd:attribute>
@@ -163,14 +420,29 @@
 
     <xsd:complexType name="distinguishedNameType">
         <xsd:sequence>
-            <xsd:element name="description" type="geronimo:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+            <xsd:element name="description" type="geronimo:descriptionType"
+                minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        Language specific description of distinguished name
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
         </xsd:sequence>
-        <xsd:attribute name="name" type="xsd:string" use="required"/>
-        <xsd:attribute name="designated-run-as" type="xsd:boolean" default="false">
+        <xsd:attribute name="name" type="xsd:string" use="required">
+            <xsd:annotation>
+                <xsd:documentation>
+                    The name of the distinguished name provided in client
+                    certificate.
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
+        <xsd:attribute name="designated-run-as" type="xsd:boolean"
+            default="false">
             <xsd:annotation>
                 <xsd:documentation>
-                    Set this attribute to "true" if this principal is to be
-                    used as the run-as principal for this role.
+                    Set this attribute to "true" if this principal is to be used
+                    as the run-as principal for this role.
                 </xsd:documentation>
             </xsd:annotation>
         </xsd:attribute>

Modified: geronimo/server/trunk/modules/geronimo-service-builder/src/main/schema/geronimo-module-1.2.xsd
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-service-builder/src/main/schema/geronimo-module-1.2.xsd?view=diff&rev=511458&r1=511457&r2=511458
==============================================================================
--- geronimo/server/trunk/modules/geronimo-service-builder/src/main/schema/geronimo-module-1.2.xsd (original)
+++ geronimo/server/trunk/modules/geronimo-service-builder/src/main/schema/geronimo-module-1.2.xsd Sat Feb 24 22:29:15 2007
@@ -1,15 +1,14 @@
 <?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
-
+    
+        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.
@@ -17,137 +16,219 @@
     limitations under the License.
 -->
 
-<xs:schema
-    targetNamespace="http://geronimo.apache.org/xml/ns/deployment-1.2"
+<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"
-    >
+    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.2"&lt;
+            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: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:element ref="sys:service" minOccurs="0" maxOccurs="unbounded"/>
+            <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">
-<!--    TODO figure out why this doesn't work
-        <xs:key name="name-key-key">
+        <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: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: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?
+                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>
-                TODO document me - am I only used by the app client builder?
+                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: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.
+                        "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:element name="dependencies" type="sys:dependenciesType"
+                minOccurs="0">
                 <xs:annotation>
                     <xs:documentation>
-                        "dependences" holds all classloader and dependency information for the module
+                        "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: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.  :)
+                        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: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.
+                        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: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.
+                        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: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 
+                        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>
@@ -155,45 +236,57 @@
         </xs:sequence>
     </xs:complexType>
 
-    <xs:element name="dependencies" type="sys:dependenciesType"/>
+    <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: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.
+                        "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:complexType name="emptyType" />
 
-    <xs:element name="service" type="sys:abstract-serviceType"/>
+    <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:sequence></xs:sequence>
     </xs:complexType>
 
-     <xs:element name="gbean" type="sys:gbeanType" substitutionGroup="sys:service">
+    <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.
+                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:element name="filter" type="xs:string" minOccurs="0"
+                maxOccurs="unbounded">
                 <xs:annotation>
                     <xs:documentation>
                         A fully-qualified class name or prefix to be filtered.
@@ -205,7 +298,8 @@
 
     <xs:complexType name="artifactType">
         <xs:annotation>
-            <xs:documentation><![CDATA[
+            <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.
@@ -235,24 +329,82 @@
                 <artifactId>postgresql-8.0-jdbc</artifactId>
                 <version>313</version>
                 <type>jar</type>
-
-          ]]></xs:documentation>
+	            ]]>
+            </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: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: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>
@@ -261,7 +413,8 @@
 
     <xs:simpleType name="importType">
         <xs:annotation>
-            <xs:documentation><![CDATA[
+            <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
@@ -270,30 +423,127 @@
             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:documentation>
         </xs:annotation>
         <xs:restriction base="xs:string">
-            <xs:enumeration value="classes"/>
-            <xs:enumeration value="services"/>
+            <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: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: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>
@@ -301,38 +551,121 @@
     <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: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:any namespace="##any" processContents="lax" />
         </xs:sequence>
-        <xs:attribute name="name" type="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:complexType>
 
     <xs:complexType name="referencesType">
         <xs:sequence>
-            <xs:element name="pattern" type="sys:patternType" minOccurs="1" maxOccurs="unbounded"/>
+            <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: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:documentation>
+                This group contains the components of an abstract name
+            </xs:documentation>
         </xs:annotation>
-         <xs:sequence>
+        <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: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>
@@ -340,17 +673,29 @@
     <xs:complexType name="referenceType">
         <xs:complexContent>
             <xs:extension base="sys:patternType">
-                <xs:attribute name="name" type="xs:string"/>
+                <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:sequence>-->
+    <!--<xs:element name="dependency" type="sys:artifactType" minOccurs="0" maxOccurs="unbounded"/>-->
+    <!--</xs:sequence>-->
     <!--</xs:complexType>-->
 
-</xs:schema>
\ No newline at end of file
+</xs:schema>



Mime
View raw message