<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <!-- TIPOS SIMPLES -->
  <xs:annotation>
    <xs:documentation>Esquema XML para la finalización masiva de grupos de una empresa Organizadora.</xs:documentation>
  </xs:annotation>
  <xs:simpleType name="t_nombre">
    <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_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_diploma">
    <xs:restriction base="xs:string">
      <xs:enumeration value="S"/>
      <xs:enumeration value="N"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_idAccion">
    <xs:restriction base="xs:string">
      <xs:maxLength value="5"/>
      <xs:minLength value="1"/>
      <xs:whiteSpace value="collapse"/>
      <xs:pattern value="[0-9]{1,5}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_nif">
    <xs:restriction base="xs:string">
      <xs:length value="9"/>
      <xs:pattern value="([XxYyZzKkLlMm]|[0-9])[0-9]{7}([a-z]|[A-Z])"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cif">
    <xs:restriction base="xs:string">
      <xs:length value="9"/>
      <xs:pattern value="[AaBbCcDdEeFfGgHhKkLlMmNnPpQqSsJjUuVvWwRr][0-9]{7}[AaBbCcDdEeFfGgHhIiJj0123456789]"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cif_nif">
    <xs:union memberTypes="t_cif t_nif"/>
  </xs:simpleType>
  <xs:simpleType name="t_niss">
    <xs:restriction base="xs:string">
      <xs:pattern value="\d{12}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_ctaCotiz">
    <xs:restriction base="xs:string">
      <xs:length value="11"/>
      <xs:pattern value="[0-9]{11}"/>
    </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])(/)(0?2)(/)(\d{4}))|((29)(\.|-|/)(0?2)(/)([02468][048]00))|((29)(/)(0?2)(/)([13579][26]00))|((29)(/)(0?2)(/)([0-9][0-9][0][48]))|((29)(/)(0?2)(/)([0-9][0-9][2468][048]))|((29)(/)(0?2)(/)([0-9][0-9][13579][26])))"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_sexo">
    <xs:restriction base="xs:string">
      <xs:enumeration value="M"/>
      <xs:enumeration value="F"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_decimal">
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="0"/>
      <xs:pattern value="[0-9]{0,7}([.][0-9]{0,2}){0,1}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:annotation>
    <xs:documentation>La categoría profesional del participante se debe indicar con un valor numérico. Las opciones son:</xs:documentation>
    <xs:documentation>1 - Directivo</xs:documentation>
    <xs:documentation>2 - Mando Intermedio</xs:documentation>
    <xs:documentation>3 - Técnico</xs:documentation>
    <xs:documentation>4 - Trabajador Cualificado</xs:documentation>
    <xs:documentation>5 - Trabajador con Baja Cualificación</xs:documentation>
  </xs:annotation>
  <xs:simpleType name="t_categoriaprofesional">
    <xs:restriction base="xs:int">
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="5"/>
      <xs:totalDigits value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:annotation>
    <xs:documentation>El grupo de cotización del participante se debe indicar con un valor numérico. Las opciones son:</xs:documentation>
    <xs:documentation>1 - Ingenieros y Licenciados</xs:documentation>
    <xs:documentation>2 - Ingenieros técnicos, Peritos y Ayudantes titulados</xs:documentation>
    <xs:documentation>3 - Jefes administrativos y de taller</xs:documentation>
    <xs:documentation>4 - Ayudantes no titulados</xs:documentation>
    <xs:documentation>5 - Oficiales administrativos</xs:documentation>
    <xs:documentation>6 - Subalternos</xs:documentation>
    <xs:documentation>7 - Auxiliares administrativos</xs:documentation>
    <xs:documentation>8 - Oficiales de primera y segunda</xs:documentation>
    <xs:documentation>9 - Oficiales de tercera y especialistas</xs:documentation>
    <xs:documentation>10 - Trabajadores mayores de 18 años no cualificados</xs:documentation>
    <xs:documentation>11 - Trabajadores menores de dieciocho años</xs:documentation>
  </xs:annotation>
  <xs:simpleType name="t_grupocotizacion">
    <xs:restriction base="xs:int">
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="11"/>
      <xs:totalDigits value="2"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:annotation>
    <xs:documentation>El nivel de estudios del participante se debe indicar con un valor numérico. Las opciones son:</xs:documentation>
    <xs:documentation>1 - Menos que primaria</xs:documentation>
    <xs:documentation>2 - Educación primaria</xs:documentation>
    <xs:documentation>3 - Primera etapa de educación secundaria (1º y 2º ciclo de la ESO, EGB, Graduado Escolar, Certificados de profesionalidad nivel 1 y 2)</xs:documentation>
    <xs:documentation>4 - Segunda etapa de educación secundaria (Bachillerato, FP de grado medio, BUP, FPI y FPII)</xs:documentation>
    <xs:documentation>5 - Educación postsecundaria no superior (Certificados de Profesionalidad de nivel 3)</xs:documentation>
    <xs:documentation>6 - Técnico Superior/FP grado superior y equivalentes</xs:documentation>
    <xs:documentation>7 - E. universitarios 1º ciclo (Diplomatura-Grados)</xs:documentation>
    <xs:documentation>8 - E. universitarios 2º ciclo (Licenciatura-Máster)</xs:documentation>
    <xs:documentation>9 - E. universitarios 3º ciclo (Doctorado)</xs:documentation>
    <xs:documentation>10 - Otras titulaciones</xs:documentation>
  </xs:annotation>
  <xs:simpleType name="t_nivelestudios">
    <xs:restriction base="xs:int">
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="10"/>
      <xs:totalDigits value="2"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_idGrupo">
    <xs:restriction base="xs:string">
      <xs:maxLength value="5"/>
      <xs:minLength value="1"/>
      <xs:whiteSpace value="collapse"/>
      <xs:pattern value="[0-9]{1,11}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cadena50">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cadena30">
    <xs:restriction base="xs:string">
      <xs:maxLength value="30"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_email">
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Za-z0-9_]+([-+.'][A-Za-z0-9_]+)*@[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*\.[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_telefono">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{9,12}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_id">
    <xs:restriction base="xs:int">
      <xs:minExclusive value="0"/>
      <xs:maxExclusive value="100"/>
      <xs:totalDigits value="2"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_mes">
    <xs:restriction base="xs:int">
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="12"/>
      <xs:totalDigits value="2"/>
    </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>
  <!-- TIPOS COMPLEJOS -->
  <xs:complexType name="t_participante">
    <xs:sequence>
      <xs:element name="nif" type="t_nif"/>
      <xs:element name="N_TIPO_DOCUMENTO" type="t_tipo_documento"/>
      <xs:element name="nombre" type="t_nombre" nillable="false"/>
      <xs:element name="primerApellido" type="t_apellido" nillable="false"/>
      <xs:element name="segundoApellido" type="t_apellido2" nillable="true"/>
      <xs:element name="niss" type="t_niss"/>
      <xs:element name="cifEmpresa" type="t_cif_nif"/>
      <xs:element name="ctaCotizacion" type="t_ctaCotiz"/>
      <xs:element name="fechaNacimiento" type="t_fecha"/>
      <xs:element name="email" type="t_email"/>
      <xs:element name="telefono" type="t_telefono"/>
      <xs:element name="sexo" type="t_sexo"/>
      <xs:element name="discapacidad" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="afectadosTerrorismo" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="afectadosViolenciaGenero" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
      <xs:element name="categoriaprofesional" type="t_categoriaprofesional"/>
      <xs:element name="grupocotizacion" type="t_grupocotizacion"/>
      <xs:element name="nivelestudios" type="t_nivelestudios"/>
      <xs:element name="fechaInicioTeleformacion" type="t_fecha" minOccurs="0"/>
      <xs:element name="fechaFinTeleformacion" type="t_fecha" minOccurs="0"/>
      <xs:element name="DiplomaAcreditativo" type="t_diploma"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_coste">
    <xs:sequence>
      <xs:element name="cifagrupada" type="t_cif_nif"/>
      <xs:element name="directos" type="t_decimal"/>
      <xs:element name="indirectos" type="t_decimal"/>
      <xs:element name="organizacion" type="t_decimal"/>
      <xs:element name="salariales" type="t_decimal"/>
      <xs:element name="periodos" type="t_periodos" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_periodo">
    <xs:sequence>
      <xs:element name="mes" type="t_mes"/>
      <xs:element name="importe" type="t_decimal"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_periodos">
    <xs:sequence>
      <xs:element name="periodo" type="t_periodo" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_costes">
    <xs:sequence>
      <xs:element name="coste" type="t_coste" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_participantes">
    <xs:sequence>
      <xs:element name="participante" type="t_participante" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_grupo">
    <xs:sequence>
      <xs:element name="idAccion" type="t_idAccion"/>
      <xs:element name="idGrupo" type="t_idGrupo"/>
      <xs:element name="participantes" type="t_participantes"/>
      <xs:element name="costes" type="t_costes"/>
    </xs:sequence>
  </xs:complexType>
  <!-- ESQUEMA -->
  <xs:element name="grupos">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="grupo" type="t_grupo" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


