On 12/05/2026 02:16, Leo Studer leo.studer@xxxxxxxxxxx wrote:
> The bank renewed the camt54 standard.
>
> In my stylesheet I need to access old and new bank statements
> simultaneously.
>
> With
> xpath-default-namespace="urn:iso:std:iso:20022:tech:xsd:camt.054.001.04b
> my stylesheet works for the old documents and
>
withxpath-default-namespace="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08b
> it does the job for the new documents.
>
> Is there an easy way to use either of the two namespaces so that my
> stylesheet works for old and new bank statements?
>
>
Saxon allows you to set the -ns: command line option to e.g.
-ns:urn:iso:std:iso:20022:tech:xsd:camt.054.001.04 see
https://www.saxonica.com/html/documentation12/using-xsl/commandline/index.html
-ns:(uri|##any|##html5)
Defines the handling of unprefixed element names appearing as name tests
in path expressions and match patterns in the stylesheet.
* Supplying a URI sets the default namespace for elements and types
(effectively a default value for|xpath-default-namespace|b note that
an explicit value for this attribute takes precedence).
API wise Saxon allows you to use
https://www.saxonica.com/html/documentation12/javadoc/net/sf/saxon/s9api/Xslt
Compiler.html#setDefaultElementNamespace(java.lang.String)
and
https://www.saxonica.com/html/documentation12/javadoc/net/sf/saxon/s9api/Xslt
Compiler.html#setUnprefixedElementMatchingPolicy(net.sf.saxon.s9api.Unprefixe
dElementMatchingPolicy)
Thus if you use Saxon and run with the command line or with the s9api
you can match onB e.g.
B xsl:template match="foo"
and with the -ns or the setDefaultElementNamespace you can choose the
wanted namespace.
|