Understanding XML and identifying Groups of repeating elements
Defining
Groups
By defining a group, you are notifying XML
Publisher that for each occurrence of an element, you want the included fields
displayed. At runtime, XML Publisher will loop through the occurrences of the
element and display the fields each time.
In the example, for each occurrence of
G_VENDOR_NAME in the XML file, we want the template to display its child
elements VENDOR_NAME (Supplier Name), G_INVOICE_NUM (the Invoices group), Total
Entered Amount, and Total Accounted Amount. And, for each occurrence of
G_INVOICE_NUM (Invoices group), we want the template to display Invoice Date, PAYMENT_METHOD_LOOKUP_CODE, SET_OF_BOOKS_ID, APPROVED_AMOUNT To
designate a group of repeating fields, insert the grouping tags around the
elements to repeat. Insert the following tag before the first element:
<?for-each:XML group element tag name?>
Insert
the following tag after the final element:
<?end for-each?>
Grouping scenarios
Note that
the group element must be a parent of the repeating elements in the XML input
file.
·
If you insert the grouping tags around text or
formatting elements, the text and formatting elements between the group tags
will be repeated.
·
If you insert the tags around a table, the table
will be repeated.
·
If you insert the tags around text in a table cell,
the text in the table cell between the tags will be repeated.
·
If you insert the tags around two different table
cells, but in the same table row, the single row will be repeated.
·
If you insert the tags around two different table
rows, the rows between the tags will be repeated (this does not include the row
that contains the "end group" tag).
Our data model looks like
Query we had used for creating data
model is shown below
SQL>SELECT pov.vendor_name,
ai.invoice_date,
ai.invoice_amount,
ai.payment_method_lookup_code,
ai.set_of_books_id,
ai.approved_amount
FROM po_vendors pov, ap_invoices_all ai
WHERE pov.vendor_id = ai.vendor_id;
Now we have to generate XML which we had learnt in previous
lesson
Save the XML file in appropriate location which is used to
load data in RTF.
Now we have to construct RTF