<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://www.fundaciontripartita.es/schemas" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.fundaciontripartita.es/schemas" elementFormDefault="qualified">
  <xs:annotation>
    <xs:documentation>Esquema XML para la carga masiva de participantes.</xs:documentation>
  </xs:annotation>
  <xs:simpleType name="t_nombre">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50"/>
      <xs:minLength value="1"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_apellido">
    <xs:restriction base="xs:string">
      <xs:maxLength value="30"/>
      <xs:minLength value="1"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_apellido2">
    <xs:restriction base="xs:string">
      <xs:maxLength value="30"/>
      <xs:minLength value="0"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="t_documento">
    <xs:restriction base="xs:string">      
      <xs:length value="9"/>
      <xs:pattern value="([Xx]|[Yy]|[0-9])[0-9]{7}([a-z]|[A-Z])"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="sexo">
    <xs:restriction base="xs:string">
      <xs:enumeration value="M"/>
      <xs:enumeration value="F"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="niss">
    <xs:restriction base="xs:string">
      <xs:pattern value="\d{12}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_fecha">
    <xs:restriction base="xs:string">
      <xs:pattern value="(((0[1-9]|[12][0-9]|3[01])([-./])(0[13578]|10|12)([-./])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-./])(0[469]|11)([-./])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-./])(02)([-./])(\d{4}))|((29)(\.|-|/)(02)([-./])([02468][048]00))|((29)([-./])(02)([-./])([13579][26]00))|((29)([-./])(02)([-./])([0-9][0-9][0][48]))|((29)([-./])(02)([-./])([0-9][0-9][2468][048]))|((29)([-./])(02)([-./])([0-9][0-9][13579][26])))"/>
    </xs:restriction>
  </xs:simpleType>
  <!--El tipo de documento será opcional en el ejercicio 2010. En sucesivos ejercicios
  será obligatorio. Los posibles valores son 10 - NIF y 60 - NIE-->
  <xs:simpleType name="t_tipo_documento">
    <xs:restriction base="xs:int">
      <xs:pattern value="[16]{1}[0]{1}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="participantes">
    <xs:complexType>
      <xs:sequence maxOccurs="unbounded">
        <xs:element name="participante">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="D_DOCUMENTO" type="t_documento" nillable="false"/>
              <xs:element name="N_TIPO_DOCUMENTO" type="t_tipo_documento" nillable="false"/>
              <xs:element name="D_APELLIDO1" type="t_apellido" nillable="false"/>
              <xs:element name="D_APELLIDO2" type="t_apellido2" nillable="true"/>
              <xs:element name="D_NOMBRE" type="t_nombre" nillable="false"/>
              <xs:element name="D_NISS" type="niss" nillable="false"/>
              <xs:element name="B_SEXO" type="sexo" nillable="false"/>
              <xs:element name="F_NACIMIENTO" type="t_fecha" nillable="true"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>