XML和XSD有什么区别?

Gan*_*row 104 xml xsd

可扩展标记语言(XML)和XML Schema(XSD)之间有什么区别?

ant*_*res 143

实际上XSD本身就是XML.其目的是验证另一个XML文档的结构.XSD对于任何XML都不是强制性的,但它确保XML可以用于某些特定目的.XML仅包含适当格式和结构的数据.

  • 简洁干净! (3认同)
  • 当然,你可以问他们.您也可以使用一些可以为您执行此操作的在线工具,例如 - [xsd2xml](http://xsd2xml.com).只需粘贴xsd,它就会生成一个基于它的示例xml文档. (2认同)

Inf*_*nd' 108


举个例子

<root>
  <parent>
     <child_one>Y</child_one>
     <child_two>12</child_two>
  </parent>
</root>
Run Code Online (Sandbox Code Playgroud)

并为此设计一个xsd:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="parent">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="child_one" type="xs:string" />
              <xs:element name="child_two" type="xs:int" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)


XSD无法实现的目标:首先要编写它,因为列表非常小
1)您无法使用另一个节点/属性的值验证节点/属性.
2)这是一个限制:必须使用一种数据类型定义XSD文件中定义的元素.[在上面的示例中,为了<child_two>出现在另一个<parent>节点中,除了int之外,不能定义数据类型.
3)您不能忽略元素和属性的验证,即,如果元素/属性出现在XML中,则必须在相应的XSD中明确定义.虽然使用 <xsd:any>它允许它,但它有自己的规则.持久导致验证错误.我试过类似的方法,当然没有成功,这是问答


XSD的可能性:
1)您可以测试XML节点的正确层次结构.[xsd定义哪个孩子应该在哪个父母等下面,哪些将被视为错误,在上面的例子中,child_two不能是root的直接子项,但它是"parent"标签的子项,它依次是"root"节点的子节点,有一个层次结构.]
2)您可以定义节点值的数据类型.[在上面的示例中,child_two不能包含任何其他数据而不是数字]
3)您还可以定义自定义data_types,[例如,对于节点<month>,可能的数据可以是12个月之一..因此您需要定义所有12个月在一个新的数据类型中,将所有12个月的名称写为枚举值.如果输入XML包含除这12个值以外的任何其他值,则验证显示错误.]
4)您可以对元素的出现进行限制,使用minOccurs和maxOccurs,默认值为1和1.

.. 还有很多 ...

  • +1在第二天提出详细而有用的回复. (12认同)

Sku*_*ull 14

XSD:
XSD(XML模式定义)指定如何在可扩展标记语言(XML)文档中正式描述元素.
Xml:
XML旨在描述数据.它独立于软件和硬件.
它增强了以下功能.
- 数据共享.
- 平台独立.
- 增加数据的可用性.

区别:

  1. XSD基于XML编写.

  2. XSD定义了可以出现在文档中的元素和结构,而XML则没有.

  3. XSD确保正确解释数据,而XML则不然.

  4. XSD文档被验证为XML,但相反的情况可能并非总是如此.

  5. XSD在捕获错误方面比XML更好.

XSD 定义了可以在文档中使用的元素,这些元素与要对其进行编码的实际数据相关.
例如:
表示为2010年1月12日的日期可以表示1月12日或12月1日.在XSD文档中声明日期数据类型,确保它遵循XSD规定的格式.


kjh*_*hes 6

XML与XSD

XML定义了元素和属性语法,用于在格式良好的文档中构造数据.

XSD (也称为XML Schema),与之前的DTD一样,通过使用户能够在有效的 XML文档中定义元素和属性词汇和语法,为 XML中的e X张力提供支持.


shu*_*1js 6

简单的 XML 示例:

<school>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</school>
Run Code Online (Sandbox Code Playgroud)

以上 XML 的 XSD(解释):

<xs:element name="school">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

这里:

xs:element:定义一个元素。

xs:sequence:表示子元素仅按提及的顺序出现。

xs:complexType:表示它包含其他元素。

xs:simpleType:表示它们不包含其他元素。

类型: 字符串、十进制、整数、布尔值、日期、时间、

  • 简而言之,xsd 是另一种表示和验证具有特定类型的 XML 数据的方法。
  • 借助额外的属性,我们可以执行多项操作。

  • 在 xsd 上执行任何任务都比 xml 简单。