<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:px="http://www.daisy.org/ns/pipeline/xproc" xmlns:z="http://www.daisy.org/ns/z3998/authoring/" version="1.0" type="px:zedai-load" exclude-inline-prefixes="#all"> <p:documentation>Loads a ZedAI (ANSI/NISO Z39.98-2012 Authoring and Interchange) fileset from disk.</p:documentation> <p:input port="source" primary="true"/> <p:output port="fileset.out" primary="true"> <p:pipe port="result" step="fileset"/> </p:output> <p:output port="in-memory.out" sequence="true"> <p:pipe port="result" step="zedai"/> </p:output> <p:import href="http://www.daisy.org/pipeline/modules/fileset-utils/library.xpl"> <p:documentation> px:fileset-create px:fileset-add-entry px:fileset-join </p:documentation> </p:import> <p:import href="http://www.daisy.org/pipeline/modules/mediatype-utils/library.xpl"> <p:documentation> px:mediatype-detect </p:documentation> </p:import> <p:documentation>Prepare the ZedAI Document</p:documentation> <p:group name="zedai"> <p:output port="result"/> <p:identity/> </p:group> <p:group name="fileset"> <p:output port="result"/> <p:variable name="zedai-uri" select="base-uri(/*)"/> <p:variable name="fileset-base" select="replace($zedai-uri,'[^/]+$','')"/> <p:for-each> <p:iteration-source select="//z:object[@src]"/> <p:variable name="href" select="/*/@src"/> <p:variable name="media-type" select="(/*/@srctype,'')[1]"/> <px:fileset-create> <p:with-option name="base" select="$fileset-base"/> </px:fileset-create> <px:fileset-add-entry> <p:with-option name="href" select="$href"/> <p:with-option name="media-type" select="$media-type"/> </px:fileset-add-entry> <p:add-attribute match="/*/*" attribute-name="original-href"> <p:with-option name="attribute-value" select="resolve-uri($href,$zedai-uri)"/> </p:add-attribute> </p:for-each> <px:fileset-join/> <px:mediatype-detect name="fileset.resources"/> <px:fileset-create> <p:with-option name="base" select="$fileset-base"/> </px:fileset-create> <px:fileset-add-entry> <p:with-option name="href" select="$zedai-uri"/> <p:with-option name="media-type" select="'application/z3998-auth+xml'"/> </px:fileset-add-entry> <p:add-attribute match="/*/*" attribute-name="original-href"> <p:with-option name="attribute-value" select="$zedai-uri"/> </p:add-attribute> <p:identity name="fileset.zedai"/> <px:fileset-join> <p:input port="source"> <p:pipe port="result" step="fileset.zedai"/> <p:pipe port="result" step="fileset.resources"/> </p:input> </px:fileset-join> </p:group> </p:declare-step>