【问题标题】:Passing XML Parser features to Saxon for stylesheet parsing将 XML Parser 功能传递给 Saxon 以进行样式表解析
【发布时间】:2020-08-10 14:15:18
【问题描述】:

在 Saxon API 中,可以使用 XML_PARSER_FEATURE Config 功能将 XML 解析器功能传递给 Configuration 对象。

但这似乎只适用于源文档的解析,而不适用于 XSLT 样式表。除了插入自定义解析器之外,还有其他方法可以配置样式表解析吗?

具体来说,出于安全原因,我需要确保禁用外部实体。

【问题讨论】:

    标签: java saxon


    【解决方案1】:

    首先,请注意,如果您不信任样式表,除了使用外部实体之外,它还有很多很多方法可以造成损害。因此禁用外部实体只是您需要采取的步骤之一:其中最重要的是禁用自反扩展函数的使用。

    配置解析器以处理样式表模块的最佳方式是自己创建它。对于主样式表模块,提供一个包含XMLReaderSAXSource,并按照您想要的方式进行配置。对于包含和导入的模块,请使用分配 XMLReader 并返回 SAXSourceURIResolver

    还有一个配置选项Feature.STYLE_PARSER_CLASS。您可以使用它来实现您自己的实现XMLReader 接口的类,将实际解析委托给您可以完全控制的“真实”XMLReader

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 2019-07-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 2023-04-07
      相关资源
      最近更新 更多