假设我的DTD代码具有以下列表:
<!ELEMENT body
((verse, bridge?, chorus)+) , coda)>
我可以编写XSD代码,它定义了三个元素(一个可选)的序列可以重复一个或多个吗?如果可以的话,该XSD的列表是什么?
答案 0 :(得分:0)
正如Jim Garrison在评论中指出的那样,DTD和XSD架构语言不是1:1等价物。但是XSD被设计为能够定义可以由DTD定义的任何语言(模拟一些诸如硬编码命名空间前缀之类的东西,这被认为是缺陷而不是DTD的能力)。
因此,对您的问题的简短回答是肯定的,您可以编写等效的XSD声明。
对于长篇答案,您需要查阅有关XSD的教程(Stack Overflow上的大多数问题回答者都很乐意帮助您纠正尝试解决问题的错误,但不能为您解决问题 - 那里当然是例外); Part 0 of XSD 1.0中的教程准确且易于访问。您需要特别注意xsd:sequence
和xsd:element
元素,以及这些元素的minOccurs
和maxOccurs
属性。