<?xml version="1.0" encoding="UTF-8"?>
<!--
* Licensed Materials - Property of IBM
* Restricted Materials of IBM
* 5724-U18
* (C) COPYRIGHT IBM CORP. 2010 All Rights Reserved.
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with
* IBM Corp.
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

	<xsd:element name="component-registry">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" ref="component-descriptor" />
			</xsd:sequence>
			<xsd:attribute name="package" type="xsd:string" />
			<xsd:attribute name="basedir" type="xsd:string" />
		</xsd:complexType>
		<xsd:unique name="component-descriptor-name-uniqueness">
			<xsd:selector xpath="component-descriptor"/>
			<xsd:field    xpath="@name"/>
		</xsd:unique>
	</xsd:element>

	<xsd:element name="component-descriptor">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="property-list" />
				<xsd:element ref="render-block" minOccurs="0" maxOccurs="1"/>
			</xsd:sequence>
			<xsd:attribute name="instance-class" type="xsd:string" />
			<xsd:attribute name="descriptor-class" type="xsd:string" />
			<xsd:attribute name="name" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="render-block">
	</xsd:element>

	<xsd:element name="property-list">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" ref="property" />
			</xsd:sequence>
		</xsd:complexType>
		<xsd:unique name="property-name-uniqueness">
			<xsd:selector xpath="property"/>
			<xsd:field    xpath="@name"/>
		</xsd:unique>
	</xsd:element>
	<xsd:element name="property">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="flag" minOccurs="0" maxOccurs="unbounded" />
				<xsd:element ref="default-value" minOccurs="0" maxOccurs="1" />
			</xsd:sequence>
			<xsd:attribute name="name" type="xsd:string" use="required" />
		</xsd:complexType>
		<xsd:unique name="flag-name-uniqueness">
			<xsd:selector xpath="flag"/>
			<xsd:field    xpath="@name"/>
		</xsd:unique>
	</xsd:element>

	<xsd:element name="flag">
		<xsd:complexType>
			<xsd:attribute name="name" type="flag" use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:simpleType name="flag">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="global"></xsd:enumeration>
			<xsd:enumeration value="system"></xsd:enumeration>
			<xsd:enumeration value="final"></xsd:enumeration>
			<xsd:enumeration value="translatable"></xsd:enumeration>
			<xsd:enumeration value="renderid"></xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:element name="default-value" type="xsd:string" />

</xsd:schema>