XSD文件的用途是什么?

Red*_*wan 87 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>
Run Code Online (Sandbox Code Playgroud)

我想Order根据提供的元素从元素中获取数据CustomerID.

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

Ode*_*ded 104

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

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

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

  • @Lalit - 如果您不关心这种关系,并且不需要检查它们是否符合某种规则(在XSD中编写),那么不要使用XSD直接查询XML. (4认同)

Ole*_*leg 46

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

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


Gar*_*rry 17

您在问题中提到了C#,因此将XSD视为与C#接口类似的角色可能会有所帮助.

它以类似于接口定义类应该实现的方式定义XML应该"看起来像"的内容.

  • 如果您采用它应该实现的类和接口,您可以判断该类是否正确.同样,如果您使用xml文件并且它是xsd,则可以判断xml是否正确. (4认同)

kjh*_*hes 16

XSD约束XML文档的词汇和结构.

XML完全是关于协议的,XSD提供了超出XML本身基本定义的结构和通信协议的方法.


Rob*_*ert 12

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

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


Pre*_*raj 8

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

什么是架构?

例如; emailID:peter #gmail

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

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

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

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

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


tro*_*skn 7

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


mor*_*ort 5

xsd 文件是 xml 文件的架构 - 它定义了可能出现的元素及其限制(例如数量、顺序、边界、关系……)


a'r*_*a'r 5

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


小智 5

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