【问题标题】:When Should XSD Files Be Used?什么时候应该使用 XSD 文件?
【发布时间】:2011-06-26 22:36:01
【问题描述】:

我在学习 XSD 文档的用途时遇到了困难,我想要一个解释,或者一个不错的资源的链接。我已经阅读了几个小时的各种网站,但没有找到任何可以解释“大局”的东西。

具体来说,我想知道:

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

就我目前的理解而言,您基本上以 XML 格式描述了一个类结构。但那时你会用它做什么?它在编译期间使用吗?是否使用它可以更轻松地将类实例保存在 XML 文档中?

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

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

提前谢谢。

【问题讨论】:

  • 您描述的是对 XML Schema 文件的极其狭隘和有限的使用。请改写您的问题标题和标签以引用您所指的具体用途。

标签: xml xsd


【解决方案1】:

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

【讨论】:

  • +1 感谢您的洞察力。你是对的 - 我一直从编程的角度严格考虑它。我想我是在显示我的经验不足。我希望我能接受这个作为答案。不幸的是,这并不能完全“回答”我最初提出的问题,但它确实给了我一些思考的东西。非常感谢。
【解决方案2】:

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

有关详细信息,请参阅

用于 java 的 Castor/Xml Bean 等

Microsoft Tech 的 XSD.exe 工具。

【讨论】:

    【解决方案3】:

    W3Schools复制:

    "

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

    一个 XML 模式:

    - 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 文件以进入其系统的内容。

    【讨论】:

      【解决方案4】:

      您似乎对 XML Schema 的一个方面感到困惑——将它们用作 XSD.EXE 的输入或可以执行类似操作的其他工具。 XSD.EXE 使用一个 XML Schema 文件,并可以生成一组 .NET 类,这些类可以序列化为 XML 以针对该模式进行验证。

      这是角盒的角盒。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

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

          示例:我们有一个描述考试的 XML 文件布局。问题、问题类型、答案、分数等。为了确保我们在实际考试中使用的每个考试文件都能按预期工作,我们会根据 XSD 对其进行验证。

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2023-04-02
            • 2011-04-15
            • 2017-04-10
            • 2012-03-19
            • 2018-05-12
            • 2018-12-11
            • 1970-01-01
            • 2022-09-28
            相关资源
            最近更新 更多