Reserved XML Elements
You can create your own structure and elements for the majority of the output items. However, there are currently fIve (5) specific types of output for which ProAdmin requires you to use a set structure and element names. These are:
The final average salary details (from a Final Average Salary Custom Operator) require this XML structure within the decrement level of your schema:
<xsd:element name="FASDETAIL" minOccurs="0"><xsd:complexType></xsd:element><xsd:sequence></xsd:complexType>
<xsd:element name="OPER" maxOccurs="unbounded"></xsd:sequence>
<xsd:complexType></xsd:element><xsd:sequence></xsd:complexType>
<xsd:element name="NAME" type="xsd:string"/></ xsd:sequence>
<xsd:element name="RESULT" type="xsd:decimal"/>
<xsd:element name="SALS" maxOccurs="unbounded"><xsd:complexType></xsd:element><xsd:sequence></ xsd:complexType><xsd:element name="DATE" type="xsd:date"/></xsd:sequence>
<xsd:element name="SAL" type ="xsd:decimal"/>
<xsd:element name="LTDSAL" type="xsd:decimal"/>
<xsd:element name="INHIGHFAS" type="xsd:decimal"/>
The benefit formula component details require this XML structure within the decrement level of your schema.
<xsd:element name="ProAdminBFCDetails" minOccurs="0"><xsd:complexType></xsd:element>
<xsd:sequence></xsd:complexType>
<xsd:element name="ProAdminBFC" maxOccurs="unbounded"></xsd:sequence>
<xsd:complexType></xsd:element>
<xsd:sequence></xsd:complexType>
<xsd:element name="Name" type="xsd:string"/></xsd:sequence>
<xsd:element name="Type" type="xsd:string"/>
<xsd:element name="Code" type="xsd:decimal"/>
<xsd:element name="ValueAtDec" type="xsd:decimal"/>
<xsd:element name="Details" maxOccurs="unbounded">
<xsd:complexType></xsd:element><xsd:sequence></xsd:complexType><xsd:element name="Date" type="xsd:date" />
<xsd:element name="MemberAge" type="xsd:decimal"/>
<xsd:element name="BenefitService" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="MemberService" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="TableMemberAge" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="TableBeneAge" type="xsd:decimal" minOccurs="0"/><!-- for 'Accrual definition - final average' Type, "AccrualRate" will contain the Cumulative Accrual Rate -->
<xsd:element name="AccrualRate" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="AccrualBasis" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="Accrual" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="DiscountFactor" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="InterestRate" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="AccrualInterestRate" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="AccrualInterest" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="BalanceInterest" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="PreProjBenefit" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="ProjRate" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="ProjFactor" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="PreEmpiricalBenefit" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="AccrdBenefit" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="BenefitChange" type="xsd:decimal" minOccurs="0"/><!-- "ImmedAnnuityNRD" will contain Immediate annuity from beginning of year if annual from beginning of year -->
<xsd:element name="ImmedAnnuityNRD" type="xsd:decimal" minOccurs="0"/><!-- "DefAnnuityFromNRD" will contain the one year deferred annuity from beg of year if annual from beginning of year --></xsd:sequence>
<xsd:element name="DefAnnuityFromNRD" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="CumLateRetFact" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="IncrLateRetFact" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="BFCResult" type="xsd:decimal"/>
<xsd:complexType><xsd:sequence></xsd:element><xsd:element name="Table" maxOccurs="unbounded"></xsd:complexType><xsd:complexType></xsd:sequence>
<xsd:sequence></xsd:element><xsd:element name="TableName" type="xsd:string"/></xsd:complexType>
<!-- ProAdmin table name-->
<xsd:element name="Type" type="xsd:string"/>
<xsd:element name="Code" type="xsd:decimal"/>
<!-- (1=constant, 2=pbgc, 5=spot, 6=duration) -->
<xsd:element name="Details" maxOccurs="unbounded"><xsd:complexType></xsd:sequence><xsd:sequence></xsd:element><xsd:element name="Date" type="xsd:date"/></xsd:complexType>
<xsd:element name="Rate" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="Dur" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="Proj" type="xsd:decimal" minOccurs="0"/>
<!-- (1=yes, 0=no) -->
</xsd:sequence>
<xsd:element name="Ref" maxOccurs="unbounded">
<xsd:complexType></xsd:element><xsd:sequence></xsd:complexType>
<xsd:element name="Name" type="xsd:string"/></xsd:sequence>
<!-- Name of entity which reference this table -->
<xsd:element name="Library" type="xsd:string"/>
<!-- ABCOMP, ACTEUIV, BFCOMP, PAYFORM, PLANDEF -->
<xsd:element name="Type" type="xsd:decimal" minOccurs="0"/>
<!-- AnnFactor, BasisOnly, CareerAverage, CashBalance, FAS, IntFactor, LateRet, LSQ -->
<xsd:element name="RefType" type="xsd:string"/>
<!-- Reference type: INTABLE, ACTEQUIV-->
<xsd:element name="RatesUsedBy" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType></xsd:element>
<xsd:sequence></xsd:complexType>
<xsd:element name="Name" type="xsd:string"/></xsd:sequence>
<xsd:element name="Library" type="xsd:string"/>
<xsd:element name="Type" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="Details" maxOccurs="unbounded">
<xsd:complexType></xsd:element><xsd:sequence></xsd:complexType>
<xsd:element name="Date" type="xsd:date"/></xsd:sequence>
<xsd:element name="Rate1" type="xsd:decimal"/>
<xsd:element name="Rate2" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="Rate3" type="xsd:decimal" minOccurs="0"/>
<xsd:element name="Rate4" type="xsd:decimal" minOccurs="0"/>
PADescription Attributes
To use PADescription attributes, you need to add the following to the top of your XML Output Linkage schema, after the xsd:schema element and before your root element (e.g., <xsd:element name="ProAdmin_Calc_Results">)
<xsd:complexType name="PADecimal" ><xsd:simpleContent></xsd:complexType>
<xsd:extension base="xsd:decimal" /></xsd:simpleContent>
<xsd:attribute name="PADescription" type="xsd:string"/></xsd:extension>
<xsd:complexType name="PAString" ><xsd:simpleContent></xsd:complexType>
<xsd:extension base="xsd:string" /></xsd:simpleContent>
<xsd:attribute name="PADescription" type="xsd:string"/></xsd:extension>
<xsd:complexType name="PADate" ><xsd:simpleContent></xsd:complexType>
<xsd:extension base="xsd:date" /></xsd:simpleContent>
<xsd:attribute name="PADescription" type="xsd:string"/></xsd:extension>
Plan Constants
To get Plan Constants into your XML output, you'll need to add the following XML structure into your XML Output Linkage schema. This section must be above the payment form level in your schema.
<xsd:element name="ProAdminPlanConstants" minOccurs="0">
<xsd:complexType></xsd:element><xsd:sequence></xsd:complexType>
<xsd:element name="ProAdminPlanConstant" minOccurs="0" maxOccurs="unbounded"></xsd:sequence>
<xsd:complexType></xsd:element><xsd:sequence></xsd:complexType>
<xsd:element name="Name" type="xsd:string"/></ xsd:sequence>
<xsd:element name="Value" type="xsd:decimal"/>