- From: Georges Schmitz <georges.schmitz@arcor.de>
- Date: Thu, 03 Nov 2011 00:42:18 +0100
- To: xproc-dev@w3.org
- CC: vojtech.toman@emc.com
- Message-ID: <4EB1D55A.5030301@arcor.de>
Hi Vojtech, after the fix in calabash the result form calabash differs from calumet. As I stated in my last mail, it seems that child elements are not evaluated correctly in calumet for the label attibute. I refer to the last term in the XPath expression of the label attribute: "ns2:code" in the concat() function of label="concat('eap-145','-', parent::ns2:rating-entry/ns2:code, '-', ns2:code)" The result should resemble to what I listed under E), the calumet output is shown in C). I tested with calumet 1.0.12. Thanks, Georges Am 25.10.2011 00:52, schrieb Georges Schmitz: > A) The PIPELINE could be as simple as this one: > > <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" > xmlns:ns2="http://www.empic.aero/ns/empic-eap/oas" > version="1.0" name="clean-up-ratings"> > <p:input port="source" primary="true"> > <p:empty/> > </p:input> > <p:output port="result"/> > > <p:label-elements match="ns2:rating-entry" attribute="synchro-id" > label="concat('eap-145','-', parent::ns2:rating-entry/ns2:code, '-', > ns2:code)" replace="true" name="init-synchro-id"/> > > </p:declare-step> > > B) the INPUT document > > <rating-system-export xmlns:ns2="http://www.empic.aero/ns/empic-eap/oas"> > <ns2:rating-root > > <ns2:name>EASA 145</ns2:name> > <ns2:rating-entry > > <ns2:code>A</ns2:code> > <ns2:text xml:lang="en">Aircraft</ns2:text> > <ns2:rating-entry > > <ns2:code>A1</ns2:code> > <ns2:text xml:lang="en">Aeroplane above 5700 kg</ns2:text> > <ns2:rating-entry > > <ns2:code>DUMMY</ns2:code> > <ns2:text xml:lang="en">Will state aeroplane/ series or type and/or > the maintenance task(s)</ns2:text> > </ns2:rating-entry> > </ns2:rating-entry> > </ns2:rating-entry> > </ns2:rating-root> > </rating-system-export> > > C) CALUMET OUTPUT: > > <rating-system-export xmlns:ns2="http://www.empic.aero/ns/empic-eap/oas"> > <ns2:rating-root> > <ns2:name>EASA 145</ns2:name> > <ns2:rating-entry synchro-id="eap-145--"> > <ns2:code>A</ns2:code> > <ns2:text xml:lang="en">Aircraft</ns2:text> > <ns2:rating-entry synchro-id="eap-145-A-"> > <ns2:code>A1</ns2:code> > <ns2:text xml:lang="en">Aeroplane above 5700 kg</ns2:text> > <ns2:rating-entry synchro-id="eap-145-A1-"> > <ns2:code>DUMMY</ns2:code> > <ns2:text xml:lang="en">Will state aeroplane/ series or type and/or > the maintenance task(s)</ns2:text> > </ns2:rating-entry> > </ns2:rating-entry> > </ns2:rating-entry> > </ns2:rating-root> > </rating-system-export> > > ==>> the direct child element "ns2:code" is not evaluated, the last > synchro-id attribute should be "eap-145-A1-DUMMY", but "DUMMY" is missing. > > D) NO OUTPUT with CALABASH, exception instead: > > 25.10.2011 00:43:49 com.xmlcalabash.util.DefaultXProcMessageListener error > SCHWERWIEGEND: > cleanup-lang-and-customer.xpl:10:149:err:XD0023:Expression could not > be evaluated > 25.10.2011 00:43:49 com.xmlcalabash.drivers.Main error > SCHWERWIEGEND: It is a dynamic error if an XPath expression is > encountered which cannot be evaluated (because it is syntactically > incorrect, contains references to unbound variables or unknown functio > ns, or for any other reason). > 25.10.2011 00:43:49 com.xmlcalabash.drivers.Main error > SCHWERWIEGEND: Underlying exception: > net.sf.saxon.s9api.SaxonApiException: Prefix ns2 has not been declared > > E) replace "ns2" with "*" in the label attribute of the pipeline > > label="concat('eap-145','-', parent::*:rating-entry/*:code, '-', > *:code)" > > and run it again with calabash gives me finally the expected result > (but using the * wildcard is not satisfying and furthermore it doesn't > work with calumet): > > <rating-system-export xmlns:ns2="http://www.empic.aero/ns/empic-eap/oas"> > <ns2:rating-root> > <ns2:name>EASA 145</ns2:name> > <ns2:rating-entry synchro-id="eap-145--A"> > <ns2:code>A</ns2:code> > <ns2:text xml:lang="en">Aircraft</ns2:text> > <ns2:rating-entry synchro-id="eap-145-A-A1"> > <ns2:code>A1</ns2:code> > <ns2:text xml:lang="en">Aeroplane above 5700 kg</ns2:text> > <ns2:rating-entry synchro-id="eap-145-A1-DUMMY"> > <ns2:code>DUMMY</ns2:code> > <ns2:text xml:lang="en">Will state aeroplane/ series or type and/or > the maintenance task(s)</ns2:text> > </ns2:rating-entry> > </ns2:rating-entry> > </ns2:rating-entry> > </ns2:rating-root> > </rating-system-export> > > Hope these examples are detailed enough to identify the problems in > both tools. > > Greetings, > Georges >
Received on Wednesday, 2 November 2011 23:45:25 UTC