5(k). Insertion Map Rule- <insertion-map>
For each table that records have to be inserted into, the user must define
an insertion-map rule. This map rule determines after which XML element
in the data file, an insert into the table should occur. Similarly, for
each procedure that has to be invoked, the user must define an insertion-map
rule. This rule determines after which XML element in the data file, the
procedure should be invoked. The format of the insertion-map rule is as
follows:
<!ELEMENT insertion-map EMPTY>
<!ATTLIST insertion-map
element-name CDATA #REQUIRED
table-reference CDATA #IMPLIED
proc-reference CDATA #IMPLIED>
Either the table-reference
attribute or the proc-reference attribute has to be provided.
Example:
For example, assume that you have the following XML data file that inserts
records into the table SOFTWARE_SALES. Then each <software-sale>
element logically corresponds to a record in the SOFTWARE_SALES table.
The insertion-map rule would then associate the element software-sale
with the table SOFTWARE_SALES. Since there are 2 occurences of the element
software-sale, 2 records would be inserted into SOFTWARE_SALES.
<customer-purchases>
<software-sale customer-first-name="Bill" customer-last-name="Smith"
name="ABC Software" purchase-price="120.00" purchase-date="12/20/2001"
sales-agent="Patrick"/>
<software-sale customer-first-name="John" customer-last-name="Bush"
name="DZ Software" purchase-price="2000.00" purchase-date="10/10/2002"
sales-agent="Jane"/>
</customer-purchases>
The mapping file would have the following mapping rules defined in it:
<map-rules root-element="customer-purchases" map-version="1.0">
<table-reference-information
table-reference="SoftwareSales"
table-name="SOFTWARE_SALES"
object-owner="TESTUSER"/>
<insertion-map element-name="software-sale" table-reference="SoftwareSales"/>
<map
element-name="software-sale"
attribute-name="customer-first-name"
table-reference="SoftwareSales"
column-name="FIRST_NAME"/>
<map
element-name="software-sale"
attribute-name="customer-last-name"
table-reference="SoftwareSales"
column-name="LAST_NAME"/>
<map
element-name="software-sale"
attribute-name="name"
table-reference="SoftwareSales"
column-name="SOFTWARE_NAME"/>
<map
element-name="software-sale"
attribute-name="purchase-price"
table-reference="SoftwareSales"
column-name="PURCHASE-PRICE"/>
<map
element-name="software-sale"
attribute-name="purchase-date"
table-reference="SoftwareSales"
column-name="PURCHASE_DATE"/>
<map
element-name="software-sale"
attribute-name="sales-agent"
table-reference="SoftwareSales"
column-name="SALES_AGENT"/>
<map-const
element-name="software-sale"
constant-value="12/20/2001"
table-reference="SoftwareSales"
column-name="DATE_CREATED"/>
</map-rules>
|