XML Data Format Example
XML allows the same data to be used for multiple presentation media. In Figure XML Data File XML data file is shown formatted for printing with PPFA's XML support.
XML Data File
<?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> <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> <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> <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> <!-- --> <!-- 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 XML Data Printed Output shows the resulting printed output from the XML data in Figure XML Data File.
XML Data Printed Output
The page definition used to create the output in Figure XML Data Printed Output is shown in Figure Page Definition for XML Output:
Page Definition for XML Output
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' ; 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 */ 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 */ FIELD TEXT C'Debits' POSITION 3.6 in CURRENT FONT head ;/* Static text - first header */ FIELD TEXT C'Service Charge' POSITION 4.9 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 */ 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 */ 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; /************************************************/ /** 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;