发行说明

4分解 XML Extender 中包含非唯一属性和元素名称的文档

4现在可以分解包含非唯一属性或非唯一元素名称的映射至不同的列(具有相同或不同的表)的文档而不会接收到 4DXXQ045E 错误。以下是具有非唯一属性和非唯一元素名称的 XML 文档的一个示例:

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>

4伴随的 DAD(它将重复的元素和属性映射至不同的列)如下:

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  <!--attribute ID duplicated below, but mapped to a different col-->
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    <!--attribute ID duplicated above, but mapped to a different col-->
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    <!--element name duplicated below, but mapped to a different col-->
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    <!--attribute ID duplicated above, but mapped to a different col-->
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    <!--element name duplicated above, but mapped to a different col--> 
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>

4在分解了前面的文档之后,表的内容将如以下示例所示:

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
4注:
5要将多个元素和属性映射至同一个表的同一列,为该表定义别名并在 DAD <table> 元素的其中一个映射中使用该别名。 5


[ 页的顶部 | 上一页 | 下一页 | 目录 ]