<!-- 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:schema>