我在学习XSD文档的目的时遇到了麻烦,并且想要一个解释,或者想要一个合适的资源链接。我已经阅读了几个小时的各种网站,但没有找到解释“大图片”的任何内容。
具体来说,我想知道:
据我所知,到目前为止,您基本上描述了XML格式的类结构。但那时你用它做什么呢?它是在编译期间使用的吗?是否使用它可以更容易地将类实例保存在XML文档中?
当您可以使用代码文件时,我无法理解为什么需要在XML文件中描述类。我的第一个想法是,不知何故XSD在运行时加载,并允许用户动态修改它,但这并没有真正意义,因为如果添加了一个对象,则无法在其余部分引用它代码。
此外,是否可以在XSD / XML文档中描述函数?
提前致谢。
答案 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文档。