this might not be complex to you all but it's extremely difficult for me. This is my second attempt. I have changed my data around to include more information that will take less to transform.
Basically I am trying to take data consisting of three vacation plans (VA, SS and WR) and project out the amount of time each plans will accrue each pay period, by worker, for an entire year. I've only included three pay periods in my data to keep it short(er). I need a separate record for each worker / effective date combination. So if a worker has three vacations plans, and are paid bi-weekly (26 times / year), then that worker could have 78 records.
Here is the XML I am starting with (remember, I am only using the first 3 pay period dates in my example and not all 26):
<?xml version='1.0' encoding='UTF-8'?>
<bb:Report_Data xmlns:bb="urn:com.workday.report/Projected_Balances_Outbound">
<bb:Report_Entry>
<bb:projectedBalanceTotal.principalId>1238974569</bb:projectedBalanceTotal.principalId>
<bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:projectedBalanceTotal.planCodeId>SS</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>SS</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>3.323</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.effectiveDate2>07252012</bb:projectedBalanceTotal.effectiveDate2>
<bb:projectedBalanceTotal.effectiveDate3>08082012</bb:projectedBalanceTotal.effectiveDate3>
</bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:projectedBalanceTotal.planCodeId>VA</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>VA</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.effectiveDate2>07252012</bb:projectedBalanceTotal.effectiveDate2>
<bb:projectedBalanceTotal.effectiveDate3>08082012</bb:projectedBalanceTotal.effectiveDate3>
</bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:projectedBalanceTotal.planCodeId>WR</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>WR</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.effectiveDate2>07252012</bb:projectedBalanceTotal.effectiveDate2>
<bb:projectedBalanceTotal.effectiveDate3>08082012</bb:projectedBalanceTotal.effectiveDate3>
</bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:projectedBalanceTotal.employeeid>123454</bb:projectedBalanceTotal.employeeid>
</bb:Report_Entry>
<bb:Report_Entry>
<bb:projectedBalanceTotal.principalId>4545645878</bb:projectedBalanceTotal.principalId>
<bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:projectedBalanceTotal.planCodeId>SS</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>SS</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>3.692</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.effectiveDate2>07252012</bb:projectedBalanceTotal.effectiveDate2>
<bb:projectedBalanceTotal.effectiveDate3>08082012</bb:projectedBalanceTotal.effectiveDate3>
</bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:projectedBalanceTotal.planCodeId>VA</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>VA</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.effectiveDate2>07252012</bb:projectedBalanceTotal.effectiveDate2>
<bb:projectedBalanceTotal.effectiveDate3>08082012</bb:projectedBalanceTotal.effectiveDate3>
</bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:projectedBalanceTotal.planCodeId>WR</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>WR</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.effectiveDate2>07252012</bb:projectedBalanceTotal.effectiveDate2>
<bb:projectedBalanceTotal.effectiveDate3>08082012</bb:projectedBalanceTotal.effectiveDate3>
</bb:All_Eligible_Time_Off_Plans_for_Worker>
<bb:projectedBalanceTotal.employeeid>445241</bb:projectedBalanceTotal.employeeid>
</bb:Report_Entry>
</bb:Report_Data>
This is what I need to the output to look like after the transformation:
<?xml version='1.0' encoding='UTF-8'?>
<bb:Report_Data xmlns:bb="urn:com.workday.report/Projected_Balances_Outbound">
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>1238974569</bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>SS</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>SS</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>3.323</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>123454</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>1238974569/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>SS</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>SS</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>3.323</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07252012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>123454</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>1238974569/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>SS</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>SS</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>3.323</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>08082012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>123454</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>1238974569/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>WR</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>WR</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>123454</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>1238974569/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>WR</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>WR</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07252012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>123454</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>1238974569/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>WR</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>WR</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>08082012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>123454</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>1238974569/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>VA</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>VA</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>123454</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>1238974569/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>VA</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>VA</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07252012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>123454</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>1238974569/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>VA</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>VA</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>08082012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>123454</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>4545645878/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>SS</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>SS</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>3.692</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>445241</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>4545645878/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>SS</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>SS</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>3.692</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07252012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>445241</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>4545645878/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>SS</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>SS</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>3.692</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>08082012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>445241</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>4545645878/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>WR</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>WR</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>445241</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>4545645878/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>WR</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>WR</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07252012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>445241</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>4545645878/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>WR</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>WR</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>08082012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>445241</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>4545645878/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>VA</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>VA</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07112012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>445241</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>4545645878/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>VA</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>VA</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>07252012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>445241</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
<projectedBalanceTotal>
<bb:projectedBalanceTotal.principalId>4545645878/bb:projectedBalanceTotal.principalId>
<bb:projectedBalanceTotal.planCodeId>VA</bb:projectedBalanceTotal.planCodeId>
<bb:projectedBalanceTotal.leaveCodeId>VA</bb:projectedBalanceTotal.leaveCodeId>
<bb:projected_balance_accrual_amount_for_the_pay_period>0</bb:projected_balance_accrual_amount_for_the_pay_period>
<bb:projectedBalanceTotal.effectiveDate1>08082012</bb:projectedBalanceTotal.effectiveDate1>
<bb:projectedBalanceTotal.employeeid>445241</bb:projectedBalanceTotal.employeeid>
</projectedBalanceTotal>
</bb:Report_Data>
A few more things to take notice of... In addition to the format changes, I am removing the element tags "All_Eligible_Time_Off_Plans_for_Worker" altogether and I am replacing "bb:Report_Entry" with "projectedBalanceTotal".
I have virtually no starting point except that I have XSL code written that successfully removes "All_Eligible_Time_Off_Plans_for_Worker" and replaces "bb:Report_Entry" with "projectedBalanceTotal". That can be found here:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:wd="urn:com.workday.report/CR-INT486-Kuali_Trojan_Time-Absence_Balances__Hospital_Bi-Weekly_-Outbound"
exclude-result-prefixes="wd">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="comment()|processing-instruction()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
<xsl:template match="wd:All_Eligible_Time_Off_Plans_for_Worker">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="wd:Report_Data">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="wd:Report_Entry">
<projectedleaveBalanceTotal>
<xsl:apply-templates select="node()|@*"/>
</projectedleaveBalanceTotal>
</xsl:template>
</xsl:stylesheet>
Any help would be great! Thanks so much in advance.