<?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.
-->
<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" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" xml:lang="en">
	<annotation>
		<documentation>
		This is the XML Schema for the Portlet 1.0 deployment descriptor.
		</documentation>
	</annotation>
	<annotation>
		<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.
		</documentation>
	</annotation>
	<!-- *********************************************************** -->
	<import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
	<element name="portlet-app" type="portlet:portlet-appType">
		<annotation>
			<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.
			</documentation>
		</annotation>
		<unique name="portlet-name-uniqueness">
			<annotation>
				<documentation>
				The portlet element contains the name of a portlet.
				This name must be unique within the portlet application.
				 </documentation>
			</annotation>
			<selector xpath="portlet:portlet"/>
			<field xpath="portlet:portlet-name"/>
		</unique>
		<unique name="custom-portlet-mode-uniqueness">
			<annotation>
				<documentation>
				The custom-portlet-mode element contains the portlet-mode.
				This portlet mode must be unique within the portlet application.
				</documentation>
			</annotation>
			<selector xpath="portlet:custom-portlet-mode"/>
			<field xpath="portlet:portlet-mode"/>
		</unique>
		<unique name="custom-window-state-uniqueness">
			<annotation>
				<documentation>
				The custom-window-state element contains the window-state.
				This window state must be unique within the portlet application.
				</documentation>
			</annotation>
			<selector xpath="portlet:custom-window-state"/>
			<field xpath="portlet:window-state"/>
		</unique>
		<unique name="user-attribute-name-uniqueness">
			<annotation>
				<documentation>
				The user-attribute element contains the name the attribute.
				This name must be unique within the portlet application.
				</documentation>
			</annotation>
			<selector xpath="portlet:user-attribute"/>
			<field xpath="portlet:name"/>
		</unique>
	</element>
	<complexType name="portlet-appType">
		<sequence>
			<element name="portlet" type="portlet:portletType" minOccurs="0" maxOccurs="unbounded">
				<unique name="init-param-name-uniqueness">
					<annotation>
						<documentation>
						The init-param element contains the name the attribute.
						This name must be unique within the portlet.
						</documentation>
					</annotation>
					<selector xpath="portlet:init-param"/>
					<field xpath="portlet:name"/>
				</unique>
				<unique name="supports-mime-type-uniqueness">
					<annotation>
						<documentation>
						The supports element contains the supported mime-type.
						This mime type must be unique within the portlet.
						</documentation>
					</annotation>
					<selector xpath="portlet:supports"/>
					<field xpath="mime-type"/>
				</unique>
				<unique name="preference-name-uniqueness">
					<annotation>
						<documentation>
						The preference element contains the name the preference.
						This name must be unique within the portlet.
						</documentation>
					</annotation>
					<selector xpath="portlet:portlet-preferences/portlet:preference"/>
					<field xpath="portlet:name"/>
				</unique>
				<unique name="security-role-ref-name-uniqueness">
					<annotation>
						<documentation>
						The security-role-ref element contains the role-name.
						This role name must be unique within the portlet.
						</documentation>
					</annotation>
					<selector xpath="portlet:security-role-ref"/>
					<field xpath="portlet:role-name"/>
				</unique>
			</element>
			<element name="custom-portlet-mode" type="portlet:custom-portlet-modeType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="custom-window-state" type="portlet:custom-window-stateType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="user-attribute" type="portlet:user-attributeType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="security-constraint" type="portlet:security-constraintType" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="version" type="string" use="required"/>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="custom-portlet-modeType">
		<annotation>
			<documentation>
			A custom portlet mode that one or more portlets in 
			this portlet application supports.
			Used in: portlet-app
			</documentation>
		</annotation>
		<sequence>
			<element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="portlet-mode" type="portlet:portlet-modeType"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="custom-window-stateType">
		<annotation>
			<documentation>
			A custom window state that one or more portlets in this 
			portlet application supports.
			Used in: portlet-app
			</documentation>
		</annotation>
		<sequence>
			<element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="window-state" type="portlet:window-stateType"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="expiration-cacheType">
		<annotation>
			<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
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="int"/>
		</simpleContent>
	</complexType>
	<complexType name="init-paramType">
		<annotation>
			<documentation>
			The init-param element contains a name/value pair as an 
			initialization param of the portlet
			Used in:portlet
			</documentation>
		</annotation>
		<sequence>
			<element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="name" type="portlet:nameType"/>
			<element name="value" type="portlet:valueType"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="keywordsType">
		<annotation>
			<documentation>
			Locale specific keywords associated with this portlet.
			The kewords are separated by commas.
			Used in: portlet-info
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<complexType name="mime-typeType">
		<annotation>
			<documentation>
			MIME type name, e.g. "text/html".
			The MIME type may also contain the wildcard
			character '*', like "text/*" or "*/*".
			Used in: supports
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<complexType name="nameType">
		<annotation>
			<documentation>
			The name element contains the name of a parameter. 
			Used in: init-param, ...
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<complexType name="portletType">
		<annotation>
			<documentation>
			The portlet element contains the declarative data of a portlet. 
			Used in: portlet-app
			</documentation>
		</annotation>
		<sequence>
			<element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="portlet-name" type="portlet:portlet-nameType"/>
			<element name="display-name" type="portlet:display-nameType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="portlet-class" type="portlet:portlet-classType"/>
			<element name="init-param" type="portlet:init-paramType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="expiration-cache" type="portlet:expiration-cacheType" minOccurs="0"/>
			<element name="supports" type="portlet:supportsType" maxOccurs="unbounded"/>
			<element name="supported-locale" type="portlet:supported-localeType" minOccurs="0" maxOccurs="unbounded"/>
			<choice>
				<sequence>
					<element name="resource-bundle" type="portlet:resource-bundleType"/>
					<element name="portlet-info" type="portlet:portlet-infoType" minOccurs="0"/>
   			  	</sequence>
   				<element name="portlet-info" type="portlet:portlet-infoType"/>
			</choice>
			<element name="portlet-preferences" type="portlet:portlet-preferencesType" minOccurs="0"/>
			<element name="security-role-ref" type="portlet:security-role-refType" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<simpleType name="portlet-classType">
		<annotation>
			<documentation>
			 The portlet-class element contains the fully
			 qualified class name of the portlet.
			Used in: portlet
			</documentation>
		</annotation>
		<restriction base="portlet:fully-qualified-classType"/>
	</simpleType>
	<complexType name="portlet-collectionType">
		<annotation>
			<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
			</documentation>
		</annotation>
		<sequence>
			<element name="portlet-name" type="portlet:portlet-nameType" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<complexType name="portlet-infoType">
		<sequence>
			<element name="title" type="portlet:titleType"/>
			<element name="short-title" type="portlet:short-titleType" minOccurs="0"/>
			<element name="keywords" type="portlet:keywordsType" minOccurs="0"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="portlet-modeType">
		<annotation>
			<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
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<complexType name="portlet-nameType">
		<annotation>
			<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
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<complexType name="portlet-preferencesType">
		<annotation>
			<documentation>
			Portlet persistent preference store.
			Used in: portlet
			</documentation>
		</annotation>
		<sequence>
			<element name="preference" type="portlet:preferenceType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="preferences-validator" type="portlet:preferences-validatorType" minOccurs="0"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="preferenceType">
		<annotation>
			<documentation>
			Persistent preference values that may be used for customization 
			and personalization by the portlet.
			Used in: portlet-preferences
			</documentation>
		</annotation>
		<sequence>
			<element name="name" type="portlet:nameType"/>
			<element name="value" type="portlet:valueType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="read-only" type="portlet:read-onlyType" minOccurs="0"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<simpleType name="preferences-validatorType">
		<annotation>
			<documentation>
			The class specified under preferences-validator implements
			the PreferencesValidator interface to validate the 
			preferences settings.
			Used in: portlet-preferences
			</documentation>
		</annotation>
		<restriction base="portlet:fully-qualified-classType"/>
	</simpleType>
	<simpleType name="read-onlyType">
		<annotation>
			<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
			</documentation>
		</annotation>
		<restriction base="portlet:string">
			<enumeration value="true"/>
			<enumeration value="false"/>
		</restriction>
	</simpleType>
	<complexType name="resource-bundleType">
		<annotation>
			<documentation>
			Filename of the resource bundle containing the language specific 
			portlet informations in different languages.
			Used in: portlet-info
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<complexType name="role-linkType">
		<annotation>
			<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
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<complexType name="security-constraintType">
		<annotation>
			<documentation>
			The security-constraintType is used to associate
			intended security constraints with one or more portlets.
			Used in: portlet-app
			</documentation>
		</annotation>
		<sequence>
			<element name="display-name" type="portlet:display-nameType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="portlet-collection" type="portlet:portlet-collectionType"/>
			<element name="user-data-constraint" type="portlet:user-data-constraintType"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="security-role-refType">
		<annotation>
			<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
			</documentation>
		</annotation>
		<sequence>
			<element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="role-name" type="portlet:role-nameType"/>
			<element name="role-link" type="portlet:role-linkType" minOccurs="0"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="short-titleType">
		<annotation>
			<documentation>
			Locale specific short version of the static title.
			Used in: portlet-info
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<complexType name="supportsType">
		<annotation>
			<documentation>
			Supports indicates the portlet modes a 
			portlet supports for a specific content type. All portlets must 
			support the view mode. 
			Used in: portlet
			</documentation>
		</annotation>
		<sequence>
			<element name="mime-type" type="portlet:mime-typeType"/>
			<element name="portlet-mode" type="portlet:portlet-modeType" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="supported-localeType">
		<annotation>
			<documentation>
			Indicated the locales the portlet supports.
			Used in: portlet
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<complexType name="titleType">
		<annotation>
			<documentation>
			Locale specific static title for this portlet.
			Used in: portlet-info
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<simpleType name="transport-guaranteeType">
		<annotation>
			<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
			</documentation>
		</annotation>
		<restriction base="portlet:string">
			<enumeration value="NONE"/>
			<enumeration value="INTEGRAL"/>
			<enumeration value="CONFIDENTIAL"/>
		</restriction>
	</simpleType>
	<complexType name="user-attributeType">
		<annotation>
			<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
			</documentation>
		</annotation>
		<sequence>
			<element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="name" type="portlet:nameType"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="user-data-constraintType">
		<annotation>
			<documentation>
			The user-data-constraintType is used to indicate how
			data communicated between the client and portlet should be
			protected.
			Used in: security-constraint
			</documentation>
		</annotation>
		<sequence>
			<element name="description" type="portlet:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
			<element name="transport-guarantee" type="portlet:transport-guaranteeType"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>
	<complexType name="valueType">
		<annotation>
			<documentation>
			The value element contains the value of a parameter.
			Used in: init-param
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<complexType name="window-stateType">
		<annotation>
			<documentation>
			Portlet window state. Window state names are not case sensitive.
			Used in: custom-window-state
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string"/>
		</simpleContent>
	</complexType>
	<!--- everything below is copied from j2ee_1_4.xsd -->
	<complexType name="descriptionType">
		<annotation>
			<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
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="string">
				<attribute ref="xml:lang"/>
			</extension>
		</simpleContent>
	</complexType>
	<complexType name="display-nameType">
		<annotation>
			<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”).
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="portlet:string">
				<attribute ref="xml:lang"/>
			</extension>
		</simpleContent>
	</complexType>
	<simpleType name="fully-qualified-classType">
		<annotation>
			<documentation>
			The elements that use this type designate the name of a
			Java class or interface.
			</documentation>
		</annotation>
		<restriction base="portlet:string"/>
	</simpleType>
	<simpleType name="role-nameType">
		<annotation>
			<documentation>
			The role-nameType designates the name of a security role.

			The name must conform to the lexical rules for an NMTOKEN.
			</documentation>
		</annotation>
		<restriction base="NMTOKEN"/>
	</simpleType>
	<simpleType name="string">
		<annotation>
			<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.
			</documentation>
		</annotation>
		<restriction base="string">
			<whiteSpace value="collapse"/>
		</restriction>
	</simpleType>
</schema>
