在XMLSchema中避免匿名类型的原因是什么

  • 本文关键字:类型 是什么 XMLSchema xsd
  • 更新时间 :
  • 英文 :


我想知道,除了重用匿名类型和简化代码生成工具之外,是否还有其他原因可以避免XML Schema中的匿名类型?(这两个原因在http://www.ibm.com/developerworks/webservices/library/ws-avoid-anonymous-types/和https://jaxb.java.net/tutorial/section_2_3_1-Hints-on-Writing-XML-Schemas.html)

从广义上讲,仅此而已。不过,对我来说,问题在于关于重用的细节(什么类型,为什么,作者与消费者)和讨论中的工具(它是用来做什么的,匿名与命名真的会有区别吗,等等)

所附链接中展示的"重用"方面肯定非常有限。基于本文的示例,通过对内容模型使用带有命名组的匿名类型,我仍然可以实现重用。

通过扩展的类型层次结构(派生)是另一种重用形式。然而,它与文章中所建议的不同,因为它涉及OO原则。然后你可以通过限制进行推导,许多"心怀不满"的从业者会认为这是不可重用的。。。然而,它需要一个命名类型。

递归结构(另一种重用方式)对于匿名声明是不可能的;实现递归数据结构的一种方法是使用复杂类型。(另一种方式是通过引用全局元素。)

上面的链接都没有提到重新定义(原因与一些人选择回避这个概念有关)。虽然对类型的重新定义最终是某种派生(因此它需要一个命名的模式组件),但它也是一种非常强大的机制,可以将可扩展的通用模型转换/转换为特定的、更可用的模型,特定于采用者;最终,允许在不同但相关的模型之间优雅地维护基于XSD的"diffgram"。

匿名类型在创作风格中也有提及;因此,将萨拉米切片与威尼斯风格进行对比,可以为您提供更多见解;搜索它或从这里开始(我不隶属于它,也不认为它是完整的,但这是一个好的开始)。

最新更新