<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:px="http://www.daisy.org/ns/pipeline/xproc" xmlns:cx="http://xmlcalabash.com/ns/extensions" xmlns:c="http://www.w3.org/ns/xproc-step" xmlns:d="http://www.daisy.org/ns/pipeline/data" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0" type="px:dtbook-to-zedai.script" name="main" px:input-filesets="dtbook" px:output-filesets="zedai" exclude-inline-prefixes="#all"> <p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h1 px:role="name">DTBook to ZedAI</h1> <p px:role="desc">Transforms DTBook XML into ZedAI XML.</p> <a px:role="homepage" href="http://daisy.github.io/pipeline/Get-Help/User-Guide/Scripts/dtbook-to-zedai/"> Online documentation </a> <address> Authors: <dl px:role="author"> <dt>Name:</dt> <dd px:role="name">Marisa DeMeglio</dd> <dt>E-mail:</dt> <dd><a href="mailto:marisa.demeglio@gmail.com">marisa.demeglio@gmail.com</a></dd> <dt>Organization:</dt> <dd px:role="organization">DAISY Consortium</dd> </dl> </address> </p:documentation> <p:input port="source" primary="true" sequence="true" px:media-type="application/x-dtbook+xml"> <p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h2 px:role="name">DTBook file(s)</h2> <p px:role="desc">One or more DTBook files to be transformed. In the case of multiple files, a merge will be performed.</p> </p:documentation> </p:input> <p:option name="result" required="true" px:output="result" px:type="anyDirURI" px:media-type="text"> <p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h2 px:role="name">ZedAI</h2> <p px:role="desc">The resulting ZedAI XML file.</p> </p:documentation> </p:option> <p:option name="zedai-filename" required="false" px:type="string" select="'zedai.xml'"> <p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h2 px:role="name">ZedAI filename</h2> <p px:role="desc">Filename for the generated ZedAI file</p> </p:documentation> </p:option> <p:option name="validation" select="'abort'" required="false"><p:pipeinfo> <px:type> <choice xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"> <value>off</value> <a:documentation xml:lang="en">No validation</a:documentation> <value>report</value> <a:documentation xml:lang="en">Report validation issues</a:documentation> <value>abort</value> <a:documentation xml:lang="en">Abort on validation issues</a:documentation> </choice> </px:type></p:pipeinfo><p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h2 px:role="name">Validation</h2> <p px:role="desc">Whether to abort on validation issues.</p> </p:documentation> </p:option> <p:option name="nimas" select="'false'" required="false" px:type="boolean"><p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h2 px:role="name">NIMAS input</h2> <p px:role="desc">Whether the input DTBook is a NIMAS 1.1-conformant XML content file.</p> </p:documentation> </p:option> <p:output port="validation-report" sequence="true" px:media-type="application/vnd.pipeline.report+xml"><p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h2 px:role="name">Validation reports</h2> </p:documentation> <p:pipe step="load" port="validation-report"/> <p:pipe step="result" port="validation-report"/> </p:output> <p:output port="status" px:media-type="application/vnd.pipeline.status+xml"> <p:pipe step="result" port="status"/> </p:output> <p:option name="mods-filename" required="false" px:type="string" select="'zedai-mods.xml'"> <p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h2 px:role="name">MODS filename</h2> <p px:role="desc">Filename for the generated MODS file</p> </p:documentation> </p:option> <p:option name="css-filename" required="false" px:type="string" select="'zedai-css.css'"> <p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h2 px:role="name">CSS filename</h2> <p px:role="desc">Filename for the generated CSS file</p> </p:documentation> </p:option> <p:option name="language" select="''" required="false" px:type="string"><p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h2 px:role="name">Language code</h2> <p px:role="desc">Language code of the input document.</p> </p:documentation> </p:option> <p:option name="copy-external-resources" required="false" px:type="boolean" select="'true'"> <p:documentation xmlns="http://www.w3.org/1999/xhtml"> <h2 px:role="name">Copy external resources</h2> <p px:role="desc">Include any referenced external resources like images and CSS-files to the output.</p> </p:documentation> </p:option> <p:import href="http://www.daisy.org/pipeline/modules/dtbook-utils/library.xpl"> <p:documentation> px:dtbook-load </p:documentation> </p:import> <p:import href="http://www.daisy.org/pipeline/modules/fileset-utils/library.xpl"> <p:documentation> px:fileset-add-entries px:fileset-store </p:documentation> </p:import> <p:import href="dtbook-to-zedai.convert.xpl"> <p:documentation> px:dtbook-to-zedai </p:documentation> </p:import> <p:sink/> <px:fileset-add-entries media-type="application/x-dtbook+xml" name="dtbook"> <p:input port="entries"> <p:pipe step="main" port="source"/> </p:input> </px:fileset-add-entries> <px:dtbook-load name="load"> <p:input port="source.in-memory"> <p:pipe step="dtbook" port="result.in-memory"/> </p:input> <p:with-option name="validation" select="not($validation='off')"/> <p:with-option name="nimas" select="$nimas='true'"/> </px:dtbook-load> <p:sink/> <p:identity> <p:input port="source"> <p:pipe step="load" port="validation-status"/> </p:input> </p:identity> <p:choose> <p:when test="/d:validation-status[@result='error']"> <p:choose> <p:when test="$validation='abort'"> <p:identity px:message="The input contains an invalid DTBook file. See validation report for more info." px:message-severity="ERROR"/> </p:when> <p:otherwise> <p:identity px:message="The input contains an invalid DTBook file. See validation report for more info." px:message-severity="WARN"/> </p:otherwise> </p:choose> </p:when> <p:otherwise> <p:identity/> </p:otherwise> </p:choose> <p:choose name="result"> <p:when test="/d:validation-status[@result='error'] and $validation='abort'"> <p:output port="status" primary="true"/> <p:output port="validation-report" sequence="true"> <p:empty/> </p:output> <p:identity/> </p:when> <p:otherwise> <p:output port="status" primary="true"/> <p:output port="validation-report" sequence="true"> <p:pipe step="convert" port="validation-report"/> </p:output> <p:variable name="dtbook-is-valid" cx:as="xs:boolean" select="not($validation='off') and exists(/d:validation-status[@result='ok'])"/> <p:sink/> <px:dtbook-to-zedai name="convert"> <p:input port="source.fileset"> <p:pipe step="load" port="result.fileset"/> </p:input> <p:input port="source.in-memory"> <p:pipe step="load" port="result.in-memory"/> </p:input> <p:with-option name="output-dir" select="$result"/> <p:with-option name="zedai-filename" select="$zedai-filename"/> <p:with-option name="mods-filename" select="$mods-filename"/> <p:with-option name="css-filename" select="$css-filename"/> <p:with-option name="lang" select="$language"/> <p:with-option name="validation" select="$validation"/> <p:with-option name="dtbook-is-valid" select="$dtbook-is-valid"/> <p:with-option name="output-validation" select="($validation[.='off'],'report')[1]"/> <p:with-option name="nimas" select="$nimas='true'"/> <p:with-option name="copy-external-resources" select="$copy-external-resources='true'"/> </px:dtbook-to-zedai> <px:fileset-store name="store"> <p:input port="in-memory.in"> <p:pipe step="convert" port="result.in-memory"/> </p:input> </px:fileset-store> <p:identity cx:depends-on="store"> <p:input port="source"> <p:pipe step="convert" port="validation-status"/> </p:input> </p:identity> </p:otherwise> </p:choose> </p:declare-step>