0% found this document useful (0 votes)
83 views

XML Tags

The document describes various XML tags that can be used to control formatting and functionality when generating reports from XML data using XML Publisher. Key tags and their purposes include: - <?for-each?> loops through repeating data groups - Data fields use placeholders mapped to XML element tags - <?start:body?> and <?end body?> enclose the report body for headers and footers - <?sort?> sorts data within groups - Conditional logic uses <?if?> and <?choose?> tags - Page breaks are inserted using <?split-by-page-break?> to control pagination - Calculated fields perform math between data fields

Uploaded by

surya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views

XML Tags

The document describes various XML tags that can be used to control formatting and functionality when generating reports from XML data using XML Publisher. Key tags and their purposes include: - <?for-each?> loops through repeating data groups - Data fields use placeholders mapped to XML element tags - <?start:body?> and <?end body?> enclose the report body for headers and footers - <?sort?> sorts data within groups - Conditional logic uses <?if?> and <?choose?> tags - Page breaks are inserted using <?split-by-page-break?> to control pagination - Calculated fields perform math between data fields

Uploaded by

surya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

XML TAGS

================================================
for-each loop:
• Define groups to notify XML Publisher to loop through repeating information
• Insert the following tag before the first element

<?for-each:XML group element tag name?>


<?end for-each?>
=============================================
Data fields:
• Placeholders map the template field to the XML data field
• Placeholder must match XML element tag name exactly
• Case sensitive.

<?XML element tag name?>


=============================================
Page Header/Footer:
• Enclose the body area of the report within the following tags
• Elements occurring before the <?start:body?> tag compose the header
• Elements occurring after the <?end body?> tag compose the footer

<?start:body?>
<?end body?>
================================================
Sorting:
• Insert sort tag within the group
<?sort:element name?>
EX:
– Enter the following after the <?for-each:G_INVOICE?>
<?sort:trx_number?>
• No end tag
• Sort on multiple elements possible, use multiple sort tags
<?sort:trx_number?><?sort:trx_date?>
• Sort on calculated fields supported.
================================================
Additional Sorting:
• Sort order descending
• Data type sorting
– Number
– Date
• Separated by semi-colon (;)

<?sort:trx_number;data-type=‘number’;order=‘descending’?>
================================================
================================================
Page Breaks:
• This avoids extra blank page at the end of report
• Just before the <?end for-each?> tag either…

Insert a Microsoft Page Break


Insert->Break->Page Break
-or-
<Ctrl> + <Enter>

– Use XML Publisher directive


<?split-by-page-break:?>
================================================
Calculated Fields:
• Use field names and operand(s)
– + - Addition
– - - Minus
– * - Multiplication
– / - Division
<?field1 + field2?>

• Not required to be in form field


================================================
Extended functions:
• Some SQL functions can be used in template
 It is NOT case sensitive.
 Not required to be in a form field.
 RPAD, LPAD, REPLACE
 INSTR, SUBSTR, LENGTH
 DECODE
 SYSDATE
 TO_NUMBER, TO_CHAR
 UPPER, LOWER
 GREATEST, LEAST
 ROUND, CEIL, FLOOR
<?xdofx:function_name(params)?>
================================================
================================================
Conditional logic:
• Support for IF and CASE statements
IF: <?if:boolean_test?>
<?end if?>
– Example : to display only invoice lines with a line type of “LINE”
– Enclose the invoice line output within the tags below
<?if:LINE_TYPE='LINE' ?>
<?end if?>
CASE:
<?choose?>
<?when:boolean_test?>
<?end when?>
<?otherwise?>
<?end otherwise?>
<?end choose?>
================================================
Images/Logos…:
 Use a table for complete control of image behavior
 Static Images
 Paste the image directly into layout template
 Dummy image on template
 Specify URL in alternative text section
 Double click on image, go to web tab, alternative text field
url:{‘www.myspace.com/xml_example/myimage.gif’}
 Server-side Images (in EBS)
 Dummy image on template
 Specify URL in alternative text section
url:{‘${OA_MEDIA} /myimage.gif’}
 URLs and Paths in XML elements or combination of elements
 BLOBS from database
================================================
Dynamic data columns:
 Dynamic Column Header
<?split-column-header:group element name?>
 Dynamic Column Data
<?split-column-data:group element name?>
 Ex: Print departments in column header and demand qty as column data
 Column header
<?split-column-header:G_DEPT_CLASS?><?DEPT_CLASS?>
 Column data
<?split-column-data:G_DEPT_CLASS?><?SUM_QTY?>
================================================
================================================
Rows per page:

 Define row counter variable in a form field


<?xdoxslt:set_variable($_XDOCTX, ’Counter’, 0)?>
 Increment counter for each line (again in a form field)
<?xdoxslt:set_variable($_XDOCTX, ’Counter’, xdoxslt:
get_variable($_XDOCTX, ’Counter’) + 1)?>
 Break if the number of rows is reached (say 6 rows in this example)
<?if: xdoxslt:get_variable($_XDOCTX, ’Counter’) mod 6=0?>
<?split-by-page-break:?>
<?end if?
================================================
Last Page Only Content:

• Create a section break in MSWord (Insert->Break->Section break Next


page)
• Insert the following syntax on the final page:
<?start@last-page:body?>
<?end body?>
• Content on the page above and below these tags will appear only on last
page
• Headers or footers previously defined for the report must be reinserted on
the last page
================================================
Re-grouping XML Data:

 Not limited by the structure of the data source


 Use the tags
<?for-each-group: BASE-GROUP;GROUPING-ELEMENT?>
<?end for-each-group?>
 Can establish nested groupings
<?for-each:current-group(); GROUPING-ELEMENT?>
<?end for-each-group?>
 Example: CD Catalog XML data is grouped by CD. To change to group
 by country, use the syntax below:
<?for-each-group:CD:COUNTRY?>
================================================
Cell highlighting:
• Native XSL embedded within XMLP using xdofo:ctx component
• Example: Change cell color to red if debit amount > 1000
<?if:debit>1000?>
<xsl:attribute xdofo:ctx="block“name="background-color">red</xsl:attribute>
<?end if?>
================================================
================================================
Page totals:
 Declare variable to hold page totals, following data element declaration
<?add-page-total:TotalFieldName;'element'?>
 Display total field
<?show-page-total:TotalFieldName;'Oracle-number-format'?>
 Example: Suppose we want to total the field “debit”
 Create a page total variable called “dt” (it follows the placeholder)
<?debit?><?add-page-total:dt;'debit'?>
 Insert the show page total syntax in the page footer
<?show-page-total:dt;'C9G990D00';'(C9G990D00)'?>
 Page totalling available only for PDF output type
================================================

You might also like