什么时候应该使用XSD文件?

Eri*_*ric 12 xml xsd

我在学习XSD文档的目的时遇到了麻烦,想要一个解释,或者想要一个合适的资源链接.我已经阅读了几个小时的各种网站,但没有找到解释"大局"的任何内容.

具体来说,我想知道:

  1. 你什么时候需要XSD?你为什么要用一个?
  2. XSD提供哪些优势?有哪些替代方案?

从我到目前为止的理解,您基本上描述了XML格式的类结构.但那时你用它做什么呢?它是在编译期间使用的吗?是否使用它可以更容易地将类实例保存在XML文档中?

当你可以使用代码文件时,我很难理解你为什么需要在XML文件中描述一个类.我的第一个想法是,不知何故XSD在运行时加载,并允许用户动态修改它,但这没有任何意义,因为如果添加一个对象,则无法在其余部分引用它代码.

此外,是否可以在XSD/XML文档中描述函数?

提前谢谢.

Mic*_*Kay 15

您对"类文件"和"类结构"的讨论表明您认为您的数据结构主要由编程语言数据结构定义 - 也就是说,您采用的是以编程为中心的视图而不是以数据为中心的视图.这相当缺少XML,它的观点是,如果应用程序(特别是独立开发的应用程序)要有效地交换数据,那么数据的设计需要独立于应用程序的设计.这种"数据设计"通常以模式(XSD模式或其他类型)表示,它表示通信应用程序之间的契约(就像RFC822定义了电子邮件应用程序必须处理的数据一样).通过根据模式验证数据,应用程序可以确保它们发送的内容符合约定的规范.


d-l*_*ive 5

XSD允许您定义架构对象.有许多工具可以将xsd作为输入并为这些对象生成类.Marshalling/Unmarshalling除了普通的值对象类之外,这些工具中的许多还生成- (将对象转换为xml,反之亦然)代码.有许多应用程序需要将内存中对象实例转换为xml表示和反向,并且没有xsd和合适的工具,您需要手动编写每个对象的转换代码,这可能容易出错和/或可能非常容易昂贵取决于您域中的类数.如果来自外部源,对象的xml表示也可能无效,xsd可以验证这些并允许您将它们解组为对象实例.

有关详细信息,请参阅

用于java的Castor/Xml Beans等

适用于Microsoft Tech的XSD.exe工具.