我正在编写一个将 XML 转换为 markdown 文本的 XSL 文件。我想将 HTML 实体转换为它们自己,例如“®” 在 XML 中的一段文本中将产生“®” 在输出文件中。我不想翻译“®” 到其十六进制等效值,这可能会扰乱下游流程。
在我看来,下面的声明应该做我需要的,当紧跟在 <?xml...?> 标记之后:
<!DOCTYPE stylesheet [
<!ENTITY reg "&reg;" >
<!ENTITY trade "&trade;" >
]>
但是,当我处理 XML 文件时,XSL 处理器 (Saxonica HE) 在每次使用实体时都会发出如下消息:
Error on line 6 column 12 of test.xml:
SXXP0003: Error reported by XML parser: The entity "reg" was referenced, but not declared.
我做错了什么?