<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:per="http://openuri.org/test/Person" targetNamespace="http://openuri.org/test/Person" elementFormDefault="qualified">

    <xs:element name="Person" type="per:personType"/>

    <xs:complexType name="personType">
		<xs:sequence>
			<xs:element name="Name" type="per:name"/>
			<xs:sequence maxOccurs="unbounded" minOccurs="0">
				<xs:element name="Sibling" type="per:personType"/>
			</xs:sequence>
		</xs:sequence>
		<xs:attribute name="Sex" type="per: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:complexType name="middlename">
		<xs:complexContent>
			<xs:extension base="per:name">
				<xs:sequence>
					<xs:element name="Middle" type="xs:string"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
    
    <xs:complexType name="justName">
        <xs:sequence>
            <xs:element name="Name" type="per:name"/>
        </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>
