<?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. -->

<xsd:schema
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	elementFormDefault="qualified"
	attributeFormDefault="unqualified">


  	<xsd:simpleType name="orderTypeCodedType">
		<xsd:union>
			<xsd:simpleType>
				<xsd:restriction base="xsd:integer">
					<xsd:enumeration  value="1"/>
					<xsd:enumeration value="3"/>
				</xsd:restriction>
			</xsd:simpleType>
 			<xsd:simpleType>
				<xsd:restriction base="xsd:token">
      				<xsd:enumeration value="newConnect"/>
				<xsd:enumeration value="changeService"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:union>
	</xsd:simpleType>


</xsd:schema>
