<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:px="http://www.daisy.org/ns/pipeline/xproc" xmlns:pxi="http://www.daisy.org/ns/pipeline/xproc/internal" version="1.0" type="px:css-speech-cascade" name="main" exclude-inline-prefixes="#all"> <p:documentation xmlns="http://www.w3.org/1999/xhtml"> <p>CSS cascading and inlining of CSS Aural style sheets</p> <p>The inlining is done through special <code>@tts:*</code> attributes for each of the properties.</p> </p:documentation> <p:input port="source.fileset" primary="true"/> <p:input port="source.in-memory" sequence="true"/> <p:output port="result.fileset" primary="true"/> <p:output port="result.in-memory" sequence="true"> <p:pipe step="update" port="result.in-memory"/> </p:output> <p:option name="content-type" required="false" select="'text/html application/xhtml+xml application/x-dtbook+xml'"/> <p:option name="user-stylesheet" required="false" select="''"/> <p:import href="http://www.daisy.org/pipeline/modules/fileset-utils/library.xpl"> <p:documentation> px:fileset-load px:fileset-update </p:documentation> </p:import> <p:import href="css-cascade.xpl"> <p:documentation> px:css-cascade </p:documentation> </p:import> <p:import href="clean-up-namespaces.xpl"> <p:documentation> pxi:clean-up-namespaces </p:documentation> </p:import> <px:css-cascade media="speech" multiple-attributes="true" name="cascade"> <p:input port="source.in-memory"> <p:pipe step="main" port="source.in-memory"/> </p:input> <p:input port="parameters"> <p:empty/> </p:input> <p:with-option name="content-type" select="$content-type"/> <p:with-option name="user-stylesheet" select="$user-stylesheet"/> <p:with-option name="attribute-name" select="QName('http://www.daisy.org/ns/pipeline/tts','tts:_')"/> </px:css-cascade> <px:fileset-load name="content"> <p:input port="in-memory"> <p:pipe step="cascade" port="result.in-memory"/> </p:input> <p:with-option name="media-types" select="$content-type"/> </px:fileset-load> <p:for-each name="clean-up-namespaces"> <p:output port="result"/> <pxi:clean-up-namespaces/> </p:for-each> <p:sink/> <px:fileset-update name="update"> <p:input port="source.fileset"> <p:pipe step="cascade" port="result"/> </p:input> <p:input port="source.in-memory"> <p:pipe step="cascade" port="result.in-memory"/> </p:input> <p:input port="update.fileset"> <p:pipe step="content" port="result.fileset"/> </p:input> <p:input port="update.in-memory"> <p:pipe step="clean-up-namespaces" port="result"/> </p:input> </px:fileset-update> </p:declare-step>