docx2hub:single-tree docx-single-tree

docx2hub/xpl/single-tree.xpl

Import URI: single-tree.xpl

Input Ports

NameDocumentationConnections

source

This is to prevent any other default readable port to be connected with the xslt port.

xslt

Output Ports

NameDocumentationConnections

result

params

zip-manifest

Options

NameDocumentationDefault

docx

OS name (preferably with full path, may not resolve if only a relative path is given), file:, http:, or https: URL. The file will be fetched first if it is an HTTP URL.

debug

'no'

debug-dir-uri

'file:/tmp/debug'

srcpaths

'no'

'no'

hub-version

'1.2'

fail-on-error

'no'

field-vars

'no'

extract-dir

Directory (OS path, not file: URL) to which the file will be unzipped. If option is empty string, will be '.tmp' appended to OS file path.

''

no-srcpaths-for-text-runs-threshold

In order to speed up conversion for long documents, if more w:r elements are found, they won’t receive a srcpath of their own. In principle, srcpath generation may be sped up by computing them more efficiently, building on a tunnelled parameter that contains the parent element’s already-computed srcpath.

'40000'

Subpipeline

StepInputsOutputsOptions

p:variable basename

replace($docx, '^(.+?)([^/\\]+)\.do[ct][mx]$', '$2')

tr:file-uri locate-docx

source

source on docx-single-tree

result

filename = $docx

tr:unzip unzip

result

zip = /c:result/@os-path

dest-dir = if ($extract-dir = '') then concat(/c:result/@os-path, '.tmp') else $extract-dir

overwrite = 'yes'

p:choose d70e71

name(/*) eq 'c:error'

cx:message d70e75

source

result on unzip

result

message = 'docx2hub error on unzipping. ', //text(), ' '

p:otherwise

p:identity d70e83

source

result on unzip

result

p:load document

result

href = concat( /c:files/@xml:base, (/c:files/c:file/@name[matches(., '^word/document\d?.xml$')])[1] )

p:sink d70e90

source

result on document

p:xslt zip-manifest

source

result on unzip

stylesheet

 <xsl:stylesheet version="2.0">
   <xsl:template match="c:files">
     <c:zip-manifest>
       <xsl:apply-templates/>
     </c:zip-manifest>
   </xsl:template>
   <xsl:variable name="base-uri" select="/*/@xml:base" as="xs:string"/>
   <xsl:template match="c:file">
     <c:entry name="{replace(replace(@name, '%5B', '['), '%5D', ']')}" href="{concat($base-uri, replace(replace(@name, '\[', '%5B'), '\]', '%5D'))}" compression-method="deflate" compression-level="default"/>
   </xsl:template>
 </xsl:stylesheet>

parameters

p:empty

result

p:sink d70e127

source

result on zip-manifest

p:add-attribute error-msg-file-path

source
<c:param name="error-msg-file-path"/>

result

attribute-name = 'value'

match = '/c:param'

attribute-value = replace(static-base-uri(), '/[^/]+$', '')

p:add-attribute local-href

source
<c:param name="local-href"/>

result

attribute-name = 'value'

match = '/c:param'

attribute-value = /c:result/@local-href

p:add-attribute extract-dir-uri

source
<c:param name="extract-dir-uri"/>

result

attribute-name = 'value'

match = '/c:param'

attribute-value = /c:files/@xml:base

p:in-scope-names vars

p:insert params

source

result on vars

insertion

result on error-msg-file-path

result on extract-dir-uri

result on local-href

result

position = 'last-child'

tr:store-debug d70e182

source

result on params

result

pipeline-step = concat('docx2hub/', $basename, '/00-params')

active = $debug

base-uri = $debug-dir-uri

p:sink d70e190

source

result on d70e182

tr:xslt-mode d70e191

source

result on document

parameters

result on params

stylesheet

xslt on docx-single-tree

models

p:empty

result

msg = 'yes'

mode = 'insert-xpath'

prefix = concat('docx2hub/', $basename, '/01')

debug = $debug

debug-dir-uri = $debug-dir-uri

p:choose apply-changemarkup

exists(//w:del | //w:moveFrom | //w:ins)

tr:xslt-mode d70e233

parameters

result on params

stylesheet

xslt on docx-single-tree

models

p:empty

result

msg = 'yes'

mode = 'docx2hub:apply-changemarkup'

prefix = concat('docx2hub/', $basename, '/02')

debug = $debug

debug-dir-uri = $debug-dir-uri

p:otherwise

p:identity d70e263

source

result on d70e191

result

p:add-attribute d70e266

source

result

attribute-name = 'xml:base'

match = '/*'

attribute-value = /c:files/@xml:base