Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2010, 11:55
riestra
 
Fecha de Ingreso: febrero-2009
Mensajes: 77
Antigüedad: 15 años, 3 meses
Puntos: 0
Generar archivo XML con estructura XS

Hola,
tengo que generar un archivo XML con la siguiente estructura

Código:
<Empleado>
- <persona>
<tipo_documento>?</tipo_documento> <nif>?</nif> <apellidos>?</apellidos> <nombre>?</nombre> <f_nacimiento>?</f_nacimiento> <lugar_nacimiento>?</lugar_nacimiento> <cod_provincia_nacimiento>?</cod_provincia_nacimiento> <desc_provincia_nacimiento>?</desc_provincia_nacimiento> <cod_pais_nacimiento>?</cod_pais_nacimiento> <cod_sexo>?</cod_sexo>
- <direccion_correspondencia>
<cod_tipo_via>?</cod_tipo_via> <nom_via>?</nom_via> <cod_postal>?</cod_postal> <poblacion>?</poblacion> <cod_municipio>?</cod_municipio> <cod_provincia>?</cod_provincia> <cod_pais>?</cod_pais> </direccion_correspondencia>
- <direccion_fiscal>
<cod_tipo_via>?</cod_tipo_via> <nom_via>?</nom_via> <cod_postal>?</cod_postal
Por lo que veo, corregidme si me equvoco, <Empleado> es el nombre de la BD, <persona>es una tabla, conde el resto son cada uno de los campos, <direccion_correspondencia> otra tabla, al igual que <direccion_fiscal>.

El problema, es que yo tengo esos datos definidos en una única tabla persona, es decr los datos propios de persona + los de direcc de correspondecia y fiscal para cada persona. Todo ello en la tabla persona. Por tanto el XML a generar ya va a tener una estructura diferente a la solicitada. ¿Cómo se puede solucionar esto?

Además hay un documento XSD que define la estructura y contenido del mensaje XML. Cómo aplico este fichero de intercambio, en dónde?

Código:
<xs:complexType name="Persona">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="tipo_documento" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="nif" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="apellidos" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="nombre" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="f_nacimiento" nillable="true"
type="xs:dateTime" />
<xs:element minOccurs="0" maxOccurs="1" name="lugar_nacimiento" type="xs:string"
/>
<xs:element minOccurs="0" maxOccurs="1" name="cod_provincia_nacimiento"
type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="desc_provincia_nacimiento"
type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="cod_pais_nacimiento"
type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="cod_sexo" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="direccion_correspondencia"
type="tns:Direccion" />
<xs:element minOccurs="0" maxOccurs="1" name="direccion_fiscal" type="tns:Direccion"
/>
<xs:element minOccurs="0" maxOccurs="1" name="telefono_particular" type="xs:string"
/>
<xs:element minOccurs="0" maxOccurs="1" name="telefono_profesional"
type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="telefono_movil_1" type="xs:string"
<xs:element minOccurs="0" maxOccurs="1" name="telefono_movil_2" type="xs:string"
/>
<xs:element minOccurs="0" maxOccurs="1" name="fax" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="email" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="url" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="cuenta_banco" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Direccion">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="cod_tipo_via" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="nom_via" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="cod_postal" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="poblacion" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="cod_municipio" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="cod_provincia" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="desc_provincia" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="cod_pais" type="xs:string" />
</xs:sequence>
</xs:complexType>
Así que las preguntas son, cómo genero el XML para que de una sola tabla tal y como lo tengo en la BD saque la estructura en el formato que me piden y cómo aplico ese XSD donde se define la estructura y contenido del mensaje XML?

Espero que se haya entendido.
Gracias, un saludo.