【问题标题】:XSD equivalent code to this DTD code?此 DTD 代码的 XSD 等效代码?
【发布时间】:2017-12-07 00:44:20
【问题描述】:

假设我的 DTD 代码具有以下清单:

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

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

【问题讨论】:

  • DTD 和 XSD 不是一对一等价的。 “如果可以,该 XSD 的列表是什么?” - StackOverflow 不是代码翻译服务。我们不会为你做你的工作。请访问help center 并阅读How to Ask 以了解如何使用本网站。当您遇到问题时,您应该尝试这项工作并发布一个特定的问题。
  • 对不起,我知道。我不这么认为

标签: xml dtd schema-design


【解决方案1】:

确实,正如 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 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    相关资源
    最近更新 更多