XSD文件的用途是什么?

时间:2010-08-04 08:00:25

标签: xml xsd

由于我们可以从C#(.NET)查询XML文件,为什么我们需要一个XSD文件?我知道它是特定XML文件的元数据文件。我们可以在XSD中指定关系,但它的功能是什么呢?

XML

<?xml version="1.0" encoding="utf-8" ?>
<Root>
  <Customers>
    <Customer CustomerID="GREAL">
      <CompanyName>Great Lakes Food Market</CompanyName>
      <ContactName>Howard Snyder</ContactName>
      <ContactTitle>Marketing Manager</ContactTitle>
      <Phone>(503) 555-7555</Phone>
      <FullAddress>
        <Address>2732 Baker Blvd.</Address>
        <City>Eugene</City>
        <Region>OR</Region>
        <PostalCode>97403</PostalCode>
        <Country>USA</Country>
      </FullAddress>
    </Customer>
  </Customers>
  <Orders>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>6</EmployeeID>
      <OrderDate>1997-05-06T00:00:00</OrderDate>
      <RequiredDate>1997-05-20T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-05-09T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>3.35</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>8</EmployeeID>
      <OrderDate>1997-07-04T00:00:00</OrderDate>
      <RequiredDate>1997-08-01T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-07-14T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>4.42</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
  </Orders>
</Root>

我希望根据提供的OrderCustomerID元素中获取数据。

:在XSD中提供关系的目的是什么?

10 个答案:

答案 0 :(得分:99)

XSD文件用于验证XML - 符合某种格式。

在这方面,它们与他们之前存在的DTD类似。

XSD和DTD之间的主要区别在于XSD是用XML编写的,并且更容易阅读和理解。

答案 1 :(得分:43)

如果没有XML Schema(XSD文件),XML文件是一组相对自由的元素和属性。 XSD文件定义了允许的元素和属性以及顺序。

通常,XML是一种元语言。 XSD文件定义该元语言中的特定语言。例如,如果您的XSD文件包含XHTML 1.0的定义,那么您的XML文件需要适合XHTML 1.0而不是其他格式。

答案 2 :(得分:16)

您在问题中提到C#,因此将XSD视为与C#界面起类似作用可能会有所帮助。

它以与接口定义类应该实现的类似方式定义XML应该“看起来像”的内容。

答案 3 :(得分:14)

XSD限制XML文档的词汇和结构。

  • 没有XSD ,XML文档只需遵循well-formed W3C XML Recommendation 的规则。
  • 使用XSD 时,XML文档必须遵守对其元素和属性的名称和值的其他约束,才能被视为 valid 根据{{​​3}}。
  • 对抗XSD

XML就是协议,XSD提供了超出XML本身基本定义的结构和通信协议的方法。

答案 4 :(得分:10)

  

另外一个问题是:目的是什么   在xsd中给出关系。

假设您想为外部方的工具或类似工具生成一些XML - 您如何知道允许哪些结构正确用于其工具?你写一个架构。同样,如果您希望其他人使用您的工具,您可以编写一个架构供他们使用。它可能对验证您自己的XML也很有用。

答案 5 :(得分:7)

在理解XSD(XML Schema Definition)之前,让我解释一下;

  

什么是架构?

例如

; emailID:peter #gmail

您可以识别上述emailID无效,因为没有@,.com或.net或.org。

我们知道电子邮件架构看起来像peter@gmail.com。

  

结论:Schema不验证数据,它进行结构验证。

XSD实际上是XML Schema的实现之一。其他我们有

我们使用XSD来验证XML数据。

答案 6 :(得分:6)

XSD是一种正式合同,它规定了如何形成XML文档。它通常用于验证XML文档,或用于生成代码。

答案 7 :(得分:5)

XSD文件是XML模式定义,它用于提供检查给定XML文档是否符合您期望的标准方法。

答案 8 :(得分:5)

.xsd文件称为XML架构。通过XML模式,我们可能需要给定XML中的某个结构 - 哪些元素的顺序,次数,属性,嵌套方式等等。如果我们有XML输入的模式,我们可以验证它包含我们需要包含的数据,而不包含任何其他内容,只需几行调用模式验证器。

答案 9 :(得分:3)

xsd文件是xml文件的模式 - 它定义了可能出现的元素及其限制(如数量,顺序,边界,关系......)