Uwagi do wydania

4Dekomponowanie dokumentów zawierających nieunikalne atrybuty i nazwy elementów w programie XML Extender

4Można dekomponować dokumenty zawierające atrybuty nieunikalne lub 4nieunikalne nazwy elementów odnoszące się do różnych kolumn (tej samej lub 4różnych tabel) bez wywoływania błędu DXXQ045E. Poniżej przedstawiono 4przykład dokumentu XML z nieunikalnymi atrybutami i nazwami elementów:

4<Order ID="0001-6789">
4       <!-- Uwaga: identyfikator nazwy atrybutu jest nieunikalny -->
4       <Customer ID = "1111">
4                    <Name>John Smith</Name>
4       </Customer>
4       <!-- Uwaga: nazwa elementu Name jest nieunikalna -->
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>

4Towarzyszący plik DAD, który odwzorowuje podwójne elementy i atrybuty do 4różnych kolumn, ma następującą postać:

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 atrybutu powielony poniżej, lecz odwzorowany do innej kolumny-->
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 atrybutu powielony powyżej, lecz odwzorowany do innej kolumny-->
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    <!--nazwa elementu powielona poniżej, lecz odwzorowana do innej kolumny-->
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 atrybutu powielony powyżej, lecz odwzorowany do innej kolumny-->
4    <attribute_node name="ID">
4        <RDB_node>
4        <RDB_node>
4          <table name="order_tab" />
4        <column name="salesp_id" type="integer"/>
4        </RDB_node>
4    </attribute_node>
4 
4    <!--nazwa elementu powielona powyżej, lecz odwzorowana do innej kolumny-->
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>

4Po zdekomponowaniu dokumentu zawartość tabel może wyglądać w następujący 4sposób:

4ORDER _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
4Uwaga:
5Aby przypisać wiele elementów i atrybutów do tej samej kolumny 5jednej tabeli, należy zdefiniować alias tabeli i użyć tego aliasu w elemencie 5DAD <table> jednego z odwzorowań. 5


[ Początek strony | Poprzednia strona | Następna strona | Spis treści ]