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

时间:2011-06-26 22:36:02

标签: xml xsd

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

具体来说,我想知道:

  1. 您何时需要XSD?你为什么要用一个?
  2. XSD提供哪些优势?有什么选择?
  3. 据我所知,到目前为止,您基本上描述了XML格式的类结构。但那时你用它做什么呢?它是在编译期间使用的吗?是否使用它可以更容易地将类实例保存在XML文档中?

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

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

    提前致谢。

6 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:5)

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

有关详细信息,请参阅

java的Castor / Xml Beans等

Microsoft Tech的XSD.exe工具。

答案 2 :(得分:2)

W3Schools复制:

  

XML Schema的目的是   定义一个合法的构建块   XML文档,就像DTD一样。

     

XML Schema:

- defines elements that can appear in a document
- defines attributes that can appear in a document
- defines which elements are child elements
- defines the order of child elements
- defines the number of child elements
- defines whether an element is empty or can include text
- defines data types for elements and attributes
- defines default and fixed values for elements and attributes

在实践中,它定义了对于给定目的有效的XML - 例如,系统开发人员可以使用它来定义构成有效XML文件以进入其系统的内容。

答案 3 :(得分:2)

您似乎对XML Schema的一个方面感到困惑 - 它们的用途是作为XSD.EXE或其他可以做类似事情的工具的输入。 XSD.EXE使用XML Schema文件,并且可以生成一组.NET类,这些类可以序列化为XML,以便根据模式进行验证。

这是一个角落案例的角落案例。

答案 4 :(得分:1)

1)来自http://en.wikipedia.org/wiki/XML_Schema_(W3C)

  

与所有XML模式语言一样,XSD可用于表示XML文档必须符合的一组规则,以便根据该模式被视为“有效”。

示例:我们有一个XML文件布局,用于描述考试。问题,问题类型,答案,要点等。为确保我们在实际考试中使用的每个考试文件都按预期工作,我们会根据XSD验证它们。

2)有关替代(例如DTD)模式及其特征的列表,请查看这些幻灯片:

答案 5 :(得分:1)

XSD是指定XML文档结构的文档,有助于验证。这些的替代方案是DTD文件。这些文件主要用于html文档。