ant*_*res 143
实际上XSD本身就是XML.其目的是验证另一个XML文档的结构.XSD对于任何XML都不是强制性的,但它确保XML可以用于某些特定目的.XML仅包含适当格式和结构的数据.
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.
.. 还有很多 ...
Sku*_*ull 14
XSD:
XSD(XML模式定义)指定如何在可扩展标记语言(XML)文档中正式描述元素.
Xml:
XML旨在描述数据.它独立于软件和硬件.
它增强了以下功能.
- 数据共享.
- 平台独立.
- 增加数据的可用性.
区别:
XSD基于XML编写.
XSD定义了可以出现在文档中的元素和结构,而XML则没有.
XSD确保正确解释数据,而XML则不然.
XSD文档被验证为XML,但相反的情况可能并非总是如此.
XSD在捕获错误方面比XML更好.
XSD 定义了可以在文档中使用的元素,这些元素与要对其进行编码的实际数据相关.
例如:
表示为2010年1月12日的日期可以表示1月12日或12月1日.在XSD文档中声明日期数据类型,确保它遵循XSD规定的格式.
<school>
<firstname>John</firstname>
<lastname>Smith</lastname>
</school>
Run Code Online (Sandbox Code Playgroud)
<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 简单。
| 归档时间: |
|
| 查看次数: |
120176 次 |
| 最近记录: |