Configuración del lector de datos XML

Configure el lector de datos XML (Extensible Markup Language) en el archivo de configuración de objeto de negocio para modificar la forma en que se leen los datos de los archivos de origen con formato XML. Es posible que desee cambiar los valores predeterminados del lector de datos XML para trabajar mejor con el formato de sus datos.

Los datos leídos de un archivo XML se pueden correlacionar con un objeto de negocio de WebSphere Commerce mediante un archivo de configuración de objeto de negocio. Utilizando el archivo de configuración, cada elemento de datos del archivo XML de entrada puede correlacionarse directamente con una propiedad de un objeto de negocio de WebSphere Commerce. Este manejador lee y crea par nombre-valor (NVP) que correlaciona un registro cada vez y, a continuación, pasa cada correlación con un creador de objetos de negocio.

Procedimiento

  1. Localice el archivo de configuración de objeto de negocio wc-loader-object.xml para el tipo de objeto de negocio que está cargando. Abra el archivo de configuración para su edición.
    Los archivos de configuración de objeto de negocio de ejemplo están en el siguiente directorios:
    • HCL Commerce DeveloperWCDE_installdir/samples/DataLoad/Catalog
    • Linuxutilities_root/samples/DataLoad/Catalog
  2. Busque el elemento de configuración del lector de datos:
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.XmlReader" >
    </_config:DataReader>
  3. Opcional: Añada las clases de manejador dentro del elemento de configuración del lector de datos para cambiar cómo el programa de utilidad de carga de datos maneja la carga de los datos XML.
    Para añadir una clase de manejador XML, debe especificar la clase en el siguiente formato <_config:XMLHandler className=""/>. Por ejemplo, la siguiente configuración añade la clase de manejador XML NVPXmlHandler en la configuración del lector de datos:
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.XmlReader" >
       <_config:XmlHandler className="com.ibm.commerce.foundation.dataload.xmlhandler.NVPXmlHandler" />
    </_config:DataReader>

    La siguiente configuración está disponible de forma predeterminada:

    NVPXmlHandler
    Esta clase de manejador es el manejador predeterminado para XmlReader y se utiliza para manejar datos XML genéricos que siguen un formato de archivo parecido a CSV específico. Este manejador lee cada elemento de segundo nivel como un registro de objeto distinto. Este manejador analiza el archivo de entrada, un registro de objeto cada vez y genera una correlación hash para cada registro que a continuación se pasa al creador de objetos de negocio. La clave de esta correlación es el nombre de atributo o elemento para los objetos que está cargando de un tipo de objeto de negocio concreto. Puede modificar este comportamiento determinado al especificar los parámetros siguientes: xpathEnabled, qualifiedName y nvpReMapping. Consulte las descripciones detalladas sobre cómo utilizar estas propiedades opcionales en el siguiente paso.

    Si no especifica un manejador XML en la configuración del lector de datos, se utiliza este manejador. Todos los archivos de configuración de carga de datos que se utilizan para cargar archivos de entrada CSV pueden utilizarse para cargar archivos de entrada XML. La infraestructura de carga de datos conmuta automáticamente el lector de datos que se utiliza en función del tipo de archivo, ya sea CSV o XML, del archivo de entrada.

  4. Opcional: Añada las propiedades de configuración dentro del elemento de configuración del lector de datos para satisfacer los requisitos de la carga de datos.
    Para añadir una propiedad de configuración, debe especificar la propiedad en el siguiente formato <_config:property name="" value""/>. Por ejemplo, la siguiente configuración añade la propiedad de configuración recordXpath para una entrada de catálogo en la configuración del lector de datos:
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.XmlReader" >
       <_config:property name="recordXpath" value="CatalogEntry" />
    </_config:DataReader>
    Las siguientes propiedades opcionales están disponibles para utilizarlas con la clase NVPXmlHandler predeterminada:
    recordXpath
    Si el archivo de entrada tiene el elemento de objeto anidado profundamente, puede establecer la XPath de modo que el manejador empiece a leer el elemento de objeto anidado como el elemento raíz. Al especificar esta propiedad, el programa de utilidad de carga de datos maneja todos los elementos XML que tengan un valor que coincida con el valor de XPath de esta propiedad como un registro distinto. Si no especifica esta propiedad, solo los elementos XML de segundo nivel se manejan como registros de objetos individuales.

    Especifique el valor para que este parámetro sea una Xpath. La Xpath puede ser una Xpath absoluta o una Xpath relativa. Una Xpath es una Xpath absoluta si empieza con una barra inclinada /. La Xpath relativa es solo un único nombre de elemento. Por ejemplo, puede especificar la siguiente Xpath absoluta:

    <_config:property name="recordXpath" value="/Object/ObjectType/CatalogEntry" /> 
    o la siguiente Xpath relativa:
    <_config:property name="recordXpath" value="CatalogEntry" />
    Esta Xpath garantiza que el objeto <CatalogEntry> en el siguiente ejemplo se lea como elemento de registro:
    <Object>
      <ObjectType>
       <CatalogEntry>
         <PartNumber>productPartNumber-1</PartNumber>
       </CatalogEntry>
      </ObjectType>
    <Object>
    Los otros elementos, <Object> y <ObjectType> se ignoran.
    xpathEnabled
    Si los nombres de elemento no son exclusivos, puede utilizar esta propiedad para utilizar la Xpath para crear exclusividad en la correlación de pares de NVP. Si especifica esta propiedad con un valor de true, la clave para correlacionar los datos durante el proceso de carga de datos utiliza la Xpath para el elemento. Si este valor es false, la clave para correlacionar los datos es el nombre de elemento o el nombre de atributo. La Xpath que se utiliza es relativa al registro de elemento. El valor predeterminado de esta propiedad es false.
    Nota: Si establece esta propiedad en true, también debe cambiar el valor para la correlación del objeto en el archivo de configuración de objeto de negocio de carga de datos.
    Por ejemplo, si el archivo de entrada contiene el siguiente elemento de entrada de catálogo:
    <CatalogEntry catalogEntryTypeCode="ProductBean" displaySequence="1.0"> 
      <PartNumber>productPartNumber-1<PartNumber> 
      <Description> 
        <Name>name-1<Name>
      <Description> 
    </CatalogEntry>
    Si establece xpathEnable en true, el manejador XML crea la siguiente correlación:
    catalogEntryTypeCode = ProductBean
    displaySequence = 1.0
    PartNumber = productPartNumber-1
    Description/Name = name-1
    Las claves en la correlación son la Xpath que es siempre relativa a la raíz del elemento del registro CatalogEntry sin empezar con la barra inclinada /. El atributo se trata como un elemento en la Xpath.
    nvpReMapping
    Esta propiedad controla cómo rehacer la correlación de NVP de los datos que se pasan para un registro de objeto al creador de objetos de negocio. El valor de esta propiedad define una lista de reglas de recorrelación para los datos. Si los elementos que contienen información para el objeto contienen nombres que no son exclusivos puede utilizar esta propiedad de configuración para asegurar la exclusividad. Por ejemplo, dentro de una entrada de catálogo, pueden existir los elementos de objeto para la entrada de catálogo <name>shirt</name> y el atributo <name>color</name>. El manejador XML lee los valores para estos elementos como dos valores para un único elemento name y registra estos valores como lista en la correlación de NVP, name=[shirt, color]. Al volver a correlacionar la Xpath para estos elementos, puede asegurarse de que el manejador lea y correlacione correctamente estos elementos y valores.

    La lista de reglas de recorrelación de NVP deben tener cada regla separada por un carácter '|'. Cada regla contiene tres señales separadas por un carácter de coma ','. La primera señal es para la nueva clave en la recorrelación. La segunda señal es para el nuevo valor en la recorrelación y la tercera señal es para el prefijo en la clave de recorrelación.

    Por ejemplo, si el archivo de entrada contiene los siguientes elementos de entrada de catálogo:
    <CatalogEntry>
      <CatalogEntryIdentifier>
        <ExternalIdentifier>
          <PartNumber>productPartNumber-1</PartNumber>
        </ExternalIdentifier>
      </CatalogEntryIdentifier>
      <Description>
        <Attributes name="auxDescription1">auxDesc1-1</Attributes>
        <Attributes name="auxDescription2">auxDesc2-1</Attributes>
        <Attributes name="published">1</Attributes>
      </Description>
    De forma predeterminada, la clase de manejador lee la Xpath para los siguientes elementos de descripciones
    name=[auxDescription1, auxDescription2, published], Attributes=[auxDesc1-1, auxDesc1-2, 1]
    El manejador correlaciona estos elementos como dos elementos:
    name=[auxDescription1, auxDescription2, published]
    Attributes=[auxDesc1-1, auxDesc2-1, 1]
    Si establece la propiedad de configuración de recorrelación siguiente:
    <_config:property name="nvpReMapping" value="name, Attributes, " /> 
    El manejador lee los elementos como tres elementos distintos y correlaciona estos elementos como
    auxDescription1 = auxDesc1-1
    auxDescription2 = auxDesc2-1
    published = 1
    Si especifica la regla de recorrelación que contiene el prefijo:
    <_config:property name="nvpReMapping" value="name, Attributes, Description/Attributes/name/" />
    Estos elementos se leen y correlacionan como
    Description/Attributes/name/auxDescription1 = auxDesc1-1
    Description/Attributes/name/auxDescription2 = auxDesc2-1
    Description/Attributes/name/published = 1
    Nota: Si no cambia la correlación de NVP para un objeto, también debe cambiar el valor para la correlación del objeto en el archivo de configuración de objeto de negocio de carga de datos. Por ejemplo, para correlacionar estos datos para utilizar las reglas de recorrelación, la correlación de configuración de objetos de negocio puede ser:
    <_config:mapping xpath="Description/Attributes/auxDescription1" value="Description/Attributes/name/auxDescription1"   />
    <_config:mapping xpath="Description/Attributes/auxDescription2" value="Description/Attributes/name/auxDescription2"   />
    <_config:mapping xpath="Description/Attributes/published" value="Description/Attributes/name/published"   />
    
    El valor de prefijo Description/Attributes/name es opcional; si no utiliza el prefijo, la correlación puede parecerse a lo siguiente:
    <_config:mapping xpath="Description/Attributes/auxDescription1" value="auxDescription1"   />
    <_config:mapping xpath="Description/Attributes/auxDescription2" value="auxDescription2"   />
    <_config:mapping xpath="Description/Attributes/published" value="published"   />
    
    qualifiedName
    El nombre calificado se utiliza para garantizar la exclusividad de los elementos de datos que está cargando. Esta exclusividad se consigue mediante la inclusión del espacio de nombres como parte del nombre para los datos de los elementos en la correlación de pares de NVP. Especifique este valor de propiedad como true para incluir el espacio de nombres como parte de la clave para la correlación que se pasa al creador de objetos de negocio. El valor predeterminado es false.
    Nota: Si establece esta propiedad en true, también debe cambiar el valor para la correlación del objeto en el archivo de configuración de objeto de negocio de carga de datos.
    Trabajar con valores de elemento y atributo:

    Puede utilizar elementos o atributos para añadir los datos que deben cargarse. Normalmente, se cargan de la misma manera utilizando cualquiera de los dos métodos. No obstante, se cargan de manera distinta cuando el valor está vacío.

    De forma predeterminada, todos los elementos con valores vacíos se tratan como nulos. No obstante, los atributos con valores vacíos se tratan como valores vacíos. Es decir, el valor es nulo en la base de datos su se utiliza un elemento para Name y el valor está vacío en la base de datos si utiliza un atributo para Name. Este comportamiento predeterminado puede cambiarse utilizando las siguientes propiedades de configuración opcionales.
    ignoreEmptyElementText
    Si se establece en false, los elementos vacíos se tratan como valores vacíos. El valor predeterminado es true.
    ignoreEmptyAttributeValue
    Si se establece en true, los valores de atributo vacíos se tratan como nulos. El valor predeterminado es false.
    La propiedad puede especificarse bajo el elemento <DataReader>, el elemento <LoadItem> o el elemento <LoadOrder> como:
    
    <_config:property name="ignoreEmptyElementText" value="false" />
    
    Para obtener más información, consulte Creación de datos en formato XML.
  5. Opcional: Configure el proceso de carga de datos de modo que incluya un preproceso de lector de datos.
    Para configurar un preprocesador para que se ejecute, se debe especificar la clase del preprocesador en el siguiente formato:
    <_config:DataReaderPreprocessor className="" />
    
    Por ejemplo, la siguiente configuración especifica que un preprocesador de diferencias de archivos se va a ejecutar:
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.XmlReader" >
      <_config:DataReaderPreprocessor className="com.ibm.commerce.foundation.dataload.datareader.XmlFileDiffPreprocessor" />
    </_config:DataReader>
    El siguiente preprocesador de lector de datos está disponible para su uso con el programa de utilidad de carga de datos:
    com.ibm.commerce.foundation.dataload.datareader.XmlFileDiffPreprocessor
    Este preprocesador compara un archivo de entrada nuevo y antiguo especificado, y genera un archivo nuevo que contiene solo las diferencias que existen en el nuevo archivo. Este preprocesador puede mejorar el rendimiento de operaciones rutinarias de carga de datos evitando cargar los datos que se cargaron anteriormente. Para obtener más información sobre este preprocesador, consulte Preproceso de diferencias de archivos de carga de datos. Si está ejecutando este preprocesador, también puede incluir más propiedades de configuración específicas de este preprocesador. Para obtener más información sobre cómo configurar esta preprocesador, y las propiedades de configuración disponibles para este preprocesador, consulte Configuración del programa de utilidad de carga de datos para ejecutar un preproceso de diferencias de archivos.
  6. Guarde y cierre el archivo.