- From: Zearin <zearin@gonk.net>
- Date: Mon, 20 Aug 2012 11:36:06 -0400
- To: XProc Dev <xproc-dev@w3.org>
- Message-Id: <0DA2E27D-8B40-4536-A717-599D456630AB@gonk.net>
What I did: Wrote XSL to convert xCard (RFC 6351) → vCard 3 (RFC 2426) (Yes, I realize that xCard is based on vCard 4 (RFC 6350), and that I’m producing vCard 3 output. My current project requires this.) Tested XSL successfully Wrote XProc to do the following: pre-process xCard document use the previous XSL to convert it to vCard Using: Oxygen v14 Mac OS X 10.8 (“Mountain Lion”) Problem: Keep getting errors about non-XML output Pipeline is (currently) a <p:declare-step /> Output is: <p:output port ='result' primary ='false' sequence ='true' /> Scenario: XPROC PIPELINE XProc file: /Users/amrogers/Desktop/2012 Summer Camp /generate-vcards.xpl Engine name: Calabash XProc Severity: error Description: err:XD0001 : XD0001 It is a dynamic error if a non-XML resource is produced on a step output or arrives on a step input. This is my first attempt at using XProc in a long time. So, sorry if this is a n00b question. <rant> One reason I haven’t used XProc for so long is because of frustrations like this. Apart from my gripes about the syntax, there’s the error messages. How am I supposed to troubleshoot the above error? Exactly what was the “non-XML resource” that was produced? Can’t the error even give me a snippet of it? On which step’s “output or […] input” did the “non-XML resource” occur? Plus, I thought it was okay for a step not to produce any output if it specified @sequence ='true', implying zero or more documents on the output. </rant> And now, the source code (forgive the indentation strangeness—pasting the source caused the glitch): <?xml version='1.0' encoding='UTF-8'?> <p:declare-step name ='generate-vcards' version ='1.0' xpath-version ='2.0' xmlns:p ='http://www.w3.org/ns/xproc' xmlns:c ='http://www.w3.org/ns/xproc-step' xmlns:err ='http://www.w3.org/ns/xproc-error' xmlns:xs ='http://www.w3.org/2001/XMLSchema' xmlns:cx ='http://xmlcalabash.com/ns/extensions' xmlns:xsl ='http://www.w3.org/1999/XSL/Transform' xmlns:h ='http://www.w3.org/1999/xhtml' xmlns:xcard ='urn:ietf:params:xml:ns:vcard-4.0' xmlns:vcard ='http://www.w3.org/2001/vcard-rdf/3.0#' xmlns:nc ='urn:new-culture:summer-camp:east:2012' xmlns:local ='#empty'> <!-- I/O ======================================================================== --> <p:input port ='source' /> <p:output port ='result' primary ='false' sequence ='true' /> <!-- OPTIONS ======================================================================== --> <!--<p:option name ='opt1' required ='false' select =" '' " /> <p:option name ='opt2' required ='false' select =" '' " />--> <!-- SERIALIZATIONS May bind to any output (not just "result"). ======================================================================== --> <!--<p:serialization port ='result' method ='text' encoding ='UTF-8' />--> <!-- VARIABLES ======================================================================== --> <!--<p:variable name ='dude...' select ='"...I know!"' />--> <!-- IMPORTS ======================================================================== --> <!-- Calabash extension steps ( Network connection irrelevant; imported from Calabash-bundled library ) --> <p:import href='http://xmlcalabash.com/extension/steps/library-1.0.xpl' /> <!-- MAIN PIPELINE CONTENT ======================================================================== --> <p:group name='xcard-cleanup'> <p:delete match='xcard:n/xcard:*[ not(@nc:share) ]/text()' /> <p:delete match='xcard:adr/xcard:*[ not(@nc:share) ]/text()' /> <!-- Remove private data (ignores xcard:categories for now, so I can customize it) --> <p:delete match='xcard:vcard//*[ not(ancestor-or-self::xcard:n ) and not(descendant-or-self::xcard:n ) and not(ancestor-or-self::xcard:adr ) and not(descendant-or-self::xcard:adr ) and not(ancestor-or-self::xcard:categories ) and not(ancestor-or-self::node()[ @nc:share ] or descendant-or-self::node()[ @nc:share ]) ]' /> </p:group> <p:xslt name='xsl-to-vcard'> <p:input port='stylesheet'> <p:document href='${HOME}/Library/Application Support/oXygen/templates/vcard.xsl' /> </p:input> <p:input port='parameters'> <p:empty /> </p:input> </p:xslt> <p:sink /> <p:store name='stored-doc' href='vcard-pipeline-output.vcf'> <p:input port='source'> <p:pipe port='result' step='xsl-to-vcard' /> </p:input> </p:store> </p:declare-step> Help me xproc-dev list…you’re my only hope! ☺ —Tony
Received on Monday, 20 August 2012 15:36:37 UTC