<?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'
   xmlns:person='person'
   targetNamespace='person' elementFormDefault="qualified">

  <xs:element name='Person' type='person:person'/>

  <xs:complexType name='person'>
    <xs:sequence>
      <xs:element name='Name' type='person:name'/>
      <xs:sequence maxOccurs='unbounded' minOccurs='0'>
        <xs:element name='Sibling' type='person:person'/>
      </xs:sequence>
    </xs:sequence>
    <xs:attribute name='Sex' type='person:sex'/>
    <xs:attribute name='Birthday' type='xs:date'/>
  </xs:complexType>

  <xs:complexType name='name'>
    <xs:sequence>
      <xs:element name='First' type='xs:string'/>
      <xs:element name='Last' type='xs:string'/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name='sex'>
    <xs:restriction base='xs:string'>
      <xs:whiteSpace value='collapse'/>
      <xs:enumeration value='male'/>
      <xs:enumeration value='female'/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>
