<?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 carga masiva de Acciones Formativas.</xs:documentation>
  </xs:annotation>
  
  <xs:simpleType name="t_cadena255_vacia">
    <xs:restriction base="xs:string">
      <xs:maxLength value="255"/>
      <xs:minLength value="0"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cadena255">
    <xs:restriction base="xs:string">
      <xs:maxLength value="255"/>
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cadena50_vacia">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50"/>
      <xs:minLength value="0"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cadena20_vacia">
    <xs:restriction base="xs:string">
      <xs:maxLength value="20"/>
      <xs:minLength value="0"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cadena5">
    <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_cadena6">
    <xs:restriction base="xs:string">
      <xs:maxLength value="6"/>
      <xs:minLength value="1"/>
      <xs:whiteSpace value="collapse"/>
      <xs:pattern value="[0-9]{3}[-][0-9]{2}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_RealDecreto">
    <xs:restriction base="xs:string">
      <xs:pattern value="[\w]{0}|[Rr]{1}[Dd]{1}[0-9]{4}[/][0-9]{4}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_UnidadCompetencia">
    <xs:restriction base="xs:string">
      <xs:pattern value="[\w]{0}|[Uu]{1}[Cc]{1}[0-9]{4}[_][0-9]{1}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_codCertificado">
    <xs:restriction base="xs:string">
      <xs:pattern value="[\w]{0}|[\x21-\x7E]{1,8}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_horas">
    <xs:restriction base="xs:nonNegativeInteger">
      <xs:totalDigits value="6"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- Tipos Complejos -->
  <xs:complexType name="t_denominacion2">
    <xs:sequence>
      <xs:element name="codCertificado" type="t_codCertificado"/>
      <xs:element name="realDecreto" type="t_RealDecreto"/>
      <xs:element name="unidadCompetencia" type="t_UnidadCompetencia" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_modalidadSimple">
    <xs:annotation>
      <xs:documentation>El campo modalidad debe tener uno de los siguientes valores:	7 = Presencial; 8 = Distancia; 9 = Mixta; 10 = Teleformación</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="horas" type="t_horas"/>
      <xs:element name="modalidad" type="xs:int"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_modalidadMixta">
    <xs:sequence>
      <xs:element name="horasPr" type="t_horas"/>
      <xs:element name="horasDi" type="t_horas" minOccurs="0"/>
      <xs:element name="horasTe" type="t_horas" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="t_cif">
    <xs:restriction base="xs:string">
      <xs:pattern value="(([a-zA-Z]{1}\d{7}[a-zA-Z0-9]{1})|(\d{8}[a-zA-Z]{1}))"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_SINO">
    <xs:restriction base="xs:string">
      <xs:annotation>
        <xs:documentation>Los posibles valores que toma este elemento son: B = no aporta informacion;  N = No ; S = Si</xs:documentation>
      </xs:annotation>
      <xs:pattern value="[BbSsNn]{1}"/>
    </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[1-9]|1[012])/\d{4}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_valorinf">
    <xs:restriction base="xs:string">
      <xs:annotation>
        <xs:documentation>Los posibles valores que toma este elemento son: B = no aporta informacion; N = No informa; F = Favorable; D = Discrepancia.</xs:documentation>
      </xs:annotation>
      <xs:pattern value="[BbNnFfDd]{1}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="t_discrepancia">
    <xs:sequence>
      <xs:element name="fechaDis" type="t_fecha"/>
      <xs:element name="resuelto15" type="t_SINO"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_informe">
    <xs:sequence>
      <xs:element name="valorinf" type="t_valorinf"/>
      <xs:element name="discrepancia" type="t_discrepancia" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_rlt">
    <xs:sequence>
      <xs:element name="informaRLT" type="t_SINO"/>
      <xs:element name="informe" type="t_informe" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_emp_participante">
    <xs:sequence>
      <xs:element name="cif" type="t_cif"/>
      <xs:element name="infRLT" type="t_rlt" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="AccionesFormativas">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="AccionFormativa">
          <xs:complexType>
            <xs:sequence>
              <xs:annotation>
                <xs:documentation>El campo tipoAccion debe tener uno de los siguientes valores: 0 = GENERICA; 1 = ESPECIFICA</xs:documentation>
                <xs:documentation>El campo nivelFormacion debe tener uno de los siguientes valores: 0 = BASICO; 1 = SUPERIOR</xs:documentation>
                <xs:documentation>El campo acceso debe tener uno de los siguientes valores: 0 = NO Exige uri ni tampoco password; 1 = Si exige valores</xs:documentation>
              </xs:annotation>
              <xs:element name="codAccion" type="t_cadena5"/>
              <xs:element name="nombreAccion" type="t_cadena255"/>
              <xs:element name="codGrupoAccion" type="t_cadena6"/>
              <xs:element name="denominacionCncp" type="t_denominacion2" minOccurs="0"/>
              <xs:element name="modalidadSimple" type="t_modalidadSimple"/>
              <xs:element name="modalidadMixta" type="t_modalidadMixta" minOccurs="0"/>
              <xs:element name="uri" type="t_cadena255_vacia" minOccurs="0"/>
              <xs:element name="usuario" type="t_cadena50_vacia" minOccurs="0"/>
              <xs:element name="password" type="t_cadena20_vacia" minOccurs="0"/>
              <xs:element name="observaciones" type="xs:string" minOccurs="0"/>
              <xs:element name="tipoAccion" type="xs:boolean"/>
              <xs:element name="nivelFormacion" type="xs:boolean"/>
              <xs:element name="modTecnologia" type="t_horas" minOccurs="0"/>
              <xs:element name="modPrevRiesgos" type="t_horas" minOccurs="0"/>
              <xs:element name="modSensiMedAmb" type="t_horas" minOccurs="0"/>
              <xs:element name="modPromocion" type="t_horas" minOccurs="0"/>
              <xs:element name="objetivos" type="xs:string"/>
              <xs:element name="contenidos" type="xs:string"/>
              <xs:element name="empParticipantes" type="t_emp_participante" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
