 
 
 
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="tEgn">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{10}" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="tAge">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="13" />
      <xs:maxInclusive value="19" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="tGender">
    <xs:restriction base="xs:string">
      <xs:enumeration value="male" />
      <xs:enumeration value="female" />
    </xs:restriction>
  </xs:simpleType>

  <xs:group name="gAddress">
    <xs:sequence>
    <xs:element name="country" type="xs:string" />
    <xs:element name="district" type="xs:string" />
    <xs:element name="city" type="xs:string" />
    <xs:element name="zip" type="xs:positiveInteger" />
    </xs:sequence>
  </xs:group>

  <xs:complexType name="tStudent">
    <xs:sequence>
      <xs:element name="name" type="xs:string" />
      <xs:element name="egn" type="tEgn" />
      <xs:element name="age" type="tAge" />
      <xs:element name="gender" type="tGender" />
      <xs:group ref="gAddress" />
    </xs:sequence>
    <xs:attribute name="number" type="xs:positiveInteger" />
  </xs:complexType>

  <xs:complexType name="tClass">
    <xs:sequence>
      <xs:element name="student" type="tStudent" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" />
  </xs:complexType>

  <xs:element name="class" type="tClass" />
</xs:schema>
