- From: Manfred Staudinger <manfred.staudinger@gmail.com>
- Date: Sun, 20 Jun 2010 22:52:09 +0200
- To: xproc-dev <xproc-dev@w3.org>
I'm using Calabash 0.9.21. When I use cx:unzip to extract thumbnail pictures with a content-type of "image/png" from a dwfx file (autocad) like: <p:for-each> <p:iteration-source select="//dwf:Resource[@role='thumbnail']"/> <p:variable name="nextdoc" select="substring(*/@href, 2)"/> <p:variable name="img" select="concat('/img_', p:iteration-position(), '.png')"/> <cx:unzip content-type="image/png"> <p:with-option name="href" select="$package"/> <p:with-option name="file" select="$nextdoc"/> </cx:unzip> <p:store cx:decode="true"> <p:with-option name="href" select="concat($path, $img)"/> </p:store> </p:for-each> The cx:unzip works according to its spec: If the content-type specified is not an XML content type, the file is base64 encoded and returned in a single c:data element. [1] Note 1: the c:data wrapper does _not_ contain an encoding attribute nor is the need for it explicitly mentioned in the spec. But the XProc specification clearly states: If the content was base64-encoded, the wrapper must have an encoding attribute which specifies “base64”. [2] Note 2: The p:store with cx:decode="true" does not store the binary, but the unchanged output from the cx:unzip. But when I insert an <p:add-attribute match="c:data" attribute-name="encoding" attribute-value="base64"/> just before the p:store then the input is decoded as expected. The only documentation I found for the cx:decode extension attribute If cx:decode=true and the input document is base64 encoded, decode it and store the binary result. [3] does not show its dependence on the encoding attribute. Any thoughts and pointers to documentation are appreciated. Regards, Manfred [1] http://exproc.org/proposed/steps/other.html [2] http://www.w3.org/TR/xproc/#p.data [3] http://lists.w3.org/Archives/Public/xproc-dev/2009Oct/0006.html
Received on Sunday, 20 June 2010 20:52:38 UTC