<?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://test/xmlobject/test36510"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:test36510="http://test/xmlobject/test36510"
xmlns="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
attributeFormDefault="unqualified">

	<element name="test36510-app" type="test36510:test36510-appType"/>

        <complexType name="test36510-appType">
		<sequence>
		    <element name="testConstraint" type="test36510:testConstraint" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>

         <complexType name="testConstraint">

		<sequence>
			<element name="display-name" type="string" minOccurs="0" maxOccurs="unbounded"/>
			<element name="customConstraint" type="test36510:customConstraint" minOccurs="0"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>

        	<simpleType name="enumType">
			<restriction base="test36510:string">
			<enumeration value="NONE"/>
			<enumeration value="SPECIAL"/>
			<enumeration value="BEST"/>
		</restriction>
	       </simpleType>


        	<complexType name="customConstraint">

		<sequence>
			<element name="description" type="string" minOccurs="0" maxOccurs="unbounded"/>
			<element name="options" type="test36510:enumType"/>
		</sequence>
		<attribute name="id" type="string" use="optional"/>
	</complexType>

        	<simpleType name="string">
		<restriction base="string">
			<whiteSpace value="collapse"/>
		</restriction>
	</simpleType>


</schema>