<?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. -->

<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified"
  attributeFormDefault="unqualified">

  <xs:simpleType name="orderTypeCodedTypeNew">
    <xs:restriction base="orderTypeCodedType">
      <xs:enumeration value="newConnect"/>
      <xs:enumeration value="changeService"/>
      <xs:enumeration value="changeOfService"/>
      <xs:enumeration value="disconnectService"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>
