Xml 为什么不可能将DTD验证定义为独立于解析的过程?
这个问题是关于中的一个注释,但似乎不是特定于Java的。Xml 为什么不可能将DTD验证定义为独立于解析的过程?,xml,validation,dtd,Xml,Validation,Dtd,这个问题是关于中的一个注释,但似乎不是特定于Java的。SchemaFactory类用于根据外部模式验证XML 但是,该实现仅支持RELAXNG和XMLSchema,而不支持XMLDTD 它说: 请注意,由于XML DTD与解析过程紧密相关,并且对解析过程有重大影响,因此不可能将DTD验证定义为独立于解析的过程。因此,本规范没有定义XML DTD的语义。这并不禁止实现者以他们认为合适的方式实现它,但用户会被警告,在此接口上实现的任何DTD验证都必然偏离XML 1.0中定义的XML DTD语义 从
SchemaFactory
类用于根据外部模式验证XML
但是,该实现仅支持RELAXNG和XMLSchema,而不支持XMLDTD
它说:
请注意,由于XML DTD与解析过程紧密相关,并且对解析过程有重大影响,因此不可能将DTD验证定义为独立于解析的过程。因此,本规范没有定义XML DTD的语义。这并不禁止实现者以他们认为合适的方式实现它,但用户会被警告,在此接口上实现的任何DTD验证都必然偏离XML 1.0中定义的XML DTD语义
从
我想知道阻碍实现人员支持针对外部XML DTD的验证的潜在陷阱是什么?针对外部DTD的验证不是问题;问题在于将验证与解析分离。最明显的原因是DTD控制实体扩展的方式,但在DTD的详细语义中也有许多微妙的交互作用,我恐怕早就忘记了这些细节