Remarques sur le produit

4Décomposition de documents dans l'Extension XML contenant des attributs et des noms d'élément non uniques

4Vous pouvez désormais décomposer des documents contenant des attributs ou 4des noms d'éléments non uniques qui mappent vers des colonnes différentes 4(de tables identiques ou différentes) sans recevoir l'erreur 4DXXQ045E. L'exemple suivant est celui d'un document XML 4comportant des attributs et des noms d'éléments non uniques :

4<Order ID="0001-6789">
4       <!-- Note: attribute name ID is non-unique -->
4       <Customer ID = "1111">
4                    <Name>John Smith</Name>
4       </Customer>
4       <!-- Note: element name Name is non_unique -->
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>

4Le fichier DAD d'accompagnement qui mappe les éléments et attributs 4en double vers différentes colonnes, ressemble à ce qui suit :

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 attribut dupliqué ci-dessous, mais mappé vers une colonne différente -->
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 attribut dupliqué ci-dessus, mais mappé vers une colonne différente -->
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    <!--nom d'élément dupliqué ci-dessous, mais mappé vers une colonne différente -->
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 attribut dupliqué ci-dessus, mais mappé vers une colonne différente -->
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    <!--nom d'élément dupliqué ci-dessus, mais mappé vers une colonne différente --> 
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>

4Le contenu des tables ressemble à l'exemple qui suit, une fois le 4document ci-dessus décomposé :

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
4Remarque :
5Afin de mapper des éléments et attributs multiples vers la même 5colonne de la même table, définissez un alias pour la table et utilisez-le 5dans l'élément DAD <table> d'un des mappages. 5


[ Début de page | Page précédente | Page suivante | Table des matières ]