这个问题是关于documentation of Java's SchemaFactory
中的评论,但似乎不是特定于Java的。 SchemaFactory
类用于根据外部模式验证XML。
但是,该实现仅支持 RELAX NG 和 XML架构,但不支持 XML DTD 。
它说:
请注意,由于XML DTD与解析过程紧密相关并且对解析过程有重大影响,因此无法将DTD验证定义为独立于解析的过程。因此,本规范未定义XML DTD的语义。这并不禁止实现者以他们认为合适的方式实现它,但是警告用户在此接口上实现的任何DTD验证必然偏离XML 1.0中定义的XML DTD语义。
我想知道阻碍实现者支持外部 XML DTD 验证的潜在缺陷是什么?
答案 0 :(得分:1)
对外部DTD的验证不是问题;问题是将验证与解析分开。最明显的原因是DTD控制实体扩展的方式,但在DTD的详细语义中也存在许多细微的交互 - 我恐怕早就忘记了这些细节。