首页 > 其他 > 详细

XSD概要

时间:2021-06-07 23:09:56      阅读:20      评论:0      收藏:0      [点我收藏+]

XSD是什么

XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)
就是一个xml的文档约束

XSD有什么用

XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD

  • 定义可出现在文档中的元素
  • 定义可出现在文档中的属性
  • 定义哪个元素是子元素
  • 定义子元素的次序
  • 定义子元素的数目
  • 定义元素是否为空,或者是否可包含文本
  • 定义元素和属性的数据类型
  • 定义元素和属性的默认值以及固定值

XSD相对于DTD的优势

  • 可针对未来的需求进行扩展
  • 基于XML编写
  • 支持命名空间
  • 支持数据类型定义
    • 更容易地描述允许的文档内容
    • 更容易地验证数据的正确性
    • 更容易地与来自数据库的数据一并工作
    • 更容易地定义数据约束(data facets)
    • 更容易地定义数据模型(或称数据格式)
    • 更容易地在不同的数据类型间转换数据

XSD中元素及属性的定义

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"

如何定义XSD文件

简单类型的元素

简易元素指那些仅包含文本的元素。它不会包含任何其他的元素或属性
<xs:element name="xxx" type="yyy"/>
此处 xxx 指元素的名称,yyy 指元素的数据类型。XML Schema 拥有很多内建的数据类型

XSD常用的声明元素的类型

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time
    例如:
<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属性

简易元素无法拥有属性。假如某个元素拥有属性,它就会被当作某种复合类型。但是属性本身总是作为简易类型被声明的
声明一个XSD属性:
<xs:attribute name="xxx" type="yyy"/>
在此处,xxx 指属性名称,yyy 则规定属性的数据类型。XML Schema 拥有很多内建的数据类型。常用的就上面说的几种数据类型。

XSD概要

原文:https://www.cnblogs.com/ymwmn/p/14860574.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!