<
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" type=
"px:fileset-compare" name=
"main" exclude-inline-prefixes=
"px pxi" version=
"1.0">
<
p:documentation xmlns=
"http://www.w3.org/1999/xhtml">
<
p>Compare two d:fileset documents.</
p>
</
p:documentation>
<
p:input port=
"source" primary=
"true" px:media-type=
"application/x-pef+xml"/>
<
p:input port=
"alternate" px:media-type=
"application/x-pef+xml"/>
<
p:output port=
"result" primary=
"false" sequence=
"false">
<
p:pipe step=
"compare" port=
"result"/>
</
p:output>
<
p:option name=
"fail-if-not-equal" select=
"'false'"/>
<
p:import href=
"fileset-join.xpl">
<
p:documentation>
px:fileset-join
</
p:documentation>
</
p:import>
<
p:declare-step type=
"pxi:normalize-fileset">
<
p:input port=
"source"/>
<
p:output port=
"result"/>
<
p:add-xml-base/>
<
px:fileset-join/>
<
p:label-elements match=
"*[@href]" attribute=
"href" replace=
"true" label=
"resolve-uri(@href,base-uri(.))"/>
<
p:xslt>
<
p:input port=
"stylesheet">
<
p:inline>
<
xsl:stylesheet xmlns:xsl=
"http://www.w3.org/1999/XSL/Transform" version=
"2.0">
<
xsl:template match=
"/*">
<
xsl:copy>
<
xsl:sequence select=
"@*"/>
<
xsl:apply-templates select=
"*">
<
xsl:sort select=
"@href"/>
</
xsl:apply-templates>
</
xsl:copy>
</
xsl:template>
<
xsl:template match=
"*">
<
xsl:sequence select=
"."/>
</
xsl:template>
</
xsl:stylesheet>
</
p:inline>
</
p:input>
<
p:input port=
"parameters">
<
p:empty/>
</
p:input>
</
p:xslt>
<
p:delete match=
"@xml:base"/>
</
p:declare-step>
<
pxi:normalize-fileset name=
"normalize-source">
<
p:input port=
"source">
<
p:pipe step=
"main" port=
"source"/>
</
p:input>
</
pxi:normalize-fileset>
<
pxi:normalize-fileset name=
"normalize-alternate">
<
p:input port=
"source">
<
p:pipe step=
"main" port=
"alternate"/>
</
p:input>
</
pxi:normalize-fileset>
<
p:compare name=
"compare">
<
p:input port=
"source">
<
p:pipe step=
"normalize-source" port=
"result"/>
</
p:input>
<
p:input port=
"alternate">
<
p:pipe step=
"normalize-alternate" port=
"result"/>
</
p:input>
<
p:with-option name=
"fail-if-not-equal" select=
"$fail-if-not-equal"/>
</
p:compare>
</
p:declare-step>