- From: Alex Muir <alex.g.muir@gmail.com>
- Date: Thu, 17 Mar 2011 14:55:32 +0000
- To: vojtech.toman@emc.com
- Cc: xproc-dev@w3.org
- Message-ID: <AANLkTi=mcRwSj3b=mJy+va0m2qxaJsFfjJJvUsr=8=4W@mail.gmail.com>
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> 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
>
> http://developer.emc.com/xmltech
>
--
Alex
-----
Currently:
Freelance Software Engineer 6+ yrs exp
<http://www.facebook.com/pages/Bafila/125611807494851>
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 14:56:06 UTC