﻿<?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">
  <!-- TIPOS SIMPLES -->
  <xs:annotation>
    <xs:documentation>Esquema XML para la finalización masiva de grupos de una empresa bonificada.</xs:documentation>
  </xs:annotation>

  <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:pattern value="[0-9]{1,20}" />
    </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:simpleType name="t_areafuncional">  
    <xs:restriction base="xs:int">
      <xs:annotation>
        <xs:documentation>
          Los posibles valores son: 1-Dirección; 2-Administración; 3-Comercial; 4-Mantenimiento; 5-Producción
        </xs:documentation>
      </xs:annotation>
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="5"/>
      <xs:totalDigits value="1"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="t_categoriaprofesional">
    <xs:restriction base="xs:int">
      <xs:annotation>
        <xs:documentation>
          Los posibles valores son: 1-Directivo; 2-Mando Intermedio; 3-Técnico; 4-Trabajador Cualificado; 5-Trabajador con Baja Cualificación 
        </xs:documentation>
      </xs:annotation>
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="5"/>
      <xs:totalDigits value="1"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="t_grupocotizacion">
    <xs:restriction base="xs:int">
      <xs:annotation>
        <xs:documentation>
          Los posibles valores son: 1-Ingenieros y Licenciados; 2-Ingenieros técnicos, Peritos y Ayudantes titulados; 3-Jefes administrativos y de taller; 4-Ayudantes no titulados; 5-Oficiales administrativos; 6-Subalternos; 7-Auxiliares administrativos; 8-Oficiales de primera y segunda; 9-Oficiales de tercera y especialistas; 10-Trabajadores mayores de 18 años no cualificados; 11-Trabajadores menores de dieciocho años
        </xs:documentation>
      </xs:annotation>
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="11"/>
      <xs:totalDigits value="2"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="t_nivelestudios">
    <xs:restriction base="xs:int">
      <xs:annotation>
        <xs:documentation>
          Los posibles valores son: 1-Sin Estudios; 2-Estudios primarios, EGB o equivalente; 3-FP I o Enseñanza Técnico profesional equiv., Bachillerato Superior, BUP y equiv., FP II o equiv.; 4-Arquitecto Técnico o Ingeniero Técnico, Diplomado de otras escuelas universitarias o equiv.; 5-Arquitecto e Ingeniero Superior o Licenciado; 6-Otros (especificar)
        </xs:documentation>
      </xs:annotation>
      <xs:minInclusive value="1"/>
      <xs:maxInclusive value="6"/>
      <xs:totalDigits value="1"/>
    </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_cadena150">
    <xs:restriction base="xs:string">
      <xs:maxLength value="150"/>
    </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_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>
  
  <xs:simpleType name="t_tipo_documento"> 
    <xs:restriction base="xs:int">
      <xs:annotation>
        <xs:documentation>
          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:documentation>
      </xs:annotation>
      <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" minOccurs="0"/>
      <xs:element name="nombre" type="t_cadena50"/>
      <xs:element name="primerApellido" type="t_cadena30"/>
      <xs:element name="segundoApellido" type="t_cadena30"/>
      <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="sexo" type="t_sexo"/>
      <xs:element name="discapacidad" type="xs:boolean"/>
      <xs:element name="areafuncional" type="t_areafuncional" minOccurs="0"/>
      <xs:element name="categoriaprofesional" type="t_categoriaprofesional"/>
      <xs:element name="grupocotizacion" type="t_grupocotizacion"/>
      <xs:element name="nivelestudios" type="t_nivelestudios"/>
      <xs:element name="otrastitulaciones" type="t_cadena150" minOccurs="0"/>
      <xs:element name="fechaInicioTeleformacion" type="t_fecha" maxOccurs="1" minOccurs="0"/>
      <xs:element name="fechaFinTeleformacion" type="t_fecha" maxOccurs="1" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="t_coste">
    <xs:sequence>
      <xs:element name="directos" type="t_decimal" />
      <xs:element name="asociados" 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" minOccurs="1" maxOccurs="1"/>
      <xs:element name="costes" type="t_costes" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>


  <!-- ESQUEMA -->

  <xs:element name="grupos">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="grupo" type="t_grupo" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  

</xs:schema>