Compresión de elementos XML complejos

La mayoría de las etapas en un flujo de datos requieren que los datos estén en un formato plano. Esto significa que cuando lea datos jerárquicos de un archivo XML en un flujo de datos, tendrá que aplanarlo si los datos contienen elementos XML complejos. Un elemento XML complejo es un elemento que contiene otros elementos o atributos. Por ejemplo, en el siguiente archivo de datos, el elemento <address> y el elemento <account> son elementos XML complejos:

<customers>
    <customer>
        <name>Sam</name>
        <gender>M</gender>
        <age>43</age>
        <country>United States</country>
        <address>
            <addressline1>1253 Summer St.</addressline1>
            <city>Boston</city>
            <stateprovince>MA</stateprovince>
            <postalcode>02110</postalcode>
        </address>
        <account>
            <type>Savings</type>
            <number>019922</number>
        </account>
    </customer>
    <customer>
        <name>Jeff</name>
        <gender>M</gender>
        <age>32</age>
        <country>Canada</country>
        <address>
            <addressline1>26 Wellington St.</addressline1>
            <city>Toronto</city>
            <stateprovince>ON</stateprovince>
            <postalcode>M5E 1S2</postalcode>
        </address>
        <account>
            <type>Checking</type>
            <number>238832</number>
        </account>
    </customer>
    <customer>
        <name>Mary</name>
        <gender>F</gender>
        <age>61</age>
        <country>Australia</country>
        <address>
            <addressline1>Level 7, 1 Elizabeth Plaza</addressline1>
            <city>North Sydney</city>
            <stateprovince>NSW</stateprovince>
            <postalcode>2060</postalcode>
        </address>
        <account>
            <type>Savings</type>
            <number>839938</number>
        </account>
    </customer>
</customers>

El siguiente procedimiento describe cómo usar las etapas Splitter (Divisor) para comprimir datos XML que contengan varios elementos XML complejos.

Nota: Si sus datos contienen un solo elemento XML complejo, puede utilizar una sola etapa Splitter para comprimirlos, simplemente conectando la etapa Read from XML a la etapa Splitter. No es necesario utilizar las etapas Broadcaster o Record Combiner que se describen en este procedimiento para los archivos de datos que contengan un solo elemento XML complejo.
  1. Agregue una etapa Read from XML a su flujo de datos y configúrela. Para obtener más información, consulteRead from XML.
  2. Agregue una etapa Broadcaster y conecte a ella la etapa Read from XML.
  3. Agregue una etapa Splitter por cada elemento XML complejo que haya en sus datos.
  4. Conecte la etapa Broadcaster a cada Splitter.
  5. Agregue una etapa Record Combiner y conecte a ella cada Splitter.

    Ahora, su flujo de datos debería tener el siguiente aspecto:

  6. Haga doble clic en la primera etapa Splitter para abrir las opciones de la etapa.
  7. En el campo Split at, seleccione uno de los campos complejos. En el archivo de datos del ejemplo anterior, podría ser el campo de dirección.
  8. Haga clic en Aceptar.
  9. Configure cada etapa Splitter adicional seleccionando un elemento XML complejo diferente para cada campo Split at de Splitter.

Ahora, el flujo de datos está configurado para tomar entradas XML que contengan registros con elementos XML complejos y comprimir los datos. Los registros que resultan de la etapa Record Combiner pueden enviarse a cualquier etapa que requiera datos planos. Por ejemplo, podría conectar la etapa Record Combiner a una etapa Validate Address para validar la dirección.