Subject:XML Pipeline Troubleshooting Author:Mark Eisenberg Date:20 Nov 2013 04:23 PM
I have a fairly simple pipeline built and am having trouble in the final stages. Everything works fine as long as I am using the normal input stream. I have implemented a simple merge using both XQuery and XSLT. Four input variables/params that specify the input files and then write them to the standard output stream. However, when I try to connect them in to a pipeline they blow up for a variety of reasons. The XSLT did not like some apostrophes that are in a few text nodes and both are throwing errors related to data that is not actually in the input files. Here's an example:
Error: XQUERY processing by XQUERY node 'MergePipelineBranchOutputs.xquery' failed: Error: on line 1 column 1 of MergePipelineBranchOutputs.xquery:
XPST0017 XQuery static error near #...contentpage> </contentpages>')#:
Unknown system function any()
This is indicating a problem at the end of the file, but there is no data in the file beyond that last element. The XSLT is gagging on something similar. Neither gives any useful information about the specific location in the code that is triggering the error.
I've attached both the query and the transform files.
Subject:XML Pipeline Troubleshooting Author:Ivan Pedruzzi Date:21 Nov 2013 12:49 AM
Hi Mark,
XML Pipeline is designed for processing XML data on the edges.
Here two alternative solutions:
- Feed your pipeline with XML file in which you list the document URIs
<docs>
<doc uri="file:///c:/x.xml">
<doc uri="file:///c:/y.xml">
<doc uri="file:///c:/x.xml">
</docs>
change you code to
<front>
<contentpages>{
for $uri in /docs/doc/@uri
return doc($uri)//contentpage
}</contentpages>
</front>
- use collection function to load a document collection using a wild card
Subject:XML Pipeline Troubleshooting Author:Mark Eisenberg Date:21 Nov 2013 10:37 AM
That's pretty much what my pipeline looks like. Now why does yours work with my stream files (which I copied to your project directory) and mine does not. I even tried using your copy of the XSL and it breaks in my pipeline.
Subject:XML Pipeline Troubleshooting Author:Mark Eisenberg Date:21 Nov 2013 03:01 PM
That yields this:
Error: on line 1 column 1 of PIP7E7C.tmp: SXXP0003: Error reported by XML parser: Content is not allowed in prolog.
Error: XSLT processing by XSLT node 'MergePipelineBranchOutputs.xsl' failed: PIP7E7C.tmp (1, 1): Error: on line 1 column 1 of PIP7E7C.tmp:
SXXP0003: Error reported by XML parser: Content is not allowed in prolog.