<?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'
   targetNamespace='http://openuri.org/testNumerals'
   elementFormDefault='qualified'>
  <xs:element name='doc'>
    <xs:complexType>
      <xs:sequence>
        <xs:choice minOccurs='0' maxOccurs='unbounded'>
          <xs:element name='int' type='xs:int' />
          <xs:element name='short' type='xs:short' />
          <xs:element name='byte' type='xs:byte' />
          <xs:element name='double' type='xs:double' />
          <xs:element name='float' type='xs:float' />
          <xs:element name='boolean' type='xs:boolean' />
          <xs:element name='string' type='xs:string' />
          <xs:element name='decimal' type='xs:decimal' />
          <xs:element name='integer' type='xs:integer' />
          <xs:element name='long' type='xs:long' />
          <xs:element name='hexBinary' type='xs:hexBinary' />
          <xs:element name='base64Binary' type='xs:base64Binary' />
          <xs:element name='date' type='xs:date' />
          <xs:element name='dateTime' type='xs:dateTime' />
          <xs:element name='gYearMonth' type='xs:gYearMonth' />
          <xs:element name='duration' type='xs:duration' />
          <xs:element name='QName' type='xs:QName' />
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:attribute name='price' type='xs:float' />
  <xs:attribute name='quant' type='xs:byte' />

</xs:schema>