这个DTD代码的XSD等效代码?

时间:2017-12-04 06:58:16

标签: xml dtd schema-design

假设我的DTD代码具有以下列表:

<!ELEMENT body
  ((verse, bridge?, chorus)+) , coda)>

我可以编写XSD代码,它定义了三个元素(一个可选)的序列可以重复一个或多个吗?如果可以的话,该XSD的列表是什么?

1 个答案:

答案 0 :(得分:0)

正如Jim Garrison在评论中指出的那样,DTD和XSD架构语言不是1:1等价物。但是XSD被设计为能够定义可以由DTD定义的任何语言(模拟一些诸如硬编码命名空间前缀之类的东西,这被认为是缺陷而不是DTD的能力)。

因此,对您的问题的简短回答是肯定的,您可以编写等效的XSD声明。

对于长篇答案,您需要查阅有关XSD的教程(Stack Overflow上的大多数问题回答者都很乐意帮助您纠正尝试解决问题的错误,但不能为您解决问题 - 那里当然是例外); Part 0 of XSD 1.0中的教程准确且易于访问。您需要特别注意xsd:sequencexsd:element元素,以及这些元素的minOccursmaxOccurs属性。