XML约束-Schema
一、xsd文件
用于xml文件约束,用于约束其中的element定义以及element的attrubuties。xsd提供了名称空间的概念。文件自身就是一个XML文件,但它的扩展名通常为.xsd。
XML 解析器可以根据 一个 XSD 文件的内容来解析另一个 XML 文件, 判断该文件的结构是否和 XSD 文件中定义的一致。
作用
1.定义一个Xml文档中都有什么元素
2.定义一个Xml文档中都会有什么属性
3.定义某个节点的都有什么样的子节点,可以有多少个子节点,子节点出现的顺序
4.定义元素或者属性的数据类型
5.定义元素或者属性的默认值或者固定值
说明:
1、以下指出的URL含义:对于命名空间的标识符, URI 的作用仅仅是保证唯一性, 它并不需要对应一个可以访问的资源或文件。但是, 有很多公司都会让 namespace 的 URI 指向一个包含该命名空间信息的网页。
1、xmlns
用于引入命名空间,此命名空间是已存在的,其中指定了当前xsd或者xml文件可应以的element元素名称等信息。来声明当前编写的标签来自哪个Schema约束文档
存在两种形式的xmlns
xmlns="URI":默认的名称空间
xmlns:prefix="URI":使用时需要指定prefix前缀
xsd文件通过xmlns标签会指定xsd文件中用到element的URL,是一个公认的标准URI指向,表示数据类型等定义来自w3
xmlns:xs="http://www.w3.org/2001/XMLSchema"
2、targetNamespace
在XML Schema中,每个约束模式文档都可以被赋以一个唯一的名称空间,名称空间用一个唯一的URI,这个唯一的名称空间就是由targetNamespace指定。
定义命名空间的地址,即被其他xsd或者xml文件使用xmlns的方式引进,targetNamesapce类似于java中的package。
有此标签的xsd文件中定义了其他xsd或者xml可定义的标签。
3、xmlns:xsi
xsi 已经成为了一个业界默认的用于 XSD((XML Schema Definition) 文件的命名空间,用于指定Schema-instance的URI,这个URI是一个公认的标准名称空间:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
通过其中的两个属性可以为使用的文件制定具体xsd文件的路径:
A、xsi:schemaLocation="key path [key path]"
key和value以及下一对key-value之间使用空格或者换行
可以指定多个xmlns的路径,此处的key是用xmln或者xmlns:prefix(初xsi之外)指定的URI,key是具体xsd的路径。
xsi:schemaLocation属性其实是Namespace为http://www.w3.org/2001/XMLSchema-instance里的schemaLocation属性。
引入多个xmlns
<root xmlns="123"
xmlns:n="abc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="123 xxxx.xsd
abc yyyy.xsd">
</root>
B、xsi:noNamesapceSchemaLocation
此方式不需要使用者显示使用 xlmns 指定需要使用的xsd文件URI,直接在此标签指定xsd文件的路径即可,此时被使用的xsd文件必须与使用者在同一目录。
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamesapceSchemaLocation="local.xsd">
</root>
二、xml文件
引入已定义的xsd文件,通过两种方式:见(xmlns:xsi)
1、使用名称空间引入xsd
2、不使用名称空间引入xsd
发表评论 取消回复