[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: creating a temporary document from multiple inputs

Subject: Re: creating a temporary document from multiple inputs
From: Wolfgang Laun <wolfgang.laun@xxxxxxxxx>
Date: Sat, 23 Mar 2013 15:59:52 +0100
Re:  creating a temporary document from multiple inputs
Hi David,

I tried this, and the proposed <xsl:variable name="doc"> produces an error.

<xsl:variable name="paths" as="item()*">
  <xsl:sequence select = "($p1,$p2,$p3)" />
</xsl:variable>
<xsl:variable name="doc" as="document-node()*" select="document($paths)/*"/>

Warning: on line 34
  Required item type of value of variable $doc is document-node();
supplied value has item
  type element(). The expression can succeed only if the supplied
value is an empty sequence.
Warning: on line 34 of strip4ilp.xsl:
  The only value that can pass type-checking is an empty sequence.
Required item type of
  value of variable $doc is document-node(); supplied value has item
type element()
Warning: on line 34 of strip4ilp.xsl:
  The only value that can pass type-checking is an empty sequence.
Required item type of
  value of variable $doc is document-node(); supplied value has item
type element()
Error on line 34 of strip4ilp.xsl:
  XTTE0570: Required item type of value of variable $doc is
document-node(); supplied value
  has item type element({http://www.w3.org/2001/XMLSchema}schema, xs:anyType)

-W

On 23/03/2013, David Carlisle <davidc@xxxxxxxxx> wrote:
> On 09/03/2013 16:02, Wolfgang Laun wrote:
>> XSLT 2.0.
>>
>> I had to create a single document from several inputs (so that a key
>> lookup could access them all with a single call):
>>
>> <xsl:variable name="doc" as="document-node()"> <xsl:document>
>> <xsl:sequence select="document($paths)/*"/> </xsl:document>
>> </xsl:variable> <xsl:key name="kSkips"
>> match="element()[@omc:ilp='0']" use="@name"/>
>>
>> <xsl:variable name="look" select="key('kSkips',$name,$doc)"/>
>>
>
> If you are only concatenating them for the key lookup that's an
> expensive way to do it (unless your processor internally manages to
> avoid copying all the nodes).
>
> Why not just look up along the sequence of documents?
>
> <xsl:variable name="docs" as="document-node()*"
> select="document($paths)/*"/>
>
> <xsl:variable name="look" select="$docs/key('kSkips',$name,.)"/>
>
> David

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.