<?xml version="1.0"?>
<!--
/*   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"
  targetNamespace="http://www.example.com/IPO"
  xmlns="http://www.example.com/IPO"
  xmlns:ipo="http://www.example.com/IPO"
  elementFormDefault="qualified"
  attributeFormDefault="unqualified">

  <xs:redefine schemaLocation="enum1.xsd_">

    <xs:simpleType name="orderTypeCodedType">
      <xs:restriction base="orderTypeCodedType">
        <xs:enumeration value="newConnect"/>
      </xs:restriction>
    </xs:simpleType>

  </xs:redefine>

</xs:schema>
