false
repo1.maven.org$maven2@org.wildfly.core$wildfly-server@1.0.0.CR1
repo1.maven.org$maven2@org.wildfly.core$wildfly-server@1.0.0.CR1@schema$jboss-as-config_1_0.xsd
file
f
[]
Start line:
End line:

Snippet Preview

Snippet HTML Code

Stack Overflow Questions

    <?xml version="1.0" encoding="UTF-8"?>

    <!--
      ~ JBoss, Home of Professional Open Source.
      ~ Copyright 2010, Red Hat, Inc., and individual contributors
      ~ as indicated by the @author tags. See the copyright.txt file in the
      ~ distribution for a full listing of individual contributors.
      ~
      ~ This is free software; you can redistribute it and/or modify it
      ~ under the terms of the GNU Lesser General Public License as
      ~ published by the Free Software Foundation; either version 2.1 of
      ~ the License, or (at your option) any later version.
      ~
      ~ This software is distributed in the hope that it will be useful,
      ~ but WITHOUT ANY WARRANTY; without even the implied warranty of
      ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
      ~ Lesser General Public License for more details.
      ~
      ~ You should have received a copy of the GNU Lesser General Public
      ~ License along with this software; if not, write to the Free
      ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
      ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
      -->

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
               xmlns="urn:jboss:domain:1.0"
               targetNamespace="urn:jboss:domain:1.0"
               elementFormDefault="qualified"
               attributeFormDefault="unqualified"
            >

        <xs:element name="domain">
            <xs:annotation>
                <xs:documentation>
                    Root element for the master document specifying the core configuration
                    for the servers in a domain. There should be one such master
                    document per domain, available to the host controller that
                    is configured to act as the domain controller.
                </xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="extensions" type="extensionsType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="system-properties" type="properties-with-boottime" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="paths" type="named-pathsType" minOccurs="0" maxOccurs="1" />
                    <xs:element name="profiles" type="profilesType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="interfaces" type="named-interfacesType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="socket-binding-groups" type="socket-binding-groupsType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="deployments" type="domain-deploymentsType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="server-groups" type="server-groupsType" minOccurs="0" maxOccurs="1"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>

        <xs:element name="host">
            <xs:annotation>
                <xs:documentation>
                    Root element for a document configuring a host controller and
                    the group of servers under the control of that host controller.
                    The standard usage would be for a domain to have one such host controller
                    on each physical (or virtual) host machine. Emphasis in this
                    document is on enumerating the servers, configuring items that
                    are specific to the host environment (e.g. IP addresses), and
                    on any server-specific configuration settings.
                </xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="system-properties" type="properties-with-boottime" minOccurs="0"/>
                    <xs:element name="paths" type="specified-pathsType" minOccurs="0" maxOccurs="1" />
                    <xs:element name="management" type="managementType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="domain-controller" type="domain-controllerType"/>
                    <xs:element name="interfaces" type="specified-interfacesType" minOccurs="0"/>
                    <xs:element name="jvms" type="jvmsType" minOccurs="0"/>
                    <xs:element name="servers" type="serversType" minOccurs="0"/>
                </xs:sequence>
                <xs:attribute name="name" type="xs:string" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            The name to use for this host's host controller. Must be
                            unique across the domain. If not set, defaults to the
                            runtime value of InetAddress.getLocalHost().getHostName().
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:complexType>
        </xs:element>

        <xs:element name="server">
            <xs:annotation>
                <xs:documentation>
                    Root element for a document specifying the configuration
                    of a single "standalone" server that does not operate
                    as part of a domain.

                    Note that this element is distinct from the 'serverType'
                    specified in this schema. The latter type forms part of the
                    configuration of a server that operates as part of a domain.
                </xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="extensions" type="extensionsType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="system-properties" type="properties" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="paths" type="specified-pathsType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="management" type="managementType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="profile" type="standalone-profileType" minOccurs="0"/>
                    <xs:element name="interfaces" type="specified-interfacesType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="socket-binding-group" type="standalone-socket-binding-groupType" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="deployments" type="server-deploymentsType" minOccurs="0" maxOccurs="1"/>
                </xs:sequence>
                <xs:attribute name="name" type="xs:string" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            The name to use for this server. If not set, defaults to
                            the runtime value of InetAddress.getLocalHost().getHostName().
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:complexType>
        </xs:element>

        <xs:complexType name="domain-managementType">
            <xs:annotation>
                <xs:documentation>
                    Domain-wide default configuration settings for the management of standalone servers and a Host Controller.
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="security-realms" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="security-realm" type="security-realmType" minOccurs="1"
                                        maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="outbound-connections" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                          <xs:element name="ldap" type="ldapType" minOccurs="1" /> <!-- TODO minOccurs only while ldap is only supported connection. -->
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="managementType">
            <xs:annotation>
                <xs:documentation>
                    The centralized configuration for the management of standalone servers and a Host Controller.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="domain-managementType">
                    <xs:sequence>
                        <xs:element name="management-interfaces" type="management-interfacesType" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="ldapType"> <!-- TODO - May extend from a common connection type for name -->
            <xs:annotation>
                <xs:documentation>
                    The LDAP connection definition.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="name" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The name of this connection.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="url" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The URL to connect to ldap.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <!-- TODO - Later will be optional if we support GSSAPI to connect to LDAP -->
            <xs:attribute name="search-dn" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The distinguished name to use when connecting to LDAP to perform searches.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="search-credential" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The credential to use when connecting to perform a search.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <!-- TODO - May drop this and just allow free name/value properties for extension. -->
            <xs:attribute name="initial-context-factory" type="xs:string" default="com.sun.jndi.ldap.LdapCtxFactory">
                <xs:annotation>
                    <xs:documentation>
                        The initial context factory to establish the LdapContext.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="security-realmType">
            <xs:annotation>
                <xs:documentation>
                    Configuration of a security realm for securing access to the management interfaces.
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="server-identities" type="server-identitiesType" minOccurs="0" />
                <xs:element name="authentication" type="authenticationType" minOccurs="0" />
            </xs:sequence>
            <xs:attribute name="name" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The name of this security-realm, each security-realm must be assigned a unique name.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="server-identitiesType">
            <xs:annotation>
                <xs:documentation>
                    Configuration of the identities that represent the server.
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
              <xs:element name="ssl" type="sslType" minOccurs="0" />
              <xs:element name="secret" type="secretType" minOccurs="0" />
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="secretType">
            <xs:annotation>
                <xs:documentation>
                    Configuration of the SSL identity of this server.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="value" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The secret / password - Base64 Encoded
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="sslType">
            <xs:annotation>
                <xs:documentation>
                    Configuration of the SSL identity of this server.
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="keystore" type="keystoreType" />
            </xs:sequence>
            <xs:attribute name="protocol" type="xs:string" default="TLS">
                <xs:annotation>
                    <xs:documentation>
                        The protocol to use when creating the SSLContext.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="keystoreType">
            <xs:annotation>
                <xs:documentation>
                    The keystore configuration for the server.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="relative-to" use="optional" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        The name of another previously named path, or of one of the
                        standard paths provided by the system. If 'relative-to' is
                        provided, the value of the 'path' attribute is treated as
                        relative to the path specified by this attribute.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="path" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The path of the keystore.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="password" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The password to open the keystore.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="authenticationType">
            <xs:annotation>
                <xs:documentation>
                    Configuration of the server side authentication mechanisms.
                </xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="ldap" type="ldapAuthenticationType" minOccurs="0" />
                <xs:element name="properties" type="propertiesAuthenticationType" minOccurs="0" />
                <xs:element name="users" type="usersAuthenticationType" minOccurs="0" />
            </xs:choice>
            <xs:attribute name="useDomainController" type="xs:boolean" default="false">
                <xs:annotation>
                    <xs:documentation>
                        Should the request delegate to the domain controller or handle the authentication locally.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="ldapAuthenticationType">
            <xs:annotation>
                <xs:documentation>
                    Definition to use LDAP as the user repository.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="connection" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The name of the connection to use to connect to LDAP.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="base-dn" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The base distinguished name to commence the search for the user.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="username-attribute" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The name of the attribute to search for the user.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="recursive" type="xs:boolean" default="false">
                <xs:annotation>
                    <xs:documentation>
                        Should the search be recursive.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="user-dn" type="xs:string" default="dn">
                <xs:annotation>
                    <xs:documentation>
                        The name of the attribute which is the users distinguished name.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="usersAuthenticationType">
               <xs:annotation>
                <xs:documentation>
                    A set of users
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="user" type="userType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="userType">
            <xs:annotation>
                <xs:documentation>
                    A single user.
                </xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="password" type="xs:string" />
            </xs:choice>
            <xs:attribute name="username" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The users username.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="propertiesAuthenticationType">
            <xs:annotation>
                <xs:documentation>
                    Declaration of users stored within properties files.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="relative-to" use="optional" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        The name of another previously named path, or of one of the
                        standard paths provided by the system. If 'relative-to' is
                        provided, the value of the 'path' attribute is treated as
                        relative to the path specified by this attribute.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="path" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The path of the properties file containing the users.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="management-interfaceType">
            <xs:annotation>
                <xs:documentation>
                    Configuration of a host's or standalone server's exposed management interface.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="interface" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        Network interface on which the host's socket for
                        management communication should be opened.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="port" type="xs:int" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Port on which the host's socket for
                        management communication should be opened.

                        If not specified the port will not be opened.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="secure-port" type="xs:int" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Secure port on which the host's socket for
                        management communication should be opened.

                        If not specified the port will not be opened.

                        If specified the security-realm will be required to obtain
                        the SSL configuration.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="security-realm" type="xs:string" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        The security realm to use for this management interface, the capabilities
                        of the security realm will be queried to identify the authentication mechanism(s) to
                        offer.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="management-interfacesType">
            <xs:all minOccurs="0">
                <xs:element name="native-interface" type="management-interfaceType"/>
                <xs:element name="http-interface" type="management-interfaceType"/>
            </xs:all>
        </xs:complexType>

        <xs:complexType name="domain-controllerType">
            <xs:choice>
                <xs:element name="local" type="domain-controller-localType"/>
                <xs:element name="remote" type="domain-controller-remoteType"/>
            </xs:choice>
        </xs:complexType>

        <xs:complexType name="domain-controller-localType" />

        <xs:complexType name="domain-controller-remoteType">
             <xs:attribute name="host" type="xs:string" use="required" />
             <xs:attribute name="port" type="xs:integer" use="required" />
             <xs:attribute name="security-realm" type="xs:string" use="optional" />
        </xs:complexType>

        <xs:complexType name="serversType">
            <xs:sequence>
                <xs:element name="server" type="serverType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="serverType">
            <xs:all>
                <xs:element name="paths" type="specified-pathsType" minOccurs="0" maxOccurs="1" />

                <xs:element name="interface-specs" type="specified-interfacesType" minOccurs="0"/>
                <xs:element name="socket-binding-group" type="socket-binding-group-refType" minOccurs="0"/>

                <!--<xs:element name="loggers" type="loggersType" minOccurs="0"/>-->
                <xs:element name="system-properties" type="properties-with-boottime" minOccurs="0"/>
                <xs:element name="jvm" minOccurs="0" type="serverJvmType"/>
            </xs:all>
            <xs:attribute name="name" type="xs:string" use="required"/>
            <xs:attribute name="group" type="xs:string" use="required"/>
            <xs:attribute name="auto-start" type="xs:boolean" default="true"/>
        </xs:complexType>

        <xs:complexType name="extensionsType">
            <xs:annotation>
                <xs:documentation>Contains a list of extension modules.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="extension" type="extensionType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="extensionType">
            <xs:annotation>
                <xs:documentation>
                    A module that extends the standard capabilities of a domain
                    or a standalone server.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="module" use="required" type="xs:string">
                <xs:annotation>
                    <xs:documentation>The name of the module</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="server-groupsType">
            <xs:sequence>
                <xs:element name="server-group" type="server-groupType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="server-groupType">
            <xs:sequence>
                <xs:element name="jvm" type="namedJvmType" minOccurs="0"/>
                <xs:element name="socket-binding-group" type="socket-binding-group-refType" minOccurs="1"/>

                <xs:element name="deployments" type="server-groupDeploymentsType" minOccurs="0"/>

                <xs:element name="system-properties" minOccurs="0" type="properties-with-boottime"/>
            </xs:sequence>
            <xs:attribute name="name" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        The name of the server group
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="profile" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        The name of the profile this server is running.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="server-groupDeploymentsType">
            <xs:annotation>
                <xs:documentation>Contains a list of deployments that have been mapped to a server-group.</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="deployment" type="base-deploymentType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="base-deploymentType">
            <xs:attribute name="name" use="required">
                <xs:annotation>
                    <xs:documentation>Unique identifier of the deployment. Must be unique across all deployments.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="runtime-name" use="required">
                <xs:annotation>
                    <xs:documentation>Name by which the deployment will be known within a running server.of the deployment.
                        Does not need to be unique across all deployments in the domain, although it must be unique within
                        an individual server. For example, two different deployments running on different servers in
                        the domain could both have a 'runtime-name' of 'example.war', with one having a 'name'
                        of 'example.war_v1' and another with an 'name' of 'example.war_v2'.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType><xs:complexType name="server-deploymentsType">
        <xs:annotation>
            <xs:documentation>Contains a list of deployments that have been mapped to a server.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="deployment" type="server-deploymentType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

        <xs:complexType name="server-deploymentType">
            <xs:annotation>
                <xs:documentation>A deployment that has been mapped to a server.</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="base-deploymentType">
                    <xs:sequence>
                        <!-- TODO: maxOccurs should be unbounded once overlays are in place -->
                        <xs:choice maxOccurs="1">
                            <xs:element name="content" type="contentType"/>
                            <xs:element name="fs-archive" type="fs-archiveType"/>
                            <xs:element name="fs-exploded" type="fs-explodedType"/>
                        </xs:choice>
                    </xs:sequence>
                    <!--  TODO clarify what a value of 'false' means -->
                    <xs:attribute name="enabled" use="optional" type="xs:boolean" default="true">
                        <xs:annotation>
                            <xs:documentation>Whether the deployment deploy automatically when the server starts up.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="contentType">
            <xs:attribute name="sha1" use="required">
                <xs:annotation>
                    <xs:documentation>The checksum of the content</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="fs-archiveType">
            <xs:annotation>
                <xs:documentation>Archived content found on the filesystem</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="fs-baseType"/>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="fs-baseType">
            <xs:complexContent>
                <xs:extension base="pathType"/>
            </xs:complexContent>
            <!-- TODO: make path required
            <xs:complexContent>
                <xs:restriction base="pathType">
                    <xs:attribute name="path" use="required"/>
                </xs:restriction>
            </xs:complexContent>
            -->
        </xs:complexType>

        <xs:complexType name="fs-explodedType">
            <xs:annotation>
                <xs:documentation>Exploded content found on the filesystem</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="fs-baseType"/>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="domain-deploymentsType">
            <xs:annotation>
                <xs:documentation>Contains a list of domain-level deployments</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="deployment" type="domain-deploymentType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="domain-deploymentType">
            <xs:annotation>
                <xs:documentation>Deployment represents anything that can be deployed (e.g. an application such as EJB-JAR,
                    WAR, EAR,
                    any kind of standard archive such as RAR or JBoss-specific deployment),
                    which can be enabled or disabled on a domain level.
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="base-deploymentType">
                    <xs:sequence>
                        <!-- TODO: maxOccurs should be unbounded once overlays are in place -->
                        <xs:choice maxOccurs="1">
                            <xs:element name="content" type="contentType"/>
                            <xs:element name="fs-archive" type="fs-archiveType"/>
                            <xs:element name="fs-exploded" type="fs-explodedType"/>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <!-- TODO this is not used anywhere yet -->
        <xs:complexType name="clustersType">
            <xs:complexContent>
                <xs:extension base="server-groupType">
                    <xs:sequence>
                        <xs:element name="partition-name" type="xs:string"/>
                        <xs:element name="state-transfer-timeout" type="xs:integer"/>
                        <xs:element name="method-call-timeout" type="xs:integer"/>
                    </xs:sequence>
                    <xs:attribute name="category" type="xs:string" use="required"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <!-- domain-configuration related definitions -->
        <xs:complexType name="domain-configurationType">
            <xs:annotation>
                <xs:documentation>The domain controller/server bootstrap configuration</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element ref="bootstrapURI"/>
            </xs:sequence>
        </xs:complexType>
        <xs:element name="bootstrapURI" type="xs:string">
            <xs:annotation>
                <xs:documentation>The URI for bootstrapping a domain server</xs:documentation>
            </xs:annotation>
        </xs:element>

        <xs:complexType name="profilesType">
            <xs:annotation>
                <xs:documentation>Contains a list of profiles available for use in the domain</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="profile" type="domain-profileType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="domain-profileType">
            <xs:annotation>
                <xs:documentation>Contains a list of subsystems</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="include" type="profile-includeType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>A profile declaration may include configuration
                            elements from other namespaces for the subsystems that make up the profile.
                        </xs:documentation>
                    </xs:annotation>
                </xs:any>
            </xs:sequence>
            <xs:attribute name="name" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>Name of the profile</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="profile-includeType">
            <xs:annotation>
                <xs:documentation>Specifies that a contents of a named profile are to be included in
                    the profile whose definition includes this type.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="profile" use="required">
                <xs:annotation>
                    <xs:documentation>Name of the profile to include</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="standalone-profileType">
            <xs:annotation>
                <xs:documentation>Contains a list of subsystems</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:choice minOccurs="1" maxOccurs="unbounded">
                    <xs:any namespace="##other">
                        <xs:annotation>
                            <xs:documentation>A profile declaration may include configuration
                                elements from other namespaces for the subsystems that make up the profile.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:any>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>

        <!-- general socket definition -->
        <xs:complexType name="socket-binding-groupsType">
            <xs:annotation>
                <xs:documentation>Contains a list of socket binding groups</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="socket-binding-group" type="socket-binding-groupType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="socket-binding-groupType">
            <xs:annotation>
                <xs:documentation>Contains a list of socket configurations</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="include" type="socket-binding-group-includeType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="socket-binding" type="socket-bindingType" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="name" type="xs:string" use="required"/>
            <xs:attribute name="default-interface" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        Name of an interface that should be used as the interface for
                        any sockets that do not explicitly declare one.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="socket-binding-group-includeType">
            <xs:annotation>
                <xs:documentation>Specifies that a contents of a named socket-binding-group are to be included in
                    the socket-binding-group whose definition includes this type.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="socket-binding-group" use="required">
                <xs:annotation>
                    <xs:documentation>Name of the socket-binding-group to include</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="standalone-socket-binding-groupType">
            <xs:annotation>
                <xs:documentation>Contains a list of socket configurations</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="socket-binding" type="socket-bindingType" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="name" type="xs:string" use="required"/>
            <xs:attribute name="default-interface" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        Name of an interface that should be used as the interface for
                        any sockets that do not explicitly declare one.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
    	    <xs:attribute name="port-offset" type="xs:int" use="optional" default="0">
    	        <xs:annotation>
                    <xs:documentation>
    	                    Increment to apply to the base port values defined in the
    	                    socket group to derive the values to use on this
    	                    server.
    	            </xs:documentation>
    	        </xs:annotation>
    	    </xs:attribute>
        </xs:complexType>

        <xs:complexType name="socket-bindingType">
            <xs:annotation>
                <xs:documentation>Configuration information for a socket.</xs:documentation>
            </xs:annotation>
            <xs:attribute name="name" type="xs:string" use="required"/>
            <xs:attribute name="interface" type="xs:string" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Name of the interface to which the socket should be bound, or, for multicast
                        sockets, the interface on which it should listen. This should
                        be one of the declared interfaces.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="port" type="xs:unsignedShort" use="optional" default="0">
                <xs:annotation>
                    <xs:documentation>
                        Number of the port to which the socket should be bound.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="fixed-port" type="xs:boolean" use="optional" default="false">
                <xs:annotation>
                    <xs:documentation>
                        Whether the port value should remain fixed even if numerically offsets
                        are applied to the other sockets in the socket group..
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="multicast-address" type="xs:string" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Multicast address on which the socket should receive multicast
                        traffic. If unspecified, the socket will not be configured
                        to receive multicast.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="multicast-port" type="xs:positiveInteger" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Port on which the socket should receive multicast
                        traffic. Must be configured if 'multicast-address' is configured.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="socket-binding-group-refType">
            <xs:attribute name="ref" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        The socket group to use for the server group or server.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="port-offset" type="xs:int" default="0">
                <xs:annotation>
                    <xs:documentation>
                        Increment to apply to the base port values defined in the
                        referenced socket group to derive the values to use on this
                        server.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="named-interfacesType">
            <xs:annotation>
                <xs:documentation>
                    A list of named network interfaces. The interfaces may or may
                    not be fully specified (i.e. include criteria on how to determine
                    their IP address.)
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="interface" type="named-interfaceType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <!-- TODO make this and specified-interfaceType the same except for interface-criteriaGroup minOccurs -->
        <xs:complexType name="named-interfaceType">
            <xs:annotation>
                <xs:documentation>
                    A named network interface, but without any criteria
                    for determining the IP address to associate with that interface.
                    Acts as a placeholder in the model (e.g. at the domain level)
                    until a fully specified interface definition is applied at a
                    lower level (e.g. at the server level, where available addresses
                    are known.)
                </xs:documentation>
            </xs:annotation>
            <xs:group ref="interface-criteriaGroup" minOccurs="0"/>
            <xs:attribute name="name" type="xs:string" use="required"/>
        </xs:complexType>

        <xs:complexType name="specified-interfacesType">
            <xs:annotation>
                <xs:documentation>
                    A list of fully specified named network interfaces.
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="interface" type="specified-interfaceType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="specified-interfaceType">
            <xs:annotation>
                <xs:documentation>
                    A named network interface, along with required criteria
                    for determining the IP address to associate with that interface.
                </xs:documentation>
            </xs:annotation>
            <xs:group ref="interface-criteriaGroup" minOccurs="1"/>
            <xs:attribute name="name" type="xs:string" use="required"/>
        </xs:complexType>

        <xs:group name="interface-criteriaGroup">
            <xs:annotation>
                <xs:documentation>
                    A set of criteria that can be used at runtime to determine
                    what IP address to use for an interface.
                </xs:documentation>
            </xs:annotation>
            <xs:choice>
                <xs:element name="any-address" type="any-addressType"/>
                <xs:element name="any-ipv6-address" type="any-ipv6-addressType"/>
                <xs:element name="any-ipv4-address" type="any-ipv4-addressType"/>
                <xs:choice maxOccurs="unbounded">
                    <xs:element name="inet-address" type="inet-addressType"/>
                    <xs:element name="loopback" type="loopbackType"/>
                    <xs:element name="loopback-address" type="loopback-addressType"/>
                    <xs:element name="multicast" type="multicastType"/>
                    <xs:element name="point-to-point" type="point-to-pointType"/>
                    <xs:element name="virtual" type="interface-virtualType"/>
                    <xs:element name="up" type="interface-upType"/>
                    <xs:element name="public-address" type="public-addressType"/>
                    <xs:element name="link-local-address" type="link-local-addressType"/>
                    <xs:element name="site-local-address" type="site-local-addressType"/>
                    <xs:element name="nic" type="nicType"/>
                    <xs:element name="nic-match" type="nic-matchType"/>
                    <xs:element name="subnet-match" type="subnet-matchType"/>
                    <xs:element name="not" type="address-exclusionType"/>
                    <xs:element name="any" type="address-exclusionType"/>
                </xs:choice>
            </xs:choice>
        </xs:group>

        <xs:complexType name="inet-addressType">
            <xs:attribute name="value" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        Either an IP address in IPv6 or IPv4 dotted decimal notation,
                        or a hostname that can be resolved to an IP address.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="nicType">
            <xs:attribute name="name" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        The name of a network interface (e.g. eth0, eth1, lo).
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="nic-matchType">
            <xs:attribute name="pattern" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        A regular expression against which the names of the network
                        interfaces available on the machine can be matched to find
                        an acceptable interface.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="subnet-matchType">
            <xs:attribute name="value" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        A network IP address and the number of bits in the
                        address' network prefix, written in "slash notation";
                        e.g. "192.168.0.0/16".
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="address-exclusionType">
            <xs:choice>
                <xs:element name="inet-address" type="inet-addressType"/>
                <xs:element name="loopback" type="loopbackType"/>
                <xs:element name="loopback-address" type="loopback-addressType"/>
                <xs:element name="multicast" type="multicastType"/>
                <xs:element name="point-to-point" type="point-to-pointType"/>
                <xs:element name="virtual" type="interface-virtualType"/>
                <xs:element name="up" type="interface-upType"/>
                <xs:element name="public-address" type="public-addressType"/>
                <xs:element name="link-local-address" type="link-local-addressType"/>
                <xs:element name="site-local-address" type="site-local-addressType"/>
                <xs:element name="nic" type="nicType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="nic-match" type="nic-matchType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="subnet-match" type="subnet-matchType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
        </xs:complexType>

        <xs:complexType name="loopbackType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that part of the selection criteria
                    for an interface should be whether or not it is a loopback
                    interface.
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="loopback-addressType">
            <xs:annotation>
                <xs:documentation>
                    A loopback address that may not actually configured on the machine's loopback interface.
                    Differs from inet-addressType in that the given value will be used even if no NIC can
                    be found that has the IP address associated with it.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="value" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        An IP address in IPv6 or IPv4 dotted decimal notation.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="multicastType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that part of the selection criteria
                    for an interface should be whether or not it supports
                    multicast.
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="point-to-pointType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that part of the selection criteria
                    for an interface should be whether or not it is a point-to-point
                    interface.
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="interface-upType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that part of the selection criteria
                    for an interface should be whether or not it is currently up.
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="interface-virtualType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that part of the selection criteria
                    for an interface should be whether or not it is a virtual
                    interface.
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="public-addressType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that part of the selection criteria
                    for an interface should be whether or not it has a publicly
                    routable address.
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="site-local-addressType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that part of the selection criteria
                    for an interface should be whether or not an address associated
                    with it is site-local.
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="link-local-addressType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that part of the selection criteria
                    for an interface should be whether or not an address associated
                    with it is link-local.
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="any-ipv6-addressType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that sockets using this interface
                    should be bound to the IPv6 wildcard address (::).
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="any-ipv4-addressType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that sockets using this interface
                    should be bound to the IPv4 wildcard address (0.0.0.0).
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="any-addressType">
            <xs:annotation>
                <xs:documentation>
                    Empty element indicating that sockets using this interface
                    should be bound to a wildcard address. The IPv6 wildcard
                    address (::) will be used unless the java.net.preferIpV4Stack
                    system property is set to true, in which case the IPv4
                    wildcard address (0.0.0.0) will be used. If a socket is
                    bound to an IPv6 anylocal address on a dual-stack machine,
                    it can accept both IPv6 and IPv4 traffic; if it is bound to
                    an IPv4 (IPv4-mapped) anylocal address, it can only accept
                    IPv4 traffic.
                </xs:documentation>
            </xs:annotation>
        </xs:complexType>

        <xs:complexType name="socketType">
            <xs:annotation>
                <xs:documentation>Configuration information for a socket.</xs:documentation>
            </xs:annotation>
            <xs:attribute name="name" type="xs:string" use="required"/>
            <xs:attribute name="interface" type="xs:string" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Name of the interface to which the socket should be bound, or, for multicast
                        sockets, the interface on which it should listen. This should
                        be one of the declared interfaces.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="port" type="xs:unsignedShort" use="optional" default="0">
                <xs:annotation>
                    <xs:documentation>
                        Number of the port to which the socket should be bound.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="fixed-port" type="xs:boolean" use="optional" default="false">
                <xs:annotation>
                    <xs:documentation>
                        Whether the port value should remain fixed even if numerically offsets
                        are applied to the other sockets in the socket group..
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="multicast-address" type="xs:string" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Multicast address on which the socket should receive multicast
                        traffic. If unspecified, the socket will not be configured
                        to receive multicast.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="multicast-port" type="xs:positiveInteger" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        Port on which the socket should receive multicast
                        traffic. If unspecified, the socket will not be configured
                        to receive multicast.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <!-- Path configurations -->
        <xs:complexType name="named-pathsType">
            <xs:annotation>
                <xs:documentation>
                    A list of named filesystem paths. The paths may or may
                    not be fully specified (i.e. include the actual paths.)
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="path" type="named-pathType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="named-pathType">
            <xs:annotation>
                <xs:documentation>
                    A named filesystem path, but without a requirement to specify
                    the actual path. If no actual path is specified, acts as a
                    as a placeholder in the model (e.g. at the domain level)
                    until a fully specified path definition is applied at a
                    lower level (e.g. at the host level, where available addresses
                    are known.)
                </xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="pathType">
                    <xs:attribute name="name" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>
                            The name of the path. Cannot be one of the standard fixed paths
                            provided by the system:

                            jboss.home.dir - the root directory of the JBoss AS distribution
                            user.home - user's home directory
                            user.dir - user's current working directory
                            java.home - java installation directory
                            jboss.server.base.dir - root directory for an individual server
                                                    instance

                            Note that the system provides other standard paths that can be
                            overridden by declaring them in the configuration file. See
                            the 'relative-to' attribute documentation for a complete
                            list of standard paths.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="pathType">
            <xs:attribute name="path">
                <xs:annotation>
                    <xs:documentation>
                    The actual filesystem path. Treated as an absolute path, unless the
                    'relative-to' attribute is specified, in which case the value
                    is treated as relative to that path.

                    If treated as an absolute path, the actual runtime pathname specified
                    by the value of this attribute will be determined as follows:

                    If this value is already absolute, then the value is directly
                    used.  Otherwise the runtime pathname is resolved in a
                    system-dependent way.  On UNIX systems, a relative pathname is
                    made absolute by resolving it against the current user directory.
                    On Microsoft Windows systems, a relative pathname is made absolute
                    by resolving it against the current directory of the drive named by the
                    pathname, if any; if not, it is resolved against the current user
                    directory.
                    </xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"></xs:minLength>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="relative-to" type="xs:string" use="optional">
                <xs:annotation>
                    <xs:documentation>
                    The name of another previously named path, or of one of the
                    standard paths provided by the system. If 'relative-to' is
                    provided, the value of the 'path' attribute is treated as
                    relative to the path specified by this attribute. The standard
                    paths provided by the system include:

                    jboss.home.dir - the root directory of the JBoss AS distribution
                    user.home - user's home directory
                    user.dir - user's current working directory
                    java.home - java installation directory
                    jboss.server.base.dir - root directory for an individual server
                                            instance
                    jboss.server.config.dir - directory in which server configuration
                                              files are stored.
                    jboss.server.data.dir - directory the server will use for persistent
                                            data file storage
                    jboss.server.log.dir - directory the server will use for
                                           log file storage
                    jboss.server.temp.dir - directory the server will use for
                                           temporary file storage
                    jboss.domain.servers.dir - directory under which a host controller
                                               will create the working area for
                                               individual server instances
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="specified-pathsType">
            <xs:annotation>
                <xs:documentation>
                    A list of named filesystem paths.
                </xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="path" type="specified-pathType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="specified-pathType">
            <xs:annotation>
                <xs:documentation>
                    A named filesystem path.
                </xs:documentation>
            </xs:annotation>
            <xs:attribute name="name" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                    The name of the path. Cannot be one of the standard fixed paths
                    provided by the system:

                    jboss.home.dir - the root directory of the JBoss AS distribution
                    user.home - user's home directory
                    user.dir - user's current working directory
                    java.home - java installation directory
                    jboss.server.base.dir - root directory for an individual server
                                            instance

                    Note that the system provides other standard paths that can be
                    overridden by declaring them in the configuration file. See
                    the 'relative-to' attribute documentation for a complete
                    list of standard paths.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="path" use="required">
                <xs:annotation>
                    <xs:documentation>
                    The actual filesystem path. Treated as an absolute path, unless the
                    'relative-to' attribute is specified, in which case the value
                    is treated as relative to that path.

                    If treated as an absolute path, the actual runtime pathname specified
                    by the value of this attribute will be determined as follows:

                    If this value is already absolute, then the value is directly
                    used.  Otherwise the runtime pathname is resolved in a
                    system-dependent way.  On UNIX systems, a relative pathname is
                    made absolute by resolving it against the current user directory.
                    On Microsoft Windows systems, a relative pathname is made absolute
                    by resolving it against the current directory of the drive named by the
                    pathname, if any; if not, it is resolved against the current user
                    directory.

                    Note relative path declarations have to use '/' as file separator.
                    </xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:minLength value="1"></xs:minLength>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="relative-to" type="xs:string" use="optional">
                <xs:annotation>
                    <xs:documentation>
                    The name of another previously named path, or of one of the
                    standard paths provided by the system. If 'relative-to' is
                    provided, the value of the 'path' attribute is treated as
                    relative to the path specified by this attribute. The standard
                    paths provided by the system include:

                    jboss.home.dir - the root directory of the JBoss AS distribution
                    user.home - user's home directory
                    user.dir - user's current working directory
                    java.home - java installation directory
                    jboss.server.base.dir - root directory for an individual server
                                            instance
                    jboss.server.config.dir - directory in which server configuration
                                              files are stored.
                    jboss.server.data.dir - directory the server will use for persistent
                                            data file storage
                    jboss.server.log.dir - directory the server will use for
                                           log file storage
                    jboss.server.temp.dir - directory the server will use for
                                           temporary file storage
                    jboss.domain.servers.dir - directory under which a host controller
                                               will create the working area for
                                               individual server instances
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <!--  JVM configurations -->
        <xs:complexType name="jvmsType">
            <xs:sequence>
                <xs:element name="jvm" type="namedJvmType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="jvmType">
            <xs:all minOccurs="0" maxOccurs="1">
                <xs:element name="heap" type="heapType" minOccurs="0"/>
                <!-- XX:PermSize, XX:MaxPermSize -->
                <xs:element name="permgen" type="bounded-memory-sizeType" minOccurs="0"/>
                <!-- Xss -->
                <xs:element name="stack" type="memory-sizeType" minOccurs="0"/>
                <xs:element name="agent-lib" type="jvm-agentLibType" minOccurs="0"/>
                <xs:element name="agent-path" type="jvm-agentPathType" minOccurs="0"/>
                <xs:element name="java-agent" type="jvm-javaagentType" minOccurs="0"/>
                <xs:element name="jvm-options" type="jvm-optionsType" minOccurs="0"/>
                <xs:element name="environment-variables" type="environmentVariablesType" minOccurs="0"/>
            </xs:all>
            <xs:attribute name="java-home" type="xs:string"/>
            <xs:attribute name="type" default="SUN">
                <xs:simpleType>
                    <xs:restriction base="xs:token">
                        <xs:enumeration value="SUN">
    			            <xs:annotation>
    			                <xs:documentation>Allows the full set of JVM options to be set via the jvm schema elements</xs:documentation>
    			            </xs:annotation>
                        </xs:enumeration>
                        <xs:enumeration value="IBM">
                            <xs:annotation>
                                <xs:documentation>Sets a subset of the JVM options via the jvm schema elements</xs:documentation>
                            </xs:annotation>
                        </xs:enumeration>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="env-classpath-ignored" default="true" type="xs:boolean"/>
        </xs:complexType>

        <xs:complexType name="namedJvmType">
            <xs:complexContent>
                <xs:extension base="jvmType">
                    <xs:attribute name="name" type="xs:string"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="serverJvmType">
            <xs:complexContent>
                <xs:extension base="namedJvmType">
                    <xs:attribute name="debug-enabled" type="xs:boolean" default="false"/>
                    <xs:attribute name="debug-options" type="xs:string" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

        <xs:complexType name="heapType">
            <xs:attribute name="size" use="optional">
                <xs:annotation>
                    <xs:documentation>Initial JVM heap size</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="max-size" use="optional">
                <xs:annotation>
                    <xs:documentation>Maximum JVM heap size</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="jvm-optionsType">
            <xs:sequence>
                <xs:element name="option" type="jvm-optionType" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="jvm-optionType">
            <xs:attribute name="value" use="required">
                <xs:annotation>
                    <xs:documentation>JVM option value</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="jvm-agentLibType">
            <xs:attribute name="value" use="required">
                <xs:annotation>
                    <xs:documentation>JVM agent lib value </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="jvm-agentPathType">
            <xs:attribute name="value" use="required">
                <xs:annotation>
                    <xs:documentation>JVM agent path value </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="jvm-javaagentType">
            <xs:attribute name="value" use="required">
                <xs:annotation>
                    <xs:documentation>JVM javaagent value </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>

        <xs:complexType name="bounded-memory-sizeType">
            <xs:attribute name="size" type="xs:string"/>
            <xs:attribute name="max-size" type="xs:string"/>
        </xs:complexType>

        <xs:complexType name="memory-sizeType">
            <xs:attribute name="size" type="xs:string" use="required"/>
        </xs:complexType>

        <xs:complexType name="properties-with-boottime">
            <xs:sequence>
                <xs:element name="property" type="boottimePropertyType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="properties">
            <xs:sequence>
                <xs:element name="property" type="propertyType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="environmentVariablesType">
            <xs:sequence>
                <xs:element name="variable" type="propertyType" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>

        <xs:complexType name="propertyType">
            <xs:attribute name="name" use="required"/>
            <xs:attribute name="value" use="optional"/>
        </xs:complexType>

        <xs:complexType name="boottimePropertyType">
            <xs:complexContent>
                <xs:extension base="propertyType">
                    <xs:attribute name="boot-time" type="xs:boolean" default="true"/>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>

    </xs:schema>

Profile:

New to GrepCode? Check out our FAQ | X