Xml 如何让Saxon/XSL不使用HTML编码的实体?

Xml 如何让Saxon/XSL不使用HTML编码的实体?,xml,xslt,saxon,Xml,Xslt,Saxon,我有一个源XML文件,其中包含带回车符的文本块和编码到文件中的其他特殊字符;例如: <?xml version='1.0' encoding='utf-8' ?> <library> <book> <phrase>&quot;This isn&apos;t&#10;a&#10;big deal.&quot;</phrase> </book> </library&g

我有一个源XML文件,其中包含带回车符的文本块和编码到文件中的其他特殊字符;例如:

<?xml version='1.0' encoding='utf-8' ?>
<library>
  <book>
    <phrase>&quot;This isn&apos;t&#10;a&#10;big deal.&quot;</phrase>
  </book>
</library>

“这不是什么大不了的事。”
通过Saxon在该文件上运行一个简单的标识转换,将导致XML中有效的字符恢复为其“真实”形式:


“这不是
A.
大不了。”

这是有效的XML,但下游工具期望

将出现在发送给他们的文本中。是否有方法标记/配置Saxon(或XSL转换本身)即使是安全/有效的转义序列也不受影响?

Saxon使用XML解析器将输入XML解析到节点树中,其中字符数据是包含Unicode字符的文本节点的一部分,因此它不知道也无法区分输入是否有
&apos
或数字字符引用,XML解析器只是将其解析为字符


可能有助于预处理XML,以便将实体或字符引用转换为标记,然后再转换回所需的词汇格式

更好的方法是:修复下游工具。如果XML应用程序希望换行符表示为

,则它已严重损坏。如果您的电气插座不能使用标准插头,则弯曲插头以安装在插座中不是正确的方法。
<?xml version='1.0' encoding='utf-8' ?>
<library>
  <book>
    <phrase>&quot;This isn't
a
big deal.&quot;</phrase>
  </book>
</library>