XML Data Format Example
XML allows the same data to be used for multiple presentation media. In Figure 1 - Figure 5 XML data file is shown formatted for printing with PPFA's XML support.
Figure 1. XML Data File (Part 1 of 5)
<?xml version="1.0" ?>
<?xml:stylesheet type="text/xsl" href=bbbank.xsl"?>
<!-- -->
<!-- Data for XML Example -->
<!-- -->
<document>
<bankstatement>
<customer>
<acctno>026-257311</acctno>
<name>Justin Case</name>
<street>123 Redlight Lane</street>
<cityst>Twistnshout, MA 02345</cityst>
</customer>
<begindate>JAN 02, 2002</begindate>
<enddate>FEB 01, 2002</enddate>
<!-- -->
<!-- Page number generator -->
<!-- -->
<pagenumber>
<!-- -->
<!-- New account type = Super Checking Account -->
<!-- -->
<supercheckingactivity type="superchk">
<balance>
<begin>2591.24</begin>
<credit>1946.93</credit>
<debit>1956.43</debit>
<svchg>0.00</svchg>
<end>0.00</end>
</balance>
<!-- -->
<!-- Credit -->
<!-- -->
<credits>
<transaction>
<type>DEPOSIT</type>
<date>01/05/2002</date>
<amt> 26.90</amt>
</transaction>
<transaction>
<type>AUTO DEPOSIT</type>
<date>01/05/2002</date>
<amt> 954.27</amt>
</transaction>
<transaction>
<type>AUTO DEPOSIT</type>
<date>01/30/2002</date>
<amt> 954.27</amt>
</transaction>
Figure 2. XML Data File (Part 2 of
5)
<transaction>
<type>INTEREST</type>
<date>01/31/2002</date>
<amt> 11.49</amt>
</transaction>
<total>
</credits>
<!-- -->
<!-- Checks -->
<!-- -->
<checks>
<transaction>
<chkno>352</chkno>
<date>01/04/2002</date>
<amt> 321.50</amt>
<transaction>
<transaction>
<chkno>353</chkno>
<date>01/05/2002</date>
<amt> 100.00</amt>
<transaction>
<transaction>
<chkno>354</chkno>
<date>01/10/2002</date>
<amt> 122.30</amt>
<transaction>
<transaction>
<chkno>355</chkno>
<date>01/11/2002</date>
<amt> 59.95</amt>
<transaction>
<transaction>
<chkno>356</chkno>
<date>01/15/2002</date>
<amt> 852.33</amt>
<transaction>
<transaction>
<chkno>357</chkno>
<date>01/30/2002</date>
<amt> 500.35</amt>
<transaction>
</checks>
<!-- -->
<!-- Daily Balances -->
<!-- -->
<balances>
<baldata>
<date>01/04/2002</date>
<bal>2269.74</bal>
</baldata>
<baldata>
<date>01/05/2002</date>
<bal>2196.64</bal>
</baldata>
<baldata>
<date>01/10/2002</date>
<bal>2074.34</bal>
</baldata>
<baldata>
<date>01/11/2002</date>
<bal>2014.39</bal>
</baldata>
Figure 3. XML Data File (Part 3 of
5)
<baldata>
<date>01/15/2002</date>
<bal> 852.33</bal>
</baldata>
<baldata>
<date>01/30/2002</date>
<bal> 500.35</bal>
</baldata>
<total>2581.74</total>
</balances>
<!-- -->
<!-- Statement trailer generator -->
<!-- -->
<stmttrailer/>
</superbankingactivity>
</bankstatement>
<bankstatement>
<customer>
<acctno>887-278342</acctno>
<name>Anna Merkin</name>
<street>123 Chantilly Lane</street>
<cityst>Long Neck Goose, VA 21177</cityst>
</customer>
<begindate>JAN 02, 2002</begindate>
<enddate>FEB 01, 2002</enddate>
<!-- -->
<!-- Page number generator -->
<!-- -->
<pagenumber>
<!-- -->
<!-- New account type = Super Checking Account -->
<!-- -->
<supercheckingactivity="suprchk">
<balance>
<begin>3722.23</begin>
<credit>2084.58</credit>
<debit>1908.94</debit>
<svchg>0.00</svchg>
<end>3897.87</end>
</balance>
<!-- -->
<!-- Credits -->
<!-- -->
<credits>
<transaction>
<type>DEPOSIT</type>
<date>01/11/2002</date>
<amt> 17.37</amt>
</transaction>
<transaction>
<type>AUTO DEPOSIT</type>
<date>01/15/2002</date>
<amt>1029.81</amt>
</transaction>
<transaction>
<type>AUTO DEPOSIT</type>
<date>01/30/2002</date>
<amt>1029.81</amt>
</transaction>
Figure 4. XML Data File (Part 4 of
5)
<transaction>
<type>INTEREST</type>
<date>01/31/2002</date>
<amt> 7.59</amt>
</transaction>
<total>2084.58</total>
</credits>
<!-- -->
<!-- Checks -->
<!-- -->
<checks>
<transaction>
<chkno>759</chkno>
<date>01/03/2002</date>
<amt> 144.00</amt>
</transaction>
<transaction>
<chkno>760</chkno>
<date>01/04/2002</date>
<amt> 93.11</amt>
</transaction>
<transaction>
<chkno>761</chkno>
<date>01/09/2002</date>
<amt> 322.72</amt>
</transaction>
<transaction>
<chkno>762</chkno>
<date>01/11/2002</date>
<amt> 102.43</amt>
</transaction>
<transaction>
<chkno>763</chkno>
<date>01/17/2002</date>
<amt> 794.46</amt>
</transaction>
<transaction>
<chkno>764</chkno>
<date>01/29/2002</date>
<amt> 452.22</amt>
</transaction>
</checks>
Figure 5. XML Data File (Part 5 of
5)
<!-- -->
<!-- Daily Balances -->
<!-- -->
<balances>
<baldata>
<date>01/04/2002</date>
<bal>3722.23</bal>
</baldata>
<baldata>
<date>01/05/2002</date>
<bal>3629.12</bal>
</baldata>
<baldata>
<date>01/10/2002</date>
<bal>3306.40</bal>
</baldata>
<baldata>
<date>01/11/2002</date>
<bal>3221.34</bal>
</baldata>
<baldata>
<date>01/15/2002</date>
<bal>4251.15</bal>
</baldata>
<baldata>
<date>01/30/2002</date>
<bal>3897.87</bal>
</baldata>
<total>3897.87</total>
</balances>
<!-- -->
<!-- Statement trailer generator -->
<!-- -->
<stmttrailer>
</supercheckingactivity>
</bankstatement>
</document>
Figure 6 - Figure 7 shows the resulting
printed output from the XML data in Figure 1 - Figure 5.
Figure 6. XML Data Printed Output (Part 1 of 2)
Figure 7. XML Data Printed Output (Part 2 of 2)
The page definition that is used to create the output in Figure 6 -
Figure 7 is shown in Figure 8 - Figure 14:
Figure 8. Page Definition for XML Output (Part 1 of 7)
PAGEDEF bbbank replace yes
WIDTH 8.5 in
HEIGHT 11.0 in
UDTYPE EBCDIC;
FONT comp a075nc TYPE EBCDIC;/*Big Brother Bank font */
FONT ital a175dc TYPE EBCDIC;/*Italic theme */
FONT addr a075dc TYPE EBCDIC;/*Big Brother address */
FONT varb gt10 TYPE EBCDIC;/*Variable data */
FONT super a075dc TYPE EBCDIC;/*Super Checking Account */
FONT head a055ac TYPE EBCDIC;/*Headings */
FONT bhead a075ac TYPE EBCDIC;/*Bold Headings */
/************************************************/
/** QTAG declarations **/
/************************************************/
/*---- statmid declarations --------------------*/
DEFINE statmid QTAG C'document',
C'bankstatement',C'customer';
DEFINE acctno QTAG C'document',
C'bankstatement',C'customer',C'acctno';
DEFINE name QTAG C'document',
C'bankstatement',C'customer',C'name';
DEFINE street QTAG C'document',
C'bankstatement',C'customer',C'street';
DEFINE cityst QTAG C'document',
C'bankstatement',C'customer',C'cityst';
DEFINE begindate QTAG C'document',
C'bankstatement',C'begindate';
DEFINE enddate QTAG C'document',
C'bankstatement',C'enddate';
/*---- statsum declarations --------------------*/
DEFINE statsum QTAG C'document',
C'bankstatement',C'supercheckingactivity'
C'balance' ;
DEFINE statsumf1 QTAG C'document',
C'bankstatement',C'supercheckingactivity'
C'balance', c'begin';
DEFINE statsumf2 QTAG C'document',
C'bankstatement',C'supercheckingactivity'
C'balance', c'credit';
DEFINE statsumf3 QTAG C'document',
C'bankstatement',C'supercheckingactivity'
C'balance', c'debit';
DEFINE statsumf4 QTAG C'document',
C'bankstatement',C'supercheckingactivity'
C'balance', c'svchg';
DEFINE statsumf5 QTAG C'document',
C'bankstatement',C'supercheckingactivity'
C'balance', c'end';
/*---- crdata declarations --------------------*/
DEFINE crheader QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'credits';
DEFINE crdata1 QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'credits',C'transaction',C'type' ;
DEFINE crdata2 QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'credits',C'transaction',C'date' ;
Figure 9. Page Definition for XML Output (Part 2 of 7)
DEFINE crdata3 QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'credits',C'transaction',C'amt' ;
DEFINE crtotal QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'credits',C'total';
/*---- ckdata declarations --------------------*/
DEFINE ckheader QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'checks' ;
DEFINE ckdata1 QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'checks',C'transaction',C'chkno' ;
DEFINE ckdata2 QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'checks',C'transaction',C'date' ;
DEFINE ckdata3 QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'checks',C'transaction',C'amt' ;
DEFINE cktotal QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'checks', C'total';
/*---- baldata declarations --------------------*/
DEFINE balhead QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'balances';
DEFINE baldata1 QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'balances',C'baldata',C'date' ;
DEFINE baldata2 QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'balances',C'baldata',C'bal' ;
DEFINE baltotal QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'balances', C'total';
/*---- misc. declarations --------------------*/
DEFINE statrail QTAG C'document',
C'bankstatement',C'supercheckingactivity',
C'stmttrailer';
DEFINE pgenum QTAG C'document',
C'bankstatement',C'pagenumber';
/*----------------------------------------------*/
/*---- end of QTAG declarations ----------------*/
/*----------------------------------------------*/
PAGEFORMAT xchub1 TOPMARGIN 2 in BOTMARGIN 1 in;
/************************************************/
/** statmid HEADER **/
/************************************************/
XLAYOUT statmid PAGEHEADER NEWPAGE
POSITION .6 in ABSOLUTE .55 in;
FIELD TEXT C'Big Brother Bank' ALIGN LEFT
FONT comp ; /* default to LAYOUT positioning */
FIELD TEXT C'"We watch over you"' ALIGN LEFT
POSITION 0 NEXT
FONT ital ; /*default to next line */
FIELD TEXT C'P.O. Box 1573' ALIGN LEFT
POSITION 0 NEXT
FONT addr ; /*default to next line */
Figure 10. Page Definition for XML Output (Part 3 of 7)
FIELD TEXT C'Beantown, MA 02116' ALIGN LEFT
POSITION 0 NEXT
FONT addr ; /*default to next line */
FIELD TEXT C'Account Number:' ALIGN LEFT
POSITION 4.3 in .2 in
FONT head ; /*New area on right */
FIELD TEXT C'Statement Begin Date:' ALIGN LEFT
POSITION 4.3 in NEXT
FONT head ; /*New area on right */
FIELD TEXT C'Statement End Date:' ALIGN LEFT
POSITION 4.3 in NEXT
FONT head ; /*New area on right */
XLAYOUT acctno PAGEHEADER CONTINUE
POSITION SAME SAME;
FIELD START 1 LENGTH 10 ALIGN RIGHT
POSITION 7.5 in .2 in
FONT varb ;
XLAYOUT begindate PAGEHEADER CONTINUE
POSITION SAME SAME;
FIELD START 1 LENGTH 12
POSITION 7.5 in .37 in
ALIGN RIGHT
FONT varb ;
XLAYOUT enddate PAGEHEADER CONTINUE
POSITION SAME SAME;
FIELD START 1 LENGTH 12
POSITION 7.5 in .53 in
ALIGN RIGHT
FONT varb ;
XLAYOUT name PAGEHEADER CONTINUE
POSITION SAME SAME;
FIELD START 1 LENGTH 19 ALIGN LEFT
POSITION 1.1 in .9 in
FONT varb ;
XLAYOUT street PAGEHEADER CONTINUE
POSITION SAME SAME;
FIELD START 1 LENGTH 19 ALIGN LEFT
POSITION 1.1 in 1.07 in
FONT varb ;
XLAYOUT cityst PAGEHEADER CONTINUE
POSITION SAME SAME;
FIELD START 1 LENGTH 22 ALIGN LEFT
POSITION 1.1 in 1.23 in
FONT varb ;
/************************************************/
/** statsum BODY **/
/************************************************/
XLAYOUT statsum BODY
POSITION .6 in .5 in;
FIELD TEXT C'Super Checking Account Activity'
FONT super ; /* Static text - Super Checking */
DRAWGRAPHIC LINE ACROSS 7.5 IN LINEWT BOLD
POSITION 0 .15 in
copy down 2 spaced 1 mm;
FIELD TEXT C'Beginning Balance'
POSITION .3 in .4 in
FONT head ; /* Static text - first header */
FIELD TEXT C'Credits'
POSITION 2.4 in CURRENT
FONT head ; /* Static text - first header */
Figure 11. Page Definition for XML Output (Part 4 of 7)
FIELD TEXT C'Debits'
POSITION 3.6 in CURRENT
FONT head ; /* Static text - first header */
FIELD TEXT C'Service Charge'
POSITION 4.8 in CURRENT
FONT head ; /* Static text - first header */
FIELD TEXT C'Ending Balance'
POSITION 6.3 in CURRENT
FONT head ; /* Static text - first header */
XLAYOUT statsumf1 BODY
POSITION SAME .6 in;
FIELD START 1 LENGTH 8
POSITION .6 in CURRENT
FONT varb ; /* Variable text - Beg balance */
XLAYOUT statsumf2 BODY
POSITION SAME SAME;
FIELD START 1 LENGTH 8
POSITION 2.2 in CURRENT
FONT varb ; /* Variable text - Credits */
XLAYOUT statsumf3 BODY
POSITION SAME SAME;
FIELD START 1 LENGTH 8
POSITION 3.4 in CURRENT
FONT varb ; /* Variable text - Debits */
XLAYOUT statsumf4 BODY
POSITION SAME SAME;
FIELD START 1 LENGTH 5
POSITION 5.0 in CURRENT
FONT varb ; /* Variable text - Service Chrg */
XLAYOUT statsumf5 BODY
POSITION SAME SAME;
FIELD START 1 LENGTH 8
POSITION 6.5 in CURRENT
FONT varb ; /* Variable text - End Balance */
DRAWGRAPHIC LINE ACROSS 7.5 IN LINEWT BOLD
POSITION 0 .1 in;
/************************************************/
/** crheader GROUPHEADER **/
/************************************************/
XLAYOUT crheader GRPHEADER XSPACE .2 in
POSITION SAME .3 in;
FIELD TEXT C'Credits'
FONT bhead ; /* Static text - Credits */
FIELD TEXT C'Description'
POSITION 1.3 in CURRENT
FONT head ; /* Stat text - Deposit Descr. */
FIELD TEXT C'Date'
POSITION 3.2 in CURRENT
FONT head ; /* Static text - Date */
FIELD TEXT C'Amount'
POSITION 5.0 in CURRENT
FONT head ; /* Stat text - Amount of deposit*/
DRAWGRAPHIC LINE ACROSS 6.2 IN LINEWT BOLD
POSITION 1.3 in next;
/************************************************/
/** crdata BODY **/
/************************************************/
XLAYOUT crdata1 BODY GROUP;
FIELD START 1 LENGTH 13
POSITION 1.3 in CURRENT
FONT varb ; /* Variable text - Description */
Figure 12. Page Definition for XML Output (Part 5 of 7)
XLAYOUT crdata2 BODY GROUP position same same;
FIELD START 1 LENGTH 8
POSITION 3 in CURRENT
FONT varb ; /* Variable text - Date */
XLAYOUT crdata3 BODY GROUP position same same;
FIELD START 1 LENGTH 8 ALIGN RIGHT
POSITION 5.6 in CURRENT
FONT varb ; /* Variable text - Amount */
/************************************************/
/** crtotal BODY **/
/************************************************/
XLAYOUT crtotal BODY GROUP;
FIELD TEXT C'Total Credits'
POSITION 1.5 in .2 in
FONT bhead ; /* Stat text - Total credits */
FIELD START 1 LENGTH 8 ALIGN RIGHT
POSITION 7.3 in CURRENT
FONT varb ; /* Variable text - Amount */
DRAWGRAPHIC LINE ACROSS 7.5 IN LINEWT BOLD
POSITION 0 next;
/************************************************/
/** ckheader GROUPHEADER **/
/************************************************/
XLAYOUT ckheader GRPHEADER XSPACE .2 IN
POSITION SAME .6 in;
FIELD TEXT C'Checks'
FONT bhead ; /* Static text - Checks */
FIELD TEXT C'Check No.'
POSITION 1.3 in CURRENT
FONT head ; /* Stat text - Check number */
FIELD TEXT C'Date'
POSITION 3.2 in CURRENT
FONT head ; /* Stat text - Date of check */
FIELD TEXT C'Amount'
POSITION 5.0 in CURRENT
FONT head ; /* Static text - Amount of check*/
DRAWGRAPHIC LINE ACROSS 6.2 IN LINEWT BOLD
POSITION 1.3 in next;
/************************************************/
/** ckdata BODY **/
/************************************************/
XLAYOUT ckdata1 BODY GROUP
POSITION SAME NEXT;
FIELD START 1 LENGTH 3
POSITION 1.5 in CURRENT
FONT varb ; /* Variable text - Check number */
XLAYOUT ckdata2 BODY GROUP position same same;
FIELD START 1 LENGTH 8
POSITION 3.0 in CURRENT
FONT varb ; /* Variable text - Date */
XLAYOUT ckdata3 BODY GROUP position same same;
FIELD START 1 LENGTH 8 ALIGN RIGHT
POSITION 5.6 in CURRENT
FONT varb ; /* Variable text - Amount */
/************************************************/
/** cktotal BODY **/
/************************************************/
XLAYOUT cktotal BODY GROUP;
FIELD TEXT C'Total Checks'
POSITION 1.5 in .2 in
FONT bhead ; /* Stat text - Total checks */
Figure 13. Page Definition for XML Output (Part 6 of 7)
FIELD START 1 LENGTH 8 ALIGN RIGHT
POSITION 7.3 in CURRENT
FONT varb ; /* Variable text - Amount */
DRAWGRAPHIC LINE ACROSS 7.5 IN LINEWT BOLD
POSITION 0 next;
/************************************************/
/** balhead GROUPHEADER **/
/************************************************/
XLAYOUT balhead GRPHEADER XSPACE .2 in
POSITION SAME .6 in;
FIELD TEXT C'Daily'
FONT bhead ; /* Static text - Daily Balance */
FIELD TEXT C'Date'
POSITION 1.3 in CURRENT
FONT head ; /* Stat text - Date of balance */
FIELD TEXT C'Balance'
POSITION 3.15 in CURRENT
FONT head ; /* Static text - Balance */
FIELD TEXT C'Balances'
POSITION 0 NEXT
FONT bhead ; /* Static text - Daily Balance */
DRAWGRAPHIC LINE ACROSS 6.2 IN LINEWT BOLD
POSITION 1.3 in CPOS;
/************************************************/
/** baldata BODY **/
/************************************************/
XLAYOUT baldata1 BODY GROUP
POSITION SAME NEXT;
FIELD START 01 LENGTH 8
POSITION 1.3 in CURRENT
FONT varb ; /* Variable text - Date */
XLAYOUT baldata2 BODY GROUP position same same;
FIELD START 01 LENGTH 8 ALIGN RIGHT
POSITION 3.8 in CURRENT
FONT varb ; /* Variable text - Amount */
/************************************************/
/** baltotal BODY **/
/************************************************/
XLAYOUT baltotal BODY GROUP;
FIELD TEXT C'Final Balance'
POSITION 1.5 in .2 in
FONT bhead ; /* Stat text - Final balance */
FIELD START 1 LENGTH 8 ALIGN RIGHT
POSITION 7.3 IN CURRENT
FONT varb ; /* Variable text - Amount */
/************************************************/
/** statrail BODY **/
/************************************************/
XLAYOUT statrail BODY
POSITION SAME .4 in;
DRAWGRAPHIC LINE ACROSS 7.5 IN LINEWT BOLD
POSITION 0 CPOS;
FIELD TEXT C'Interest Rate '
POSITION 2.0 in NEXT
FONT bhead ; /* Static text - Interest rate */
FIELD TEXT C'As of 01/04 * * * 5.321%'
POSITION CURRENT CURRENT
FONT varb ; /* Static text */
DRAWGRAPHIC LINE ACROSS 7.5 IN LINEWT BOLD
POSITION 0 NEXT
copy down 2 spaced 1 mm;
Figure 14. Page Definition for XML Output (Part 7 of 7)
/************************************************/
/** pgenum PAGE NUMBER **/
/************************************************/
XLAYOUT pgenum PAGETRAILER
POSITION SAME ABSOLUTE 10.7 in;
FIELD TEXT C 'Page '
POSITION 6.5 in CURRENT
FONT varb; /* placement of page number */
FIELD PAGENUM PRINT /* request page numbering */
FONT varb /* placement of page number */
POSITION CURRENT CURRENT;