Home > Technical Reference > Reserved XML Elements

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:

  1. Details of the final average salary calculation from a Final Average Salary Custom Operator (e.g., what salaries were included in the winning final average salary calculation)
  2. Benefit formula component details (currently only cash balance, career average, final average, and late retirement benefit formula components) 
  3. Interest rates used
  4. PADescription attributes
  5. Plan Constants
The schema fragments below assume that your schema is using xsd: as the schema namespace prefix (e.g., <xsd:schema...). If your schema uses a different namespace prefix (e.g., <xs:schema...) then you'll have to change the prefix in these fragments before you can use them (i.e., replace xsd: with xs: ).

Final Average Salary

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:sequence>
<xsd:element name="OPER" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NAME" type="xsd:string"/>
<xsd:element name="RESULT" type="xsd:decimal"/>
<xsd:element name="SALS" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DATE" type="xsd:date"/>
<xsd:element name="SAL" type ="xsd:decimal"/>
<xsd:element name="LTDSAL" type="xsd:decimal"/>
<xsd:element name="INHIGHFAS" type="xsd:decimal"/>
</xsd:sequence>
</ xsd:complexType>
</xsd:element>
</ xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

Benefit Formula Component

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:sequence>
<xsd:element name="ProAdminBFC" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<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:sequence>
<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: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:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

Interest Rate Output

The interest rate output requires this XML structure within the decrement level of your schema.

<xsd:element name="ProAdminInt" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Table" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TableName" type="xsd:string"/>
<!-- 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:element name="Date" type="xsd:date"/>
<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:complexType>
</xsd:element>
<xsd:element name="Ref" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<!-- 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:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RatesUsedBy" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<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:sequence>
<xsd:element name="Date" type="xsd:date"/>
<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"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

 

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:extension base="xsd:decimal" />
<xsd:attribute name="PADescription" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="PAString" >
<xsd:simpleContent>
<xsd:extension base="xsd:string" />
<xsd:attribute name="PADescription" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="PADate" >
<xsd:simpleContent>
<xsd:extension base="xsd:date" />
<xsd:attribute name="PADescription" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>

 

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:sequence>
<xsd:element name="ProAdminPlanConstant" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="Value" type="xsd:decimal"/>
</ xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>