Name
cx:hash-document — Compute the hash of a document.
Synopsis
<p:declare-step
type
="
cx:hash-document
"
xmlns:cx
="
http://xmlcalabash.com/ns/extensions
"
>
<p:input
port
="
source
"
/>
<p:output
port
="
result
"
/>
<p:input
port
="
parameters
"
kind
="
parameter
"
/>
<p:option
name
="
algorithm
"
required
="
true
"
/>
<!--
QName -->
<p:option
name
="
hash-version
"
/>
<!--
string -->
<p:option
name
="
byte-order-mark
"
/>
<!--
boolean -->
<p:option
name
="
cdata-section-elements
"
select
="
''
"
/>
<!--
ListOfQNames -->
<p:option
name
="
doctype-public
"
/>
<!--
string -->
<p:option
name
="
doctype-system
"
/>
<!--
anyURI -->
<p:option
name
="
encoding
"
/>
<!--
string -->
<p:option
name
="
escape-uri-attributes
"
select
="
'false'
"
/>
<!--
boolean -->
<p:option
name
="
include-content-type
"
select
="
'true'
"
/>
<!--
boolean -->
<p:option
name
="
indent
"
select
="
'false'
"
/>
<!--
boolean -->
<p:option
name
="
media-type
"
/>
<!--
string -->
<p:option
name
="
method
"
select
="
'xml'
"
/>
<!--
QName -->
<p:option
name
="
normalization-form
"
select
="
'none'
"
/>
<!--
NormalizationForm -->
<p:option
name
="
omit-xml-declaration
"
select
="
'true'
"
/>
<!--
boolean -->
<p:option
name
="
standalone
"
select
="
'omit'
"
/>
<!--
"true" | "false" | "omit" -->
<p:option
name
="
undeclare-prefixes
"
/>
<!--
boolean -->
<p:option
name
="
version
"
select
="
'1.0'
"
/>
<!--
string -->
</p:declare-step>
Description
The p:hash-document
step is, operationally, a bit
like a combination of the p:store
and p:hash
steps. It begins by serializing the document that appears on the
source
port using the serialization
parameters specified. Like p:store
, it accepts an extension
option to decode binary documents.
Next, a hash is computed for the serialized document. The hash
options accepted are the same as those for p:hash
.
Note
Both the p:store
and p:hash
steps have a
version
option. In p:hash-document
,
the version
option is used exclusively
for serialization. To specify the version of the hashing algorithm,
you must use the hash-version
option.
Warning
If an XML (or JSON) document is passed to
p:hash-document
, the step does not produce a
canonical serialization before computing the hash. This step is
therefore not reliable for hashes of XML documents.
(Canonicalization
will be added
in the future.)
The computed hash is returned in a c:result
element
on the output
port.