[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: strong typed variable with restriction ?
Subject: Re: strong typed variable with restriction ?
From: Matthieu Ricaud-Dussarget <matthieu.ricaud@xxxxxxxxx>
Date: Wed, 02 Feb 2011 16:59:48 +0100
|
Hi Mukul,
The code I sent was actually simple, a kind of "school case" so you're
right to notice this.
But in my real case there are 4 parameters for this function, and only
two of them need to be so restricted, not the others.
I sent a mail on this topic with my real code which is quite different.
In this code there is a mistake that I just have seen : a param and a
variable has the same name ($css), which was not an error for the
processor but was one from the coding point of view.
Regards,
Matthieu.
Le 02/02/2011 16:43, Mukul Gandhi a C)crit :
Hi Matthieu,
I would question the use of function for this need. Since the
input parameter has only 2 states ('foo' and 'bar'), perhaps an XSLT
code fragment as follows should be sufficient (i.e this looks like a
simple if-then-else kind of abstraction).
<xsl:choose>
<xsl:when test="$foobar='foo'">
<xsl:copy-of select="igs:get-my-foo-item()" />
</xsl:when>
<xsl:when test="$foobar='bar'">
<xsl:copy-of select="igs:get-my-bar-item()" />
</xsl:when>
</xsl:choose>
I believe functions should normally be designed when input parameters
have potentially numerous states (of-course there may be exceptions to
this observation, but this appears to be commonsense module/function
design principle to me).
On Wed, Feb 2, 2011 at 3:46 PM, Matthieu Ricaud-Dussarget
<matthieu.ricaud@xxxxxxxxx> wrote:
Hi all,
I have a xsl:function which :
- must return a element()
- has a string param "foobar".
I typed $foobar as xs:string but I'd like to restrict the possible values to
"foo" or "bar".
I know it's possible to define such a constrain in a xsd schema, but is
there a way to do that in xpath2 ?
This typing is important because the returned element() is selected from a
xsl:choose on $foobar value (with no otherwise) :
My code looks like :
<xsl:function name="igs:get-css-rule" as="element()">
<xsl:param name="foobar" as="xs:string"/> <!--(foo|bar)-->
<xsl:choose>
<xsl:when test="$foobar='foo'">
<xsl:sequence select="igs:get-my-foo-item()"/>
</xsl:when>
<xsl:when test="$css='bar'">
<xsl:sequence select="igs:get-my-bar-item()"/>
</xsl:when>
</xsl:choose>
</xsl:function>
And I get such a parsing error on my xslt :
XTTE0570: Conditional expression: If none of the conditions is satisfied,
an empty
sequence will be returned, but this is not allowed [...]
Should I import my own schema to my xsl to define my special type derived
from xs:string ?
Thanks for your advices,
Matthieu.
--
Matthieu Ricaud
IGS-CP
Service Livre numC)rique
--
Matthieu Ricaud
IGS-CP
Service Livre numC)rique
Current Thread |
Mukul Gandhi - 2 Feb 2011 15:44:06 -0000
- Matthieu Ricaud-Dussarget - 2 Feb 2011 16:00:10 -0000 <=
|
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|