saxon:attribute-订单如何运作?

How saxon:attribute-order works?

我正在尝试使用序列化参数“saxon:attribute-order”对标签的属性进行重新排序,但我无法让它工作,我错过了什么?

源文件:

   <?xml version="1.0"?>
    <list>
        <span class="pagebreak" name="1" title="ONE">Test</span>
        <span class="nobreak" name="X" title="X">Test</span>
        <span class="pagebreak" name="2" title="TWO">Test</span>
        <span class="pagebreak" name="3" title="THREE">Test</span>
        <span class="pagebreak" name="4" title="FOUR">Test</span>
        <span class="nobreak" name="Y" title="Y">Test</span>
        <span class="pagebreak" name="5" title="FIVE">Test</span>
    </list>

XSL:

<?xml version="1.0"?>

<xsl:stylesheet 
    version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:saxon="http://saxon.sf.net/" 
    exclude-result-prefixes="saxon">

 <xsl:output method="xml" indent="yes" saxon:attribute-order="title name class * xml:space"/>

 <xsl:template match="/">
 <xsl:apply-templates select="*/span[contains(@class, 'pagebreak')]" />
 </xsl:template>

 <xsl:template match="*/span[contains(@class, 'pagebreak')]">
 <xsl:copy-of select="." />
 </xsl:template>
</xsl:stylesheet>

输出文件:

<?xml version="1.0" encoding="UTF-8"?>
<span class="pagebreak" name="1" title="ONE">Test</span>
<span class="pagebreak" name="2" title="TWO">Test</span>
<span class="pagebreak" name="3" title="THREE">Test</span>
<span class="pagebreak" name="4" title="FOUR">Test</span>
<span class="pagebreak" name="5" title="FIVE">Test</span>

您向我们展示的代码没有任何问题,所以问题出在您没有向我们展示的地方...

可能您使用的 Saxon-HE 无法识别扩展属性。

也许您正在将输出发送到序列化程序以外的目的地?

使用 -t 选项从命令行尝试,看看是否有效,然后我们可以从那里获取它。