4 4 4

Descomposición de documentos de XML Extender que contienen nombres de 4elementos y atributos no exclusivos

4

Ahora puede descomponer los documentos que contienen atributos no exclusivos 4o nombres de elementos no exclusivos que se correlacionan con diferentes 4columnas (de la misma tabla o de diferentes tablas) sin recibir el error 4DXXQ045E. A continuación 4se muestra un ejemplo de un documento XML con nombres de elementos y atributos no exclusivos:

4
<Order ID="0001-6789">
4       <!-- Nota: el ID de nombre de atributo no es exclusivo -->
4       <Customer ID = "1111">
4                    <Name>John Smith</Name>
4       </Customer>
4       <!-- Nota: el nombre del elemento Name no es exclusivo -->
4       <Salesperson ID = "1234"> 
4              <Name>Jane Doe</Name>
4       </Salesperson>
4       <OrderDetail>
4              <ItemNo>xxxx-xxxx</ItemNo>
4              <Quantity>2</Quantity>
4              <UnitPrice>12.50</UnitPrice>
4       </OrderDetail>
4       <OrderDetail>
4              <ItemNo>yyyy-yyyy</ItemNo>
4              <Quantity>4</Quantity>
4              <UnitPrice>24.99</UnitPrice>
4       </OrderDetail>       
4</Order>

El DAD que acompaña y que correlaciona los atributos y 4elementos duplicados con diferentes columnas tiene este aspecto:

4
<element_node name="Order">
4  <RDB_node>
4    <table name="order_tab" key="order_id"/>
4    <table name="detail_tab"/>
4    <condition>
4      order_tab.order_id=detail_tab.order_id
4    </condition>
4  </RDB_node>
4
4  <!--ID atrib. duplicado después, pero correlacionado con una col. dif.-->
4  <attribute_node name="ID">
4    <RDB_node>
4      <table name="order_tab" />
4      <column name="order_id" type="char(9)"/>
4    </RDB_node>
4  </attribute_node>
4  
4  <element_node name="Customer">
4    <!--ID atrib. duplicado antes, pero correlacionado con una col. dif.-->
4    <attribute_node name="ID">
4      <RDB_node>
4        <table name="order_tab" />
4        <column name="cust_id" type="integer"/>
4      </RDB_node>
4    </attribute_node>
4
4    <!--nombre elem. duplicado después, pero correlacionado con una col. dif.-->
4    <element_node name="Name"> 
4      <text_node>
4        <RDB_node>
4          <table name="order_tab" />
4          <column name="cust_name" type="char(20)" />
4        </RDB_node>
4      </text_node>
4    </element_node>
4  </element_node>
4    
4  <element_node name="Salesperson">
4    <!--ID atrib. duplicado antes, pero correlacionado con una col. dif.-->
4    <attribute_node name="ID">
4      <RDB_node>
4        <table name="order_tab" />
4        <column name="salesp_id" type="integer"/>
4      </RDB_node>
4    </attribute_node>
4          
4    <!--nombre elem. duplicado antes, pero correlacionado con una col. dif.--> 
4    <element_node name="Name"> 
4      <text_node>
4        <RDB_node>
4          <table name="order_tab" />
4          <column name="salesp_name" type="char(20)" />
4        </RDB_node>
4      </text_node>
4    </element_node>
4  </element_node>
4    
4  <element_node name="OrderDetail" multi_occurrence="YES">
4    <element_node name="ItemNo">
4      <text_node>
4        <RDB_node>
4          <table name="detail_tab" />
4          <column name="itemno" type="char(9)"/>
4        </RDB_node>
4      </text_node>
4    </element_node>
4    <element_node name="Quantity">
4      <text_node>
4        <RDB_node>
4          <table name="detail_tab" />
4          <column name="quantity" type="integer"/>
4        </RDB_node>
4      </text_node>
4    </element_node>
4    <element_node name="UnitPrice">
4      <text_node>
4        <RDB_node>detail_tab" />
4          <table name="detail_tab" />        
4          <column name="unit_price" type="decimal(7,2)"/>
4        </RDB_node>
4      </text_node>
4    </element_node>
4  </element_node>
4</element_node>

El contenido de las tablas tendría un aspecto similar 4al ejemplo siguiente después de descomponer el documento anterior:

4
ORDER _TAB:
4
4ORDER_ID       CUST_ID       CUST_NAME       SALESP_ID       SALESP_NAME
40001-6789      1111          John Smith      1234            Jane Doe
4
4DETAIL_TAB:
4
4ORDER_ID          ITEMNO         QUANTITY          UNIT_PRICE
40001-6789         xxxx-xxxx      2                 12.50
40001-6789         yyyy-yyyy      4                 24.99
4 4
Nota:
5 5
Para correlacionar varios elementos y atributos con la misma columna 5de la misma tabla, defina un alias para la tabla y utilice el alias en el 5elemento <table> del DAD de una de las correlaciones.
4 [ Principio de página |Página anterior | Página siguiente | Contenido ]