xsl-list
[Top] [All Lists]

Re: [xsl] Typing variables

2012-09-18 03:42:08
On Tue, Sep 18, 2012 at 9:32 AM, Andrew Welch 
<andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com> 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.

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>