Subject: [xsl] How To: XSL Template Setup, Names, Calling, Applying ? From: Jeffry Proctor <jpgmt@xxxxxxxxxxxxx> Date: Tue, 1 Mar 2011 17:31:12 -0800 (PST) |
ASP.Net 2008 .Net ver 3.5, Linq with XslCompiledTransform, XSLT 1.0 (asumed), The following is a subset of my current version that isn't working, but works better than what I've included here. However, rather than fix a much longer more involved XSL I'm opting to work on this flawed but more simple version that encompases most of what I need to occur in the larger version. I know that the way that I'm setting up my templates and calling/apply them is not right, but with varying degrees of success, I've got a hodge-podge of methods that I have no answer as to why it works when it does or doesn't. In a near perfect world someone could tell me, comment my bad setup calls/applies and add a corrected with perhaps a comment or two and I'll do my best to comprehend. All comments are welcomed. Thanks in advance... Did I mention that I'm relatively new to XSL? New Order info currently named person.xml <?xml version="1.0" encoding="iso-8859-1"?> <TXLife> <OrderInfo> <CaseNo>0123456789ABCD</CaseNo> </OrderInfo> <Policy> <PolicyStatus>PROPOSED</PolicyStatus> <OrderInfo> <CaseNo>0123456789ABCD</CaseNo> </OrderInfo> <uPlanDesc>Select Term 20</uPlanDesc> </Policy> <Person> <FirstName>James</FirstName> <LastName>Baumbach</LastName> <uSex>Male</uSex> <uBirthDate>1975-01-01</uBirthDate> <Address> <AddressTypeCode>Residence</AddressTypeCode> <Line1>12349 Any Street</Line1> <City>Towne</City> <AddressStateTC>WI</AddressStateTC> <Zip>89089</Zip> </Address> </Person> </TXLife> XSL <?xml version="1.0" encoding="utf-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://ACORD.org/Standards/Life/2" > <xsl:output method="xml" indent="yes"/> <!-- var Name = Insured, value unique Int suffix ie: Insured_12345678 --> <xsl:variable name="Insured" ></xsl:variable> <!-- Main-Template... --> <xsl:template match="node()"> <TXLife> <UserAuthRequest> <!-- Elements omitted... --> </UserAuthRequest> <TXLifeRequest> <OLifE> <Holding id="Holding_167392"> <xsl:apply-templates select="Policy"/> </Holding> <Party id="InsuredParty_5293884"> <xsl:apply-templates select="Person"/> </Party> </OLifE> </TXLifeRequest> </TXLife> </xsl:template> <!-- End Main Template --> <!-- Begin Sub-Templates... --> <xsl:template match="Policy"> <!-- Often no policy number exists at this point in time--> <Policy id="Pending_Policy_TT5SMM777" CarrierPartyID="CarrierParty_167393"> <PolicyNumber><xsl:value-of select="OrderInfo/CaseNo"/></PolicyNumber> <PlanName><xsl:value-of select="uPlanDesc"/></PlanName> <PolicyStatus> <xsl:attribute name="tc"> <xsl:call-template name="PolicyStatus"> <xsl:with-param name="PolicyStatus" select="PolicyStatus"/> </xsl:call-template> </xsl:attribute> <xsl:value-of select="PolicyStatus"/> </PolicyStatus> <Life> <FaceAmt><xsl:value-of select="uPolAmount"/></FaceAmt> </Life> <ApplicationInfo> <ApplicationJurisdiction> <xsl:attribute name="tc"> <xsl:call-template name="StateTypeCode"> <xsl:with-param name="stateCode" select="AddressStateTC"/> </xsl:call-template> </xsl:attribute> <xsl:value-of select="AddressStateTC"/> </ApplicationJurisdiction> </ApplicationInfo> </Policy> </xsl:template> <xsl:template name="InsuredPerson"> <Person> <FirstName> <xsl:value-of select="FirstName"/> </FirstName> <LastName> <xsl:value-of select="LastName"/> </LastName> <Gender> <xsl:attribute name="tc"> <xsl:choose> <xsl:when test="uSex='Male'">1</xsl:when> <xsl:when test="uSex='Female'">2</xsl:when> </xsl:choose> </xsl:attribute> <xsl:value-of select="uSex"/> </Gender> <BirthDate><xsl:value-of select="BirthDate"/></BirthDate> <DriversLicenseNum>none</DriversLicenseNum> <xsl:apply-templates select="InsuredAddress"/> <xsl:apply-templates select="InsuredPhone"/> </Person> </xsl:template> <xsl:template name="InsuredAddress"> <Address> <AddressTypeCode> <xsl:attribute name="tc"> <xsl:choose> <xsl:when test="AddressTypeCode='Residence'">1</xsl:when> <xsl:when test="AddressTypeCode='Business'">2</xsl:when> </xsl:choose> </xsl:attribute> <xsl:value-of select="AddressTypeCode"/> </AddressTypeCode> <Line1> <xsl:value-of select="Line1"/> </Line1> <City> <xsl:value-of select="City"/> </City> <AddressStateTC> <xsl:attribute name="tc"> <xsl:call-template name="StateTypeCode"> <xsl:with-param name="stateCode" select="AddressStateTC"/> </xsl:call-template> </xsl:attribute> <xsl:value-of select="AddressStateTC"/> </AddressStateTC> <State> <xsl:value-of select="AddressStateTC"/> </State> <Zip>89089</Zip> </Address> </xsl:template> <xsl:template match="InsuredPhone"> <Phone> <PhoneTypeCode tc="1">Home</PhoneTypeCode> <AreaCode>890</AreaCode> <DialNumber>8908908</DialNumber> </Phone> </xsl:template> <!-- Re-Useable StateTypeCode Lookup --> <xsl:template name="StateTypeCode"> <xsl:param name="stateCode"></xsl:param> <xsl:choose> <xsl:when test="$stateCode ='AL'">1</xsl:when> <xsl:when test="$stateCode ='AK'">2</xsl:when> <xsl:when test="$stateCode ='CA'">6</xsl:when> <!-- dev version with omitted states --> <xsl:otherwise> <xsl:value-of select="concat('[Error: StateCode = ', $stateCode, ']')"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="PolicyStatus"> <xsl:param name="PolicyStatus"></xsl:param> <xsl:choose> <xsl:when test="$PolicyStatus='UNKNOWN'">0</xsl:when> <xsl:when test="$PolicyStatus='ACTIVE'">1</xsl:when> <xsl:when test="$PolicyStatus='INACTIVE'">2</xsl:when> <xsl:when test="$PolicyStatus='PENDING'">8</xsl:when> <xsl:when test="$PolicyStatus='PROPOSED'">12</xsl:when> <!-- dev version with omitted PolicyStatus --> <xsl:when test="$PolicyStatus='OTHER'">2147483647</xsl:when> <xsl:otherwise> <xsl:value-of select="concat('[Error: PolicyStatus = ', $PolicyStatus, ']')"/> </xsl:otherwise> </xsl:choose> </xsl:template> <!-- End Sub Templates --> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Saxon 9.3 warnings on mul, Michael Kay | Thread | Re: [xsl] How To: XSL Template Setu, Brandon Ibach |
[xsl] Saxon 9.3 warnings on multipl, Graydon | Date | Re: [xsl] How To: XSL Template Setu, Brandon Ibach |
Month |