由于我们可以从C#(.NET)查询XML文件,为什么我们需要一个XSD文件?我知道它是特定XML文件的元数据文件。我们可以在XSD中指定关系,但它的功能是什么呢?
<?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>
我希望根据提供的Order
从CustomerID
元素中获取数据。
:在XSD中提供关系的目的是什么?
答案 0 :(得分:99)
答案 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)
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的实现之一。其他我们有relaxng
我们使用XSD来验证XML数据。
答案 6 :(得分:6)
XSD是一种正式合同,它规定了如何形成XML文档。它通常用于验证XML文档,或用于生成代码。
答案 7 :(得分:5)
XSD文件是XML模式定义,它用于提供检查给定XML文档是否符合您期望的标准方法。
答案 8 :(得分:5)
.xsd文件称为XML架构。通过XML模式,我们可能需要给定XML中的某个结构 - 哪些元素的顺序,次数,属性,嵌套方式等等。如果我们有XML输入的模式,我们可以验证它包含我们需要包含的数据,而不包含任何其他内容,只需几行调用模式验证器。
答案 9 :(得分:3)
xsd文件是xml文件的模式 - 它定义了可能出现的元素及其限制(如数量,顺序,边界,关系......)