Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/09/2007, 00:33
Avatar de Expinete
Expinete
 
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Crear XML a partir de XSD

Gracias por responder aqui teneis el esquema:
Código PHP:
<?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: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:whiteSpace value="collapse" />
      <xs:length value="9" />
      <xs:pattern value="([Xx]|[0-9])[0-9]{7}([a-z]|[A-Z])" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cif">
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="collapse" />
      <xs:length value="9" />
      <xs:pattern value="[AaBbCcDdEeFfGgHhKkLlMmNnPpQqSs][0-9]{7}[AaBbCcDdEeFfGgHhIiJj0123456789]" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="t_cif_nif">
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="collapse" />
      <xs:length value="9" />
    </xs:restriction>
  </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_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?" />
    </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_horario">
    <xs:sequence>
      <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="modalidad">
    <xs:sequence>
      <xs:element name="centro" type="t_centro" />
      <xs:element name="lugarImparticion" type="t_centro" minOccurs="0" />
      <xs:element name="horario" type="t_horario" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="modalidad2">
    <xs:sequence>
      <xs:element name="centro" type="t_centro" />
      <xs:element name="lugarImparticion" type="t_centro" minOccurs="0" />
      <xs:element name="horario" type="t_horario" />
      <xs:element name="Tutor" type="t_Tutor" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_tipoFormacion">
    <xs:sequence>
      <xs:element name="mediosPropios" type="xs:boolean" />
      <xs:element name="mediosEntidadOrganizadora" type="xs:boolean" />
      <xs:element name="mediosCentro" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="participante">
    <xs:sequence>
      <xs:element name="nif" type="t_nif" />
      <xs:element name="primerApellido" type="t_cadena30" />
      <xs:element name="segundoApellido" type="t_cadena30" />
      <xs:element name="nombre" type="t_cadena50" />
      <xs:element name="niss" type="t_niss" />
      <xs:element name="colPrioritario" type="xs:boolean" />
      <xs:element name="cifEmpresa" type="t_cif_nif" />
      <xs:element name="ctaCotiz" type="t_ctaCotiz" />
      <xs:element name="reserva" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="t_idGrupo">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{1,11}" />
    </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:complexType name="t_Tutor">
    <xs:sequence>
      <xs:element name="numeroHoras" type="xs:int" />
      <xs:element name="nif" type="t_nif" />
      <xs:element name="nombre" type="t_cadena20" />
      <xs:element name="apellido1" type="t_cadena20" />
      <xs:element name="apellido2" type="t_cadena20" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="t_EmpresaParticipante">
    <xs:sequence>
      <xs:element name="cifEmpresaParticipante" type="t_cif" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="grupo">
    <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" />
        <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="jornadaPresencial" type="modalidad" minOccurs="0" />
        <xs:element name="tutoriaPresencial" type="modalidad2" minOccurs="0" />
        <xs:element name="distanciaTeleformacion" type="modalidad2" minOccurs="0" />
        <xs:element name="EmpresasParticipantes" type="t_EmpresaParticipante" minOccurs="1" />
        <xs:element name="observaciones" type="t_cadena4000" minOccurs="0" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>