- From: <vojtech.toman@emc.com>
- Date: Thu, 17 Mar 2011 11:11:32 -0400
- To: <xproc-dev@w3.org>
- Message-ID: <3799D0FD120AD940B731A37E36DAF3FE334C4420D8@MX20A.corp.emc.com>
A Calabash bug; no doubt about it now. You should get the error with or without the p:group wrapper as nothing is connected to the primary output port of SAVEME. If this is intentional and you really don't care about the result of SAVEME, simply add p:sink right after it: <oh:save-output name="SAVEME" step-name="saveidentifyDifferentOldNewOfficeCodes"> <p:with-option name="save" select="'true'"/> <p:with-option name="href" select="$hrefIdentifyDifferentOldNewOfficeCodes"/> </oh:save-output> <p:sink/> Thank should fix it. Vojtech -- Vojtech Toman Consultant Software Engineer EMC | Information Intelligence Group vojtech.toman@emc.com<mailto:vojtech.toman@emc.com> http://developer.emc.com/xmltech From: Alex Muir [mailto:alex.g.muir@gmail.com]<mailto:[mailto:alex.g.muir@gmail.com]> Sent: Thursday, March 17, 2011 3:56 PM To: Toman, Vojtech Cc: xproc-dev@w3.org<mailto:xproc-dev@w3.org> Subject: Re: Adding p:group gets rid of ERR : Unbound primary output.. why? Good call Vojtech,, I added a name to the save-output step and the error message is related to that step. I hadn't noticed that I was thinking the step-name was the name I suppose. E [Calabash XProc] ERR : Unbound primary output: [output result on SAVEME] <oh:save-output name="SAVEME" step-name="saveidentifyDifferentOldNewOfficeCodes"> <p:with-option name="save" select="'true'"/> <p:with-option name="href" select="$hrefIdentifyDifferentOldNewOfficeCodes"/> </oh:save-output> Here is the code. --------- <?xml version="1.0" encoding="UTF-8"?> <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:c="http://www.w3.org/ns/xproc-step" xmlns:cx="http://xmlcalabash.com/ns/extensions" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:oh="http://oami.europa.eu" version="1.0"> <p:input port="source"> <p:inline> <xml/> </p:inline> </p:input> <p:output port="result"/> <p:declare-step name="saveDocument" type="oh:save-output"> <p:input port="source" primary="true"/> <p:output port="result"> <p:pipe port="result" step="ident"/> </p:output> <p:option name="step-name" required="true"/> <p:option name="save" select="'false'"/> <p:option name="href" required="true"/> <p:identity name="ident"/> <p:choose> <p:when test="$save = 'true'"> <p:store> <p:with-option name="href" select="$href"> <p:pipe port="result" step="ident"/> </p:with-option> </p:store> </p:when> <p:otherwise> <p:sink/> </p:otherwise> </p:choose> </p:declare-step> <p:variable name="debugOutput" select="true()"/> <p:variable name="regexOffices" select="'^(Portugal):'"/> <p:variable name="regexSelectSchemaTypes" select="'\{\{Schema\s+(E(lement|numeration)|Type|Attribute)'"/> <p:variable name="regexOfficeCodeList" select="'(PT)$'"/> <p:variable name="OfficeCodeList" select="'PT'" oh:doc="the office code list one wants to make a schema for"/> <p:variable name="OfficeCodeArgSeperator" select="','"/> <p:variable name="category" select="'D7'"/> <p:variable name="hrefdebugOutputFolder" select="'../debug/'"/> <p:variable name="hrefWikiDumpInput" select="'../in/p13-wikidump.xml'"/> <p:variable name="hrefFullRDF" select="'../in/p13.rdf'"/> <p:variable name="hrefRDF" select="'../in/p13_slim.rdf'"/> <p:variable name="hrefSchemaOutput" select="'../out/TM-XML-V1-4.xsd'"/> <p:variable name="hrefOfficeSpecificWikiDump" select="'../out/officeSpecificOutput.xml'"/> <p:variable name="hrefOfficeSpecificWikiDumpCategoryAppended" select="'../out/officeSpecificWikiDumpCategoryAppended.xml'"/> <p:variable name="hrefIdentifyDifferentOldNewOfficeCodes" select="'../out/DifferentOldNewOfficeCodes.xml'"/> <p:group name="SlimRDF"> <p:load> <p:with-option name="href" select="$hrefFullRDF"/> </p:load> <p:xslt name="slim_RDF" version="1.0" oh:doc="run the stylesheet that slims the full RDF to be an office specific RDF"> <p:input port="stylesheet"> <p:document href="../xslt/slim_RDF.xsl"/> </p:input> <p:with-param name="regexOffices" select="$regexOffices"/> <p:with-param name="regexOfficeCodeList" select="$regexOfficeCodeList"/> <p:input port="parameters"> <p:empty/> </p:input> </p:xslt> <oh:save-output step-name="saveSlim_RDF"> <p:with-option name="save" select="'true'"/> <p:with-option name="href" select="$hrefRDF"/> </oh:save-output> <p:sink/> </p:group> <p:group name="GenerateOfficeSpecificWIkiDump"> <p:load> <p:with-option name="href" select="$hrefWikiDumpInput"/> </p:load> <oh:save-output step-name="debugOutputBeforeStripPagesNotInRDF"> <p:with-option name="save" select="$debugOutput"/> <p:with-option name="href" select="concat($hrefdebugOutputFolder,'debugOutputBeforeStripPagesNotInRDF.xml')"/> </oh:save-output> <p:xslt name="removePagesWithoutReferencedComponent" version="1.0"> <p:input port="stylesheet"> <p:document href="../xslt/removePagesWithoutReferencedComponentKeyed.xsl"/> </p:input> <p:with-param name="hrefRDF" select="$hrefRDF"/> <p:with-param name="regexOfficeCodeList" select="$regexOfficeCodeList"/> <p:input port="parameters"> <p:empty/> </p:input> </p:xslt> <oh:save-output step-name="debugOutputBeforeGenerateOfficeCode"> <p:with-option name="save" select="$debugOutput"/> <p:with-option name="href" select="concat($hrefdebugOutputFolder,'debugOutputBeforeGenerateOfficeCode.xml')"/> </oh:save-output> <p:xslt name="GenerateOfficeCode" version="1.0" oh:doc="run xslt to append the office code list"> <p:input port="stylesheet"> <p:document href="../xslt/GenerateOfficeCodeKeyed.xsl"/> </p:input> <p:with-param name="hrefRDF" select="$hrefRDF"/> <p:with-param name="regexSelectSchemaTypes" select="'\{\{Schema\s+(E(lement|numeration)|Type|Attribute)'"/> <p:input port="parameters"> <p:empty/> </p:input> </p:xslt> <oh:save-output step-name="saveOfficeSpecificWikiDump"> <p:with-option name="save" select="'true'"/> <p:with-option name="href" select="$hrefOfficeSpecificWikiDump"/> </oh:save-output> </p:group> <!-- <p:group name="CreateOfficeSpecificWikiDumpCategoryAppended">--> <p:identity name="PutCopyOfficeSpecificWikiDump"/> <p:xslt name="identifyDifferentOldNewOfficeCodes" version="1.0" oh:doc="Creates a list of pages that have different old and new office codes"> <p:input port="stylesheet"> <p:document href="../xslt/identifyDifferentOldNewOfficeCodes.xsl"/> </p:input> <p:with-param name="hrefRDF" select="$hrefRDF"/> <p:with-param name="regexSelectSchemaTypes" select="'\{\{Schema\s+(E(lement|numeration)|Type|Attribute)'"/> <p:input port="parameters"> <p:empty/> </p:input> </p:xslt> <oh:save-output name="SAVEME" step-name="saveidentifyDifferentOldNewOfficeCodes"> <p:with-option name="save" select="'true'"/> <p:with-option name="href" select="$hrefIdentifyDifferentOldNewOfficeCodes"/> </oh:save-output> <p:identity name="GetCopyOfficeSpecificWikiDump"> <p:input port="source"> <p:pipe port="result" step="PutCopyOfficeSpecificWikiDump"/> </p:input> </p:identity> <p:xslt name="AppendCategory" version="1.0" oh:doc="Appends the category to things that have changed"> <p:input port="stylesheet"> <p:document href="../xslt/AppendCategory.xsl"/> </p:input> <p:with-param name="hrefDiff" select="$hrefIdentifyDifferentOldNewOfficeCodes"/> <p:with-param name="regexSelectSchemaTypes" select="'\{\{Schema\s+(E(lement|numeration)|Type|Attribute)'"/> <p:with-param name="category" select="$category"/> <p:input port="parameters"> <p:empty/> </p:input> </p:xslt> <oh:save-output step-name="saveOfficeSpecificWikiDumpCategoryAppended"> <p:with-option name="save" select="'true'"/> <p:with-option name="href" select="$hrefOfficeSpecificWikiDumpCategoryAppended"/> </oh:save-output> <p:identity name="GetSecondCopyOfficeSpecificWikiDump"> <p:input port="source"> <p:pipe port="result" step="PutCopyOfficeSpecificWikiDump"/> </p:input> </p:identity> <!-- </p:group>--> <p:group name="convertToSchemaWiki"> <oh:save-output step-name="debugOutputBeforeWikiMediaDumpToSchema"> <p:with-option name="save" select="$debugOutput"/> <p:with-option name="href" select="concat($hrefdebugOutputFolder,'debugOutputBeforeWikiMediaDumpToSchema.xml')"/> </oh:save-output> <p:xslt name="WikiMediaDumpToSchema" version="1.0" oh:doc="run the stylesheet that extracts the schema widgets from the wikimedia dump"> <p:input port="stylesheet"> <p:document href="../xslt/WikiMediaDumpToSchema.xsl"/> </p:input> <p:with-param name="OfficeCodeList" select="$OfficeCodeList"/> <p:with-param name="OfficeCodeArgSeperator" select="$OfficeCodeArgSeperator"/> <p:input port="parameters"> <p:empty/> </p:input> </p:xslt> <oh:save-output step-name="debugOutputBeforeUnescape-markup"> <p:with-option name="save" select="$debugOutput"/> <p:with-option name="href" select="concat($hrefdebugOutputFolder,'debugOutputBeforeUnescape-markup.xml')"/> </oh:save-output> <p:viewport match="//document" oh:doc="Convert the unescaped markup to xml"> <p:unescape-markup> <p:with-option name="content-type" select="'application/xml'"/> </p:unescape-markup> </p:viewport> <p:unwrap match="/document" oh:doc="remove the surrounding element document"/> </p:group> <oh:save-output step-name="output"> <p:with-option name="save" select="'true'"/> <p:with-option name="href" select="$hrefSchemaOutput"/> </oh:save-output> <p:identity/> </p:declare-step> --------- On Thu, Mar 17, 2011 at 2:23 PM, <vojtech.toman@emc.com<mailto:vojtech.toman@emc.com>> wrote: I assume that "!1.29" is the oh:save-output step as the other steps in the sub-pipeline have explicit names. I don't know what the declaration of oh:save-output looks like, but if the step has a primary output port, then this output port is unconnected (no steps inside p:group are connected to it, and no steps outside of the p:group can connect it as it is out of scope). If you look at the connections between the steps in the subpipeline, there are actually two branches: - PutCopyCitySpecificWikiDump -> identifyDifferentOldNewOfficeCodes -> oh:save-output - PutCopyCitySpecificWikiDump -> GetCopyCitySpecificWikiDump My guess is that Calabash gets it wrong and somehow thinks that oh:save-output is the last step of the subpipeline, in which case it creates an implicit output port to p:group and connects it to the primary output port of oh:save-output. That would explain why you don't get the error with p:group, but I think that is a bug in Calabash. Regards, Vojtech -- Vojtech Toman Consultant Software Engineer EMC | Information Intelligence Group vojtech.toman@emc.com<mailto:vojtech.toman@emc.com> http://developer.emc.com/xmltech -- Alex ----- Currently: Freelance Software Engineer 6+ yrs exp Previously: https://sites.google.com/a/utg.edu.gm/alex/ A Bafila, is two rivers flowing together as one: http://www.facebook.com/pages/Bafila/125611807494851
Received on Thursday, 17 March 2011 15:12:33 UTC