Subject: [xsl] Implementing a (fairly) complex business rule From: "Bradley, Peter" <pbradley@xxxxxxxxxx> Date: Tue, 30 Sep 2008 14:07:27 +0100 |
I have a business rule that says that if the value of the REDUCEDI element is "00" and if the value of the DOMICILE element is in a list of values comprising XG, XH, XI, XK, XL, GG, JE and IM then a POSTCODE element must be present. It should not be present otherwise. If the POSTCODE element is present and has a NULL value, then a ReasonForNull attribute should be included, with a value of "1". If the POSTCODE element is present and has a value, that value should be output and the ReasonForNull attribute should not be present. I have expressed this as follows: <!-- NULL is valid for a postcode --> <xsl:if test="/s0:HesaSqlExplicit_Response/s0:Institution/s0:Student/s0:Instance /s0:REDUCEDI = '00'"> <xsl:if test="s0:DOMICILE='XF' or s0:DOMICILE='XG' or s0:DOMICILE='XH' or s0:DOMICILE='XI' or s0:DOMICILE='XK' or s0:DOMICILE='XL' or s0:DOMICILE='GG' or s0:DOMICILE='JE' or s0:DOMICILE='IM'"> <POSTCODE> <xsl:if test="string-length(s0:POSTCODE/text() = 0)"> <xsl:attribute name="ReasonForNull"> <xsl:text>1</xsl:text> </xsl:attribute> </xsl:if> <xsl:if test="string-length(s0:POSTCODE/text()) > 0"> <xsl:value-of select="s0:POSTCODE/text()"/> </xsl:if> </POSTCODE> </xsl:if> </xsl:if> However, in my output I am getting POSTCODE elements that both have a value and also have a ReasonForNull attribute with a value of "1". Can anyone put me out of my misery? I just cannot see how this can happen. Thanks Peter
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
AW: [xsl] connection error, Szabo, Patrick (LNG- | Thread | Re: [xsl] Implementing a (fairly) c, David Carlisle |
Re: [xsl] Set XSL-Value in a JavaS, henry human | Date | Re: [xsl] Implementing a (fairly) c, David Carlisle |
Month |