Output Payroll XML Document

<payroll type="cooked" version="1.1" date="" period="" genSysId="" startPeriod="" endPeriod="">
  <person id="" name="">
    <item name="" value="" comment=""/>
  </person>
</payroll>


specify a <item> for each item that applies to the person's payroll entry.
Ex:

  <person id="123456789" name="John Doe">
    <item name="gross" value="500.00"/>
    <item name="US Federal" value="-10.00"/>
    <item name="US Medicare" value="-5.00"/>
    <item name="US FICA" value="-5.00"/>
    <item name="US MO" value="-10.00"/>
    <item name="US IL" value="-2.00"/>
    <item name="US Mileage" value="5.25"/>
    <item name="Reimbursement" value="5.25" comment="Sharpees"/>
    <item name="Correction" value="-15.75" comment="Overpay for 20020915"/>
    <item name="net" value="466.75"/>
  </person>


The output perl data structure:

data = { version, date, persons, period, genSysId, startPeriod, endPeriod }
where persons =  array of persons.
genSysId is an identifier that the generating system associated with this payroll.
startPeriod and endPeriod are dates that define the start and end date of the payroll period being processed.
In each person, { id, name, items }
where items = array of item entries.

In each item, { name, value, comment }
If the comment is empty, we do not have to output it in the xml document.  If the comment does not exist in the item tag, then we assume it is empty.

Changes from 1.0 -> 1.1: