XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)
就是一个xml的文档约束
XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD
xsd文件的定义,包含一个根元素<schema></schema>
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 显示 schema 中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema",同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs:
targetNamespace="http://www.w3school.com.cn" 显示被此 schema 定义的元素,来自命名空间:"http://www.w3school.com.cn"。
xmlns="http://www.w3school.com.cn" 指出默认的命名空间是 "http://www.w3school.com.cn"
elementFormDefault="qualified"> 指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定
...
...
</xs:schema>
解析:
xmlns="http://www.w3school.com.cn"
规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 "http://www.w3school.com.cn" 这个命名空间
一旦拥有了可用的xml schema命名空间:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
您就可以使用 schemaLocation 属性了。此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置:xsi:schemaLocation="http://www.w3school.com.cn note.xsd"
简易元素指那些仅包含文本的元素。它不会包含任何其他的元素或属性
<xs:element name="xxx" type="yyy"/>
此处 xxx 指元素的名称,yyy 指元素的数据类型。XML Schema 拥有很多内建的数据类型
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/>
简易元素可拥有指定的默认值或固定值,当没有其他的值被规定时,默认值就会自动分配给元素。
<xs:element name="color" type="xs:string" default="red"/>
固定值同样会自动分配给元素,且无法分配其他值
<xs:element name="color" type="xs:string" fixed="red"/>
简易元素无法拥有属性。假如某个元素拥有属性,它就会被当作某种复合类型。但是属性本身总是作为简易类型被声明的
声明一个XSD属性:
<xs:attribute name="xxx" type="yyy"/>
在此处,xxx 指属性名称,yyy 则规定属性的数据类型。XML Schema 拥有很多内建的数据类型。常用的就上面说的几种数据类型。
原文:https://www.cnblogs.com/ymwmn/p/14860574.html