Altova MapForce 2024 Professional Edition

MapForce permite realizar asignaciones de datos entre tipos derivados de un tipo complejo. Los tipos derivados son tipos complejos de un esquema XML que usan el atributo xsi:type para identificar los tipos derivados especificados (p.e., <Address xsi:type="UK-Address">). Puede ver las definiciones de estos tipos en la especificación de esquema XML de W3C (sección 2.5.2).

 

Caso posible

En esta subsección explicamos un posible caso de uso de un tipo derivado. Por ejemplo, imagine que hay una empresa con dos filiales: una en Reino Unido y la otra en Estados Unidos. Lo que queremos es tener dos listas (UKCustomers y USCustomers), cada una de las cuales debe incluir la información sobre la dirección de la filial correspondiente y todos los clientes asociados a ella.

 

Definición de tipos derivados

En las imágenes siguientes puede ver la definición de los tipos derivados US-Address y UK-Address (en la vista Esquema de XMLSpy). El tipo base (o tipo complejo originario) es AddressType e incluye los elementos Name, Street y City. En el elemento US-Address se añadieron también dos elementos más para crear los tipos derivados US-Address: Zip y State, mientras que el elemento UK-Address incluye el tipo base y el elemento Postcode. En este ejemplo solo vamos a asignar al archivo de destino el elemento UK-Address.

xsi1 UKAddress

Tipos derivados en una asignación

A continuación explicamos cómo realizar asignaciones de datos entre tipos derivados de esquema XML. Lo que buscamos es asignar información sobre la oficina de Reino Unido al elemento UKCustomers. Puede encontrar los archivos de ejemplo en la carpeta Tutorial.

 

1.En el menú Insertar haga clic en el comando Archivo o esquema XML y abra DerivedTypeSource.xml. Este archivo XML se basa en DerivedTypeSource.xsd..

2.Inserte el archivo de destino DerivedTypeTarget.xsd. Observe que el esquema de destino no necesita incluir el atributo xsi:type.

3.Ahora haga clic en el botón btn_derived_type situado junto al elemento Address. Este botón indica que para este elemento existen tipos derivados en el esquema.

4.EL cuadro de diálogo Tipos derivados (imagen siguiente) permite seleccionar los tipos derivados disponibles para ese elemento en concreto. En esta asignación de ejemplo solamente queremos asignar el elemento UK-Address.

derived_type02

5.Al marcar la casilla del tipo derivado UK-Address verá que en el componente aparece un elemento nuevo llamado Address xsi:type="UK-Address".

6.Conecte los nodos como se ver en la imagen siguiente.

DerivedTypeMapping

Resultado

Al hacer clic en el panel Resultados verá este código:

 

<UKCustomers>

  <BranchOffice>Sleuth Corp. UK</BranchOffice>

  <Street>222 Baker St</Street>

  <City>London</City>

  <Postcode>NW1 6XE</Postcode>

</UKCustomers>

 

Esta asignación de ejemplo está guardada como Tutorial\DerivedType.mfd. También puede agregar otro archivo XML de origen que incluya información sobre los clientes de Reuno Unido y asignar esos datos al nodo Customers del componente de destino. De esta manera el elemento UKCustomers incluye información sobre la dirección de Reino Unido y todos los clientes asociados a esa filial.

 

 

© 2017-2023 Altova GmbH