<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2004 The Apache Software Foundation

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License. -->

<xs:schema
    targetNamespace="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:portlet="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xml="http://www.w3.org/XML/1998/namespace"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified" version="1.0"
    xml:lang="en">
    <xs:annotation>
        <xs:documentation>
                        This is the XML Schema for the Portlet 1.0 deployment
                        descriptor.
        </xs:documentation>
    </xs:annotation>
    <xs:annotation>
        <xs:documentation>
                        The following conventions apply to all J2EE
                        deployment descriptor elements unless indicated
                        otherwise.
                        - In elements that specify a pathname to a file within
                        the
                        same JAR file, relative filenames (i.e., those not
                        starting with "/") are considered relative to the root
                        of
                        the JAR file's namespace. Absolute filenames (i.e.,
                        those
                        starting with "/") also specify names in the root of the

                        JAR file's namespace. In general, relative names are
                        preferred. The exception is .war files where absolute
                        names are preferred for consistency with the Servlet
                        API.
        </xs:documentation>
    </xs:annotation>
    <!--
    ***********************************************************
    -->
    <xs:import
        namespace="http://www.w3.org/XML/1998/namespace"
        schemaLocation="XML.xsd"/>
    <xs:element name="portlet-app"
        type="portlet:portlet-appType">
        <xs:annotation>
            <xs:documentation>
                        The portlet-app element is the root of the deployment
                        descriptor
                        for a portlet application. This element has a required
                        attribute version
                        to specify to which version of the schema the deployment
                        descriptor
                        conforms.
            </xs:documentation>
        </xs:annotation>
        <xs:unique name="portlet-name-uniqueness">
            <xs:annotation>
                <xs:documentation>
                        The portlet element contains the name of a portlet.
                        This name must be unique within the portlet application.

                </xs:documentation>
            </xs:annotation>
            <xs:selector xpath="portlet:portlet"/>
            <xs:field xpath="portlet:portlet-name"/>
        </xs:unique>
        <xs:unique name="custom-portlet-mode-uniqueness">
            <xs:annotation>
                <xs:documentation>
                        The custom-portlet-mode element contains the
                        portlet-mode.
                        This portlet mode must be unique within the portlet
                        application.
                </xs:documentation>
            </xs:annotation>
            <xs:selector xpath="portlet:custom-portlet-mode"/>
            <xs:field xpath="portlet:portlet-mode"/>
        </xs:unique>
        <xs:unique name="custom-window-state-uniqueness">
            <xs:annotation>
                <xs:documentation>
                        The custom-window-state element contains the
                        window-state.
                        This window state must be unique within the portlet
                        application.
                </xs:documentation>
            </xs:annotation>
            <xs:selector xpath="portlet:custom-window-state"/>
            <xs:field xpath="portlet:window-state"/>
        </xs:unique>
        <xs:unique name="user-attribute-name-uniqueness">
            <xs:annotation>
                <xs:documentation>
                        The user-attribute element contains the name the
                        attribute.
                        This name must be unique within the portlet application.

                </xs:documentation>
            </xs:annotation>
            <xs:selector xpath="portlet:user-attribute"/>
            <xs:field xpath="portlet:name"/>
        </xs:unique>
    </xs:element>
    <xs:complexType name="portlet-appType">
        <xs:sequence>
            <xs:element name="portlet" type="portlet:portletType"
                maxOccurs="unbounded">
                <xs:unique name="init-param-name-uniqueness">
                    <xs:annotation>
                        <xs:documentation>
                        The init-param element contains the name the attribute.
                        This name must be unique within the portlet.
                        </xs:documentation>
                    </xs:annotation>
                    <xs:selector xpath="portlet:init-param"/>
                    <xs:field xpath="portlet:name"/>
                </xs:unique>
                <xs:unique name="supports-mime-type-uniqueness">
                    <xs:annotation>
                        <xs:documentation>
                        The supports element contains the supported mime-type.
                        This mime type must be unique within the portlet.
                        </xs:documentation>
                    </xs:annotation>
                    <xs:selector xpath="portlet:supports"/>
                    <xs:field xpath="portlet:mime-type"/>
                </xs:unique>
                <xs:unique name="preference-name-uniqueness">
                    <xs:annotation>
                        <xs:documentation>
                        The preference element contains the name the preference.

                        This name must be unique within the portlet.
                        </xs:documentation>
                    </xs:annotation>
                    <xs:selector
                        xpath="portlet:portlet-preferences/portlet:preference"/>

                    <xs:field xpath="portlet:name"/>
                </xs:unique>
                <xs:unique name="security-role-ref-name-uniqueness">
                    <xs:annotation>
                        <xs:documentation>
                        The security-role-ref element contains the role-name.
                        This role name must be unique within the portlet.
                        </xs:documentation>
                    </xs:annotation>
                    <xs:selector xpath="portlet:security-role-ref"/>
                    <xs:field xpath="portlet:role-name"/>
                </xs:unique>
            </xs:element>
            <xs:element name="custom-portlet-mode"
                type="portlet:custom-portlet-modeType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="custom-window-state"
                type="portlet:custom-window-stateType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="user-attribute"
                type="portlet:user-attributeType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="security-constraint"
                type="portlet:security-constraintType" minOccurs="0"
                maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="version" type="string"
            use="required"/>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="custom-portlet-modeType">
        <xs:annotation>
            <xs:documentation>
                        A custom portlet mode that one or more portlets in
                        this portlet application supports.
                        Used in: portlet-app
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="description"
                type="portlet:descriptionType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="portlet-mode"
                type="portlet:portlet-modeType"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="custom-window-stateType">
        <xs:annotation>
            <xs:documentation>
                        A custom window state that one or more portlets in this
                        portlet application supports.
                        Used in: portlet-app
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="description"
                type="portlet:descriptionType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="window-state"
                type="portlet:window-stateType"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="expiration-cacheType">
        <xs:annotation>
            <xs:documentation>
                        Expriation-cache defines expiration-based caching for
                        this
                        portlet. The parameter indicates
                        the time in seconds after which the portlet output
                        expires.
                        -1 indicates that the output never expires.
                        Used in: portlet
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="int"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="init-paramType">
        <xs:annotation>
            <xs:documentation>
                        The init-param element contains a name/value pair as an
                        initialization param of the portlet
                        Used in:portlet
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="description"
                type="portlet:descriptionType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="name" type="portlet:nameType"/>
            <xs:element name="value" type="portlet:valueType"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="keywordsType">
        <xs:annotation>
            <xs:documentation>
                        Locale specific keywords associated with this portlet.
                        The kewords are separated by commas.
                        Used in: portlet-info
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="mime-typeType">
        <xs:annotation>
            <xs:documentation>
                        MIME type name, e.g. "text/html".
                        The MIME type may also contain the wildcard
                        character '*', like "text/*" or "*/*".
                        Used in: supports
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="nameType">
        <xs:annotation>
            <xs:documentation>
                        The name element contains the name of a parameter.
                        Used in: init-param, ...
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="portletType">
        <xs:annotation>
            <xs:documentation>
                        The portlet element contains the declarative data of a
                        portlet.
                        Used in: portlet-app
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="description"
                type="portlet:descriptionType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="portlet-name"
                type="portlet:portlet-nameType"/>
            <xs:element name="display-name"
                type="portlet:display-nameType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="portlet-class"
                type="portlet:portlet-classType"/>
            <xs:element name="init-param"
                type="portlet:init-paramType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="expiration-cache"
                type="portlet:expiration-cacheType" minOccurs="0"/>
            <xs:element name="supports" type="portlet:supportsType"
                maxOccurs="unbounded"/>
            <xs:element name="supported-locale"
                type="portlet:supported-localeType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:choice>
                <xs:sequence>
                    <xs:element name="resource-bundle"
                        type="portlet:resource-bundleType"/>
                    <xs:element name="portlet-info"
                        type="portlet:portlet-infoType" minOccurs="0"/>
                </xs:sequence>
                <xs:element name="portlet-info"
                    type="portlet:portlet-infoType"/>
            </xs:choice>
            <xs:element name="portlet-preferences"
                type="portlet:portlet-preferencesType" minOccurs="0"/>
            <xs:element name="security-role-ref"
                type="portlet:security-role-refType" minOccurs="0"
                maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:simpleType name="portlet-classType">
        <xs:annotation>
            <xs:documentation>
                        The portlet-class element contains the fully
                        qualified class name of the portlet.
                        Used in: portlet
            </xs:documentation>
        </xs:annotation>
        <xs:restriction
            base="portlet:fully-qualified-classType"/>
    </xs:simpleType>
    <xs:complexType name="portlet-collectionType">
        <xs:annotation>
            <xs:documentation>
                        The portlet-collectionType is used to identify a subset
                        of portlets within a portlet application to which a
                        security constraint applies.
                        Used in: security-constraint
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="portlet-name"
                type="portlet:portlet-nameType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="portlet-infoType">
        <xs:sequence>
            <xs:element name="title" type="portlet:titleType"/>
            <xs:element name="short-title"
                type="portlet:short-titleType" minOccurs="0"/>
            <xs:element name="keywords" type="portlet:keywordsType"
                minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="portlet-modeType">
        <xs:annotation>
            <xs:documentation>
                        Portlet modes. The specification pre-defines the
                        following values
                        as valid portlet mode constants:
                        "edit", "help", "view".
                        Portlet mode names are not case sensitive.
                        Used in: custom-portlet-mode, supports
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="portlet-nameType">
        <xs:annotation>
            <xs:documentation>
                        The portlet-name element contains the canonical name of
                        the
                        portlet. Each portlet name is unique within the portlet
                        application.
                        Used in: portlet, portlet-mapping
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="portlet-preferencesType">
        <xs:annotation>
            <xs:documentation>
                        Portlet persistent preference store.
                        Used in: portlet
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="preference"
                type="portlet:preferenceType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="preferences-validator"
                type="portlet:preferences-validatorType" minOccurs="0"/>

        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="preferenceType">
        <xs:annotation>
            <xs:documentation>
                        Persistent preference values that may be used for
                        customization
                        and personalization by the portlet.
                        Used in: portlet-preferences
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="name" type="portlet:nameType"/>
            <xs:element name="value" type="portlet:valueType"
                minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="read-only"
                type="portlet:read-onlyType" minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:simpleType name="preferences-validatorType">
        <xs:annotation>
            <xs:documentation>
                        The class specified under preferences-validator
                        implements
                        the PreferencesValidator interface to validate the
                        preferences settings.
                        Used in: portlet-preferences
            </xs:documentation>
        </xs:annotation>
        <xs:restriction
            base="portlet:fully-qualified-classType"/>
    </xs:simpleType>
    <xs:simpleType name="read-onlyType">
        <xs:annotation>
            <xs:documentation>
                        read-only indicates that a setting cannot
                        be changed in any of the standard portlet modes
                        ("view","edit" or "help").
                        Per default all preferences are modifiable.
                        Valid values are:
                        - true for read-only
                        - false for modifiable
                        Used in: preferences
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="portlet:string">
            <xs:enumeration value="true"/>
            <xs:enumeration value="false"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="resource-bundleType">
        <xs:annotation>
            <xs:documentation>
                        Filename of the resource bundle containing the language
                        specific
                        portlet informations in different languages.
                        Used in: portlet-info
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="role-linkType">
        <xs:annotation>
            <xs:documentation>
                        The role-link element is a reference to a defined
                        security role.
                        The role-link element must contain the name of one of
                        the
                        security roles defined in the security-role elements.
                        Used in: security-role-ref
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="security-constraintType">
        <xs:annotation>
            <xs:documentation>
                        The security-constraintType is used to associate
                        intended security constraints with one or more portlets.

                        Used in: portlet-app
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="display-name"
                type="portlet:display-nameType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="portlet-collection"
                type="portlet:portlet-collectionType"/>
            <xs:element name="user-data-constraint"
                type="portlet:user-data-constraintType"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="security-role-refType">
        <xs:annotation>
            <xs:documentation>
                        The security-role-ref element contains the declaration
                        of a
                        security role reference in the code of the web
                        application. The
                        declaration consists of an optional description, the
                        security
                        role name used in the code, and an optional link to a
                        security
                        role. If the security role is not specified, the
                        Deployer must
                        choose an appropriate security role.
                        The value of the role name element must be the String
                        used
                        as the parameter to the
                        EJBContext.isCallerInRole(String roleName) method
                        or the HttpServletRequest.isUserInRole(String role)
                        method.
                        Used in: portlet
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="description"
                type="portlet:descriptionType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="role-name"
                type="portlet:role-nameType"/>
            <xs:element name="role-link"
                type="portlet:role-linkType" minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="short-titleType">
        <xs:annotation>
            <xs:documentation>
                        Locale specific short version of the static title.
                        Used in: portlet-info
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="supportsType">
        <xs:annotation>
            <xs:documentation>
                        Supports indicates the portlet modes a
                        portlet supports for a specific content type. All
                        portlets must
                        support the view mode.
                        Used in: portlet
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="mime-type"
                type="portlet:mime-typeType"/>
            <xs:element name="portlet-mode"
                type="portlet:portlet-modeType" minOccurs="0"
                maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="supported-localeType">
        <xs:annotation>
            <xs:documentation>
                        Indicated the locales the portlet supports.
                        Used in: portlet
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="titleType">
        <xs:annotation>
            <xs:documentation>
                        Locale specific static title for this portlet.
                        Used in: portlet-info
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:simpleType name="transport-guaranteeType">
        <xs:annotation>
            <xs:documentation>
                        The transport-guaranteeType specifies that
                        the communication between client and portlet should
                        be NONE, INTEGRAL, or CONFIDENTIAL.
                        NONE means that the portlet does not
                        require any transport guarantees. A value of
                        INTEGRAL means that the portlet requires that the
                        data sent between the client and portlet be sent in
                        such a way that it can't be changed in transit.
                        CONFIDENTIAL means that the portlet requires
                        that the data be transmitted in a fashion that
                        prevents other entities from observing the contents
                        of the transmission.
                        In most cases, the presence of the INTEGRAL or
                        CONFIDENTIAL flag will indicate that the use
                        of SSL is required.
                          Used in: user-data-constraint
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="portlet:string">
            <xs:enumeration value="NONE"/>
            <xs:enumeration value="INTEGRAL"/>
            <xs:enumeration value="CONFIDENTIAL"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="user-attributeType">
        <xs:annotation>
            <xs:documentation>
                        User attribute defines a user specific attribute that
                        the
                        portlet application needs. The portlet within this
                        application
                        can access this attribute via the request parameter
                        USER_INFO
                        map.
                        Used in: portlet-app
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="description"
                type="portlet:descriptionType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="name" type="portlet:nameType"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="user-data-constraintType">
        <xs:annotation>
            <xs:documentation>
                        The user-data-constraintType is used to indicate how
                        data communicated between the client and portlet should
                        be
                        protected.
                        Used in: security-constraint
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="description"
                type="portlet:descriptionType" minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="transport-guarantee"
                type="portlet:transport-guaranteeType"/>
        </xs:sequence>
        <xs:attribute name="id" type="string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="valueType">
        <xs:annotation>
            <xs:documentation>
                        The value element contains the value of a parameter.
                        Used in: init-param
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="window-stateType">
        <xs:annotation>
            <xs:documentation>
                        Portlet window state. Window state names are not case
                        sensitive.
                        Used in: custom-window-state
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string"/>
        </xs:simpleContent>
    </xs:complexType>
    <!--- everything below is copied from j2ee_1_4.xsd -->
    <xs:complexType name="descriptionType">
        <xs:annotation>
            <xs:documentation>
                        The description element is used to provide text
                        describing the
                        parent element. The description element should include
                        any
                        information that the portlet application war file
                        producer wants
                        to provide to the consumer of the portlet application
                        war file
                        (i.e., to the Deployer). Typically, the tools used by
                        the
                        portlet application war file consumer will display the
                        description when processing the parent element that
                        contains the
                        description. It has an optional attribute xml:lang to
                        indicate
                        which language is used in the description according to
                        RFC 1766 (http://www.ietf.org/rfc/rfc1766.txt). The
                        default
                        value of this attribute is English("en").
                        Used in: init-param, portlet, portlet-app, security-role

            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="string">
                <xs:attribute ref="xml:lang"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="display-nameType">
        <xs:annotation>
            <xs:documentation>
                        The display-name type contains a short name that is
                        intended
                        to be displayed by tools. It is used by display-name
                        elements. The display name need not be unique.
                        Example:
                        ...
                <display-name xml:lang="en">Employee Self
                        Service</display-name>

                        It has an optional attribute xml:lang to indicate
                        which language is used in the description according to
                        RFC 1766 (http://www.ietf.org/rfc/rfc1766.txt). The
                        default
                        value of this attribute is English("en").
            </xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="portlet:string">
                <xs:attribute ref="xml:lang"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:simpleType name="fully-qualified-classType">
        <xs:annotation>
            <xs:documentation>
                        The elements that use this type designate the name of a
                        Java class or interface.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="portlet:string"/>
    </xs:simpleType>
    <xs:simpleType name="role-nameType">
        <xs:annotation>
            <xs:documentation>
                        The role-nameType designates the name of a security
                        role.

                        The name must conform to the lexical rules for an
                        NMTOKEN.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="NMTOKEN"/>
    </xs:simpleType>
    <xs:simpleType name="string">
        <xs:annotation>
            <xs:documentation>
                        This is a special string datatype that is defined by
                        J2EE
                        as a base type for defining collapsed strings. When
                        schemas require trailing/leading space elimination as
                        well as collapsing the existing whitespace, this base
                        type may be used.
            </xs:documentation>
        </xs:annotation>
        <xs:restriction base="string">
            <xs:whiteSpace value="collapse"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
