Stackoverflow有几个很棒的问题contrasting XSD and DTD和choosing between XSD and DTD。但我遇到了一个同时使用XSD和DTD的数据格式和库。 XML文档指定DTD,但支持库需要XSD进行编码和解码。
同时使用XSD和DTD有什么好处?
答案 0 :(得分:6)
我看到DTD和XSD一起使用的最重要时刻与您引用的示例相关:扇区标准组很久以前使用DTD定义了他们的XML词汇和语法,但XML的特定消费者希望使用需要XSD的JAXB等工具。因此,消费者使用XSD创建了一个并行模式,以便能够利用工具或满足需要XSD的其他依赖项,同时保持与先前建立的DTD指定的模式的兼容性。
除了解决这些遗留问题之外,不要为DTD烦恼。新项目应该只使用更现代的XML模式语言,如XSD,RELAX NG或Schematron。