为何无法将DTD验证定义为独立于XML解析的过程?
SchemaFactory 支持的模式及DTD不被支持的原因
SchemaFactory主要用来基于外部模式对XML文档做验证,但它的实现只支持两种模式:
- RELAX NG
- XML Schema
至于XML DTD,它是不支持的,官方文档里给出了很明确的解释:
请注意,由于XML DTD与解析过程紧密关联且对解析过程影响显著,因此无法将DTD验证定义为独立于解析的过程。
说白了,DTD的验证逻辑和XML的解析流程是深度绑定在一起的,没办法像RELAX NG或者XML Schema那样,做成一个独立于解析步骤的验证环节,这就是SchemaFactory不支持它的核心原因。
内容的提问来源于stack exchange,提问作者jschnasse
相关产品推荐
相关产品推荐

