The saxon:recognize-binary attribute
This attribute is relevant only when using the text output method. If set to yes, the processing instructions <?hex XXXX?>
and <?b64 XXXX?>
will be
recognized; the value is taken as a hexBinary or base64 representation of a character string, encoded using the encoding in use by
the serializer, and this character string will be output without validating it to ensure it contains valid XML characters. Also
recognized are <?hex.EEEE XXXX?>
and <?b64.EEEE XXXX?>
, where EEEE is the name of the encoding
of the base64 or hexBinary data: for example hex.ascii
or b64.utf8
.
This enables non-XML characters, notably binary zero, to be output.
For example, given <xsl:output method="text" saxon:recognize-binary="yes"/>
, the
following instruction:
<xsl:processing-instruction name="hex.ascii" select="'00'"/>
outputs the Unicode character with codepoint zero ("NUL"), while
<xsl:processing-instruction name="b64.utf8" select="securityKey"/>
outputs the value of the securityKey
element, on the assumption that this is base64-encoded UTF-8 text.