<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.ibm.com/websphere/appserver/schemas/6.0/ibm-portal-base.xsd" 
           elementFormDefault="qualified" 
           attributeFormDefault="unqualified" 
           version="0.9.2.0" 
           xml:lang="en" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:base="http://www.ibm.com/websphere/appserver/schemas/6.0/ibm-portal-base.xsd">
	<!--
             Used Descriptive Element Types
    -->
	<!-- 
        title
    -->
	<xs:complexType name="Text">
		<xs:annotation>
			<xs:documentation>The description element provides a NLS-enabled text. The text can be parametrized, by creating Parameter Definitions, which point to the unique name assigned to this Text element</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:choice>
				<xs:element name="string" type="xs:string"/>
				<xs:element name="nls-ref" type="base:NlsRef"/>
				<xs:element name="nls-string" type="base:NlsString" maxOccurs="unbounded"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="uniqueName" type="xs:ID" use="optional"/>
	</xs:complexType>
	<!-- 
        nlsRef
    -->
	<xs:complexType name="NlsRef">
		<xs:annotation>
			<xs:documentation>
			The nls-ref element is used to specify localized information, which is defined externally (e.g. in a Java Resource Bundle).
			The key for lookup of the appropriate information is specified as part of this element.
			A reference to the place where the NLS Mapping is provided must be specified.
			nlsRef can be used within any other element that requires an NLS
			string to be displayed, for instance in the title element.
            </xs:documentation>
		</xs:annotation>
		<xs:attribute name="key" type="xs:string" use="required"/>
		<xs:attribute name="locationName" type="xs:string" use="required"/>
	</xs:complexType>
	<!--
    stringRef
    -->
	<xs:complexType name="NlsString">
		<xs:annotation>
			<xs:documentation>
			The nls-string element is used to specify localized strings during development.  It is expected that users will switch
			to using resource bundles when the product has been NLS enabled and ready to ship.  The xml:lang attribute enables a programmer to get
			started with the code without having to define a resource bundle right at the start. The value of the xml:lang attribute
			should adhere to RFC 1766 (http://www.ietf.org/rfc/rfc1766.txt).
			The default value of the xml:lang attribute is English(en).
            </xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="lang" type="xs:string" default="en"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- 
        Name/Values Pairs
    -->
	<xs:complexType name="Preference">
		<xs:annotation>
			<xs:documentation>
	            Preferences described byh Name/Values Pairs
            </xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="value" type="base:Text" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="name" type="xs:string" use="required"/>
	</xs:complexType>
	<!-- 
        Parameter Constraints
    -->
	<xs:complexType name="Constraint">
		<xs:sequence>
			<!-- A range of values -->
			<xs:element name="range" type="base:ConstraintRange" minOccurs="0"/>
			<!-- A regular expression -->
			<xs:element name="regex" type="base:ConstraintRegex" minOccurs="0"/>
			<!-- A list of valid values -->
			<xs:element name="choice" type="base:Text" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ConstraintRange">
		<xs:annotation>
			<xs:documentation>
		The range for values of a (numeric) template parameter.
		</xs:documentation>
		</xs:annotation>
		<xs:attribute name="minValue" type="xs:decimal" use="required"/>
		<xs:attribute name="maxValue" type="xs:decimal" use="required"/>
		<!-- The minimum value of the range of valid values -->
		<!-- The maximum value of the range of valid values -->
	</xs:complexType>
	<xs:complexType name="ConstraintRegex">
		<xs:annotation>
			<xs:documentation>
		The regular expression describing valid values for this           
	</xs:documentation>
		</xs:annotation>
		<xs:attribute name="value" type="xs:string" use="required"/>
	</xs:complexType>
	<!--##### VERSION ##################################-->
	<!--##### VRML format, simple string type           -->
	<!--##### VRML format, simple string type           -->
	<!--##### This is the preferred format for          -->
	<!--##### representing version information          -->
	<xs:simpleType name="VersionString">
		<xs:restriction base="xs:string">
			<xs:pattern value="([0-9]{1,9})(\.[0-9]{1,9}){1,3}"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
