Subject: Re: [xsl] Typing variables From: Ihe Onwuka <ihe.onwuka@xxxxxxxxxxxxxx> Date: Tue, 18 Sep 2012 09:41:55 +0100 |
On Tue, Sep 18, 2012 at 9:32 AM, Andrew Welch <andrew.j.welch@xxxxxxxxx> wrote: >>> or wrap all of the contents in <xsl:value-of> (with no select >>> attribute) and then use xs:string >>> >>> or (most efficiently) change the existing value-of to xsl:sequence and >>> concat the double quotes, and use xs:string. >>> >> >> that doesn't get past the type checker because it's sees the resulting >> value as more than 1 string. It was useful to change the value-of to >> xsl:sequence. > > Which bit doesn't get past the type checker (it should be fine) - can > you post the code? > <xsl:template match="*"> <xsl:text/>"<xsl:value-of select="if (contains(local-name(),'__')) then substring-after(local-name(),'__') else local-name() ,." separator='":"'/>"<xsl:text/> </xsl:template> <xsl:template match="elem"> <xsl:variable name="val">"<xsl:sequence select="replace(.,',',concat($quot,',',$quot))"/>"</xsl:variable> "<xsl:value-of select="if (contains(local-name(),'__')) then substring-after(local-name(),'__') else local-name() ,$val" separator='":['/>]<xsl:text/> </xsl:template> If you type $val as xs:string+ you don't get the right result, if you type it as xs:string it doesn't type check. Michael's solution is enlightening.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Typing variables, Andrew Welch | Thread | Re: [xsl] Typing variables, Andrew Welch |
Re: [xsl] Typing variables, Andrew Welch | Date | Re: [xsl] Typing variables, Andrew Welch |
Month |