<?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 inicio de grupos de una empresa Organizadora.</xs:documentation>
  </xs:annotation>
  <xs:simpleType name="t_pais">
    <xs:restriction base="xs:string">
      <xs:maxLength value="20"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_idAccion">
    <xs:restriction base="xs:string">
      <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_sexo">
    <xs:restriction base="xs:string">
      <xs:enumeration value="M"/>
      <xs:enumeration value="F"/>
    </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_cadena100">
    <xs:restriction base="xs:string">
      <xs:maxLength value="100"/>
      <xs:minLength value="1"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cadena4000">
    <xs:restriction base="xs:string">
      <xs:maxLength value="4000"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_NumeroParticipantes">
    <xs:restriction base="xs:nonNegativeInteger">
      <xs:totalDigits value="4"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cadena75">
    <xs:restriction base="xs:string">
      <xs:maxLength value="75"/>
    </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_cadena30_requerido">
    <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_codigoPostal">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{5}"/>
    </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_hora">
    <xs:restriction base="xs:string">
      <xs:pattern value="([0-1][0-9]|[2][0-3])(:)[0-5][0-9]"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_dias">
    <xs:restriction base="xs:string">
      <xs:pattern value="([L]+M?X?J?V?S?D?)|(L?[M]+X?J?V?S?D?)|(L?M?[X]+J?V?S?D?)|(L?M?X?[J]+V?S?D?)|(L?M?X?J?[V]+S?D?)|(L?M?X?J?V?[S]+D?)|(L?M?X?J?V?S?[D]+)"/>
    </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_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_decimal">
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="0"/>
      <xs:pattern value="[0-9]{0,4}([.][0-9]{0,2}){0,1}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_horasTutor">
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="1"/>
      <xs:pattern value="[0-9]{0,4}([.][0-9]{0,2}){0,1}"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- Tipos Complejos -->
  <xs:complexType name="t_centro">
    <xs:sequence>
      <xs:element name="cif" type="t_cif_nif"/>
      <xs:element name="nombreCentro" type="t_cadena100"/>
      <xs:element name="direccionDetallada" type="t_cadena100"/>
      <xs:element name="codPostal" type="t_codigoPostal"/>
      <xs:element name="localidad" type="t_cadena75"/>
      <xs:element name="pais" type="t_pais" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_centro_presencial">
    <xs:sequence>
      <xs:element name="cif" type="t_cif_nif"/>
      <xs:element name="nombreCentro" type="t_cadena100"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_lugarImparticion">
    <xs:sequence>
      <xs:element name="cif" type="t_cif_nif" minOccurs="0"/>
      <xs:element name="nombreCentro" type="t_cadena100"/>
      <xs:element name="direccionDetallada" type="t_cadena100"/>
      <xs:element name="codPostal" type="t_codigoPostal"/>
      <xs:element name="localidad" type="t_cadena75"/>
      <xs:element name="pais" type="t_pais" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_horario">
    <xs:sequence>
      <xs:element name="horaTotales" type="t_decimal"/>
      <xs:element name="horaInicioMañana" type="t_hora" minOccurs="0"/>
      <xs:element name="horaFinMañana" type="t_hora" minOccurs="0"/>
      <xs:element name="horaInicioTarde" type="t_hora" minOccurs="0"/>
      <xs:element name="horaFinTarde" type="t_hora" minOccurs="0"/>
      <xs:element name="dias" type="t_dias"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_asistenciaTeleformacion">
    <xs:sequence>
      <xs:element name="centro" type="t_centro"/>
      <xs:element name="telefono" type="t_telefono"/>
      <!--<xs:element name="domicilio" type="t_cadena100"/>
			<xs:element name="codPostal" type="t_codigoPostal"/>
			<xs:element name="localidad" type="t_cadena75"/>-->
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="modalidad">
    <xs:sequence>
      <xs:element name="centro" type="t_centro_presencial"/>
      <xs:element name="lugarImparticion" type="t_lugarImparticion"/>
      <xs:element name="horario" type="t_horario"/>
      <xs:element name="Tutor" type="t_Tutor" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="modalidad2">
    <xs:sequence>
      <xs:element name="centro" type="t_centro_presencial"/>
      <xs:element name="lugarImparticion" type="t_lugarImparticion"/>
      <xs:element name="horario" type="t_horario"/>
      <xs:element name="Tutor" type="t_Tutor" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="modalidad3">
    <xs:sequence>
      <!--<xs:element name="centro" type="t_centro"/>-->
      <xs:element name="asistenciaTeleformacion" type="t_asistenciaTeleformacion" minOccurs="0"/>
      <xs:element name="horario" type="t_horario"/>
      <xs:element name="Tutor" type="t_Tutor_Teleformacion" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:annotation>
    <xs:documentation>Las opciones de Tipo de Formacion son:</xs:documentation>
    <xs:documentation>EntidadOrganizadora o EntidadInscrita</xs:documentation>
  </xs:annotation>
  <!-- Enumeración para los tipos de formación -->
  <xs:simpleType name="tipoFormacion" final="restriction" >
    <xs:restriction base="xs:string">
      <xs:enumeration value="EntidadOrganizadora" />
      <xs:enumeration value="EntidadInscrita" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="t_tipoFormacion">
    <xs:sequence>
      <xs:element name="medios" type="tipoFormacion"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="t_idGrupo">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{1,5}"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_TipoTutor">
    <xs:restriction base="xs:int">
      <xs:totalDigits value="1"/>
      <xs:pattern value="[1-2]"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cadena20">
    <xs:restriction base="xs:string">
      <xs:maxLength value="20"/>
      <xs:minLength value="1"/>
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:annotation>
    <xs:documentation>Las opciones de Tipo de Perfil son:</xs:documentation>
    <xs:documentation>Formador (1) o Formador / Dinamizador (3) (solamente se puede indicar uno)</xs:documentation>
    <xs:documentation>El tipo de perfil solamente se aplica para tutor con impartición: Tutoría de teleformación (distanciaTeleformacion).</xs:documentation>
  </xs:annotation>
  <!-- Enumeración para los tipos de perfil -->
  <xs:simpleType name="tipoPerfil" final="restriction" >
    <xs:restriction base="xs:int">
      <xs:enumeration value="1" />
      <xs:enumeration value="3" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="t_tipoPerfil">
    <xs:sequence>
      <xs:element name="perfiles" type="tipoPerfil"/>
    </xs:sequence>
  </xs:complexType>
  <xs:annotation>
    <xs:documentation>Las opciones de Tipo de Tutoría son:</xs:documentation>
    <xs:documentation>Correo electrónico (1), Videoconferencia (2), Foro (3) o Otras (4) (se pueden indicar varias. Si se selecciona Otras se debe especificar descripción)</xs:documentation>
    <xs:documentation>El tipo de tutoría solamente se aplica para tutor con impartición: Tutoría de teleformación (distanciaTeleformacion).</xs:documentation>
  </xs:annotation>
  <!-- Enumeración para los tipos de tutoría -->
  <xs:simpleType name="tipoTutoria" final="restriction" >
    <xs:restriction base="xs:int">
      <xs:enumeration value="1" />
      <xs:enumeration value="2" />
      <xs:enumeration value="3" />
      <xs:enumeration value="4" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="t_tipoTutoria">
    <xs:sequence>
      <xs:element name="tutorias" type="tipoTutoria"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_Tutor">
    <xs:sequence>
      <xs:element name="numeroHoras" type="t_horasTutor"/>
      <xs:element name="nif" type="t_nif"/>
      <xs:element name="nombre" type="t_cadena30_requerido"/>
      <xs:element name="apellido1" type="t_cadena30_requerido"/>
      <xs:element name="apellido2" type="t_cadena30"/>
      <xs:element name="telefono" type="t_telefono"/>
      <xs:element name="correoElectronico" type="t_email"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_Tutor_Teleformacion">
    <xs:sequence>
      <xs:element name="numeroHoras" type="t_horasTutor"/>
      <xs:element name="nif" type="t_nif"/>
      <xs:element name="nombre" type="t_cadena30_requerido"/>
      <xs:element name="apellido1" type="t_cadena30_requerido"/>
      <xs:element name="apellido2" type="t_cadena30"/>
      <xs:element name="telefono" type="t_telefono"/>
      <xs:element name="correoElectronico" type="t_email"/>
      <xs:element name="tipoPerfil" type="t_tipoPerfil"/>
      <xs:element name="tutoria" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="tipoTutoria" type="t_tipoTutoria"/>
            <xs:element name="descripcion" type="t_cadena50"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_empresa">
    <xs:sequence>
      <xs:element name="cifEmpresaParticipante" type="t_cif_nif"/>
      <xs:element name="jornadaLaboral" type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_EmpresaParticipante">
    <xs:sequence>
      <xs:element name="empresa" type="t_empresa" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="grupos">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="grupo" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="idAccion" type="t_idAccion"/>
              <xs:element name="idGrupo" type="t_idGrupo"/>
              <xs:element name="descripcion" type="t_cadena100"/>
              <xs:element name="cumAportPrivada" type="xs:boolean"/>
              <xs:element name="tipoFormacion" type="t_tipoFormacion" maxOccurs="1"/>
              <xs:element name="NumeroParticipante" type="t_NumeroParticipantes"/>
              <xs:element name="fechaInicio" type="t_fecha"/>
              <xs:element name="fechaFin" type="t_fecha"/>
              <xs:element name="responsable" type="t_cadena100"/>
              <xs:element name="telefonoContacto" type="t_telefono"/>
              <xs:element name="jornadaPresencial" type="modalidad" minOccurs="0" maxOccurs="1"/>
              <xs:element name="distanciaTeleformacion" type="modalidad3" minOccurs="0" maxOccurs="1"/>
              <xs:element name="EmpresasParticipantes" type="t_EmpresaParticipante"/>
              <xs:element name="observaciones" type="t_cadena4000" minOccurs="0"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>