|
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 |