xml Schema

青旅半醒 2022-08-19 13:28 239阅读 0赞

什么是Schema

  Schema(模式) :其作用与DTD一样,也是用于验证XML文档的有效性,只不过它提供了比DTD更强大的功能和更细粒度的数据类型。

  另外,Schema可以自定义数据类型。

  Schema也是一个XML文件,而DTD则不是。

  1. ![01164113-d1482238c6f84f1887c595d8e02eecd6.png][]

01164137-7f0eb33f471341c0afec0dace55c06c2.png

为何要Schema

01164221-bac97302cb484a28b22e8a796a6d75d8.png

Schema文档结构

01164251-55427b745fd347a28d823be4597061d5.png

  所有的Schema文档,其根元素必须叫schema。

  schema可以包含属性,比如:

复制代码

  1. <?xml version="1.0"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. targetNamespace="http://www.w3school.com.cn"
  4. xmlns="http://www.w3school.com.cn"
  5. elementFormDefault="qualified">
  6. ...
  7. ...
  8. </xs:schema>

复制代码

  第一个xmlns后面的名字可以自由定义,一般是xsxsd,但是地址不可以改,是一定的:

  1. xmlns:xs="http://www.w3.org/2001/XMLSchema"

  显示 schema 中用到的元素和数据类型来自命名空间 “http://www.w3.org/2001/XMLSchema"。

  同时它还规定了来自命名空间 “http://www.w3.org/2001/XMLSchema“ 的元素和数据类型应该使用前缀 xs。

  1. targetNamespace="http://www.w3school.com.cn"

  显示被此 schema 定义的元素 (自定义的element,即XML中的标签) 来自命名空间: “http://www.w3school.com.cn"。

  1. xmlns="http://www.w3school.com.cn"

  指出默认的命名空间是 “http://www.w3school.com.cn"。

  1. elementFormDefault="qualified"

  指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。

一个Schema的例子

  下面这个例子是一个名为 “note.xsd” 的 XML Schema 文件:

复制代码

  1. <?xml version="1.0"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. targetNamespace="http://www.w3school.com.cn"
  4. xmlns="http://www.w3school.com.cn"
  5. elementFormDefault="qualified">
  6. <xs:element name="note">
  7. <xs:complexType>
  8. <xs:sequence>
  9. <xs:element name="to" type="xs:string"/>
  10. <xs:element name="from" type="xs:string"/>
  11. <xs:element name="heading" type="xs:string"/>
  12. <xs:element name="body" type="xs:string"/>
  13. </xs:sequence>
  14. </xs:complexType>
  15. </xs:element>
  16. </xs:schema>

复制代码

  

  XML文档加入对其的引用:

复制代码

  1. <?xml version="1.0"?>
  2. <note
  3. xmlns="http://www.w3school.com.cn"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
  6. <to>George</to>
  7. <from>John</from>
  8. <heading>Reminder</heading>
  9. <body>Don't forget the meeting!</body>
  10. </note>

复制代码

  

  顺带介绍,如果上面的文档不用Schema,而是用DTD定义将会是这样:

  1. <!ELEMENT note (to, from, heading, body)>
  2. <!ELEMENT to (#PCDATA)>
  3. <!ELEMENT from (#PCDATA)>
  4. <!ELEMENT heading (#PCDATA)>
  5. <!ELEMENT body (#PCDATA)>

Schema的数据类型

简单类型

  一.内置的数据类型(built-in data types)

  内置的数据类型又分为两种:

  1.基本的数据类型

  2.扩展的数据类型

  二.用户自定义数据类型(通过simpleType定义)

复杂类型(通过complexType定义)

01164354-966ea7647f13478f9d7951ce5cca5b07.png

01164417-c897fd75f43c411280b6da88f2676826.png

01164433-cd50d66499d64c299f0ec8606d8aa984.png

Schema元素

01164449-5d2a879fe26943debe88d65cba5152fe.png

  关于元素的详细说明可以参见 XML Schema参考手册:

  http://www.w3school.com.cn/schema/schema_elements_ref.asp


参考资料

  W3school XML Schema:

  http://www.w3school.com.cn/schema/schema_intro.asp

  http://www.w3school.com.cn/schema/schema_schema.asp

  圣思园张龙老师视频教程。

  XML工具软件:XMLSpy。

发表评论

表情:
评论列表 (有 0 条评论,239人围观)

还没有评论,来说两句吧...

相关阅读

    相关 XML Schema简介

    作用(定义XML文档的合法构建模块) ①定义可出现在文档中的元素、属性 ②定义元素及其子元素 ③定义子元素的数目、次序 ④定义元素是否为空、是否可包含文本

    相关 xml Schema

    什么是Schema   Schema(模式) :其作用与DTD一样,也是用于验证XML文档的有效性,只不过它提供了比DTD更强大的功能和更细粒度的数据类型。   另外,

    相关 XMLXML - Schema

    Xml Schema类似于DTD,定义了XML文档的逻辑结构,基本功能如下: a、定义可出现在文档中的元素及元素属性。 b、定义哪个元素是子元素。 c、定义子元素的次

    相关 XML——Schema约束

    一、Schema约束快速入门 1、 XML Schema文件自身就是一个XML文件,但它的扩展名通常为.xsd。 2、一个XML Schema文档通常称之为模式文档(约

    相关 XML Schema教程

      1.                  最简单的Schema文档 如何写一个最简单的XML Schema文档呢? 首先,我们写出一个最简单的XML文档。 hel

    相关 xml/schema/wsdl

    xml/schema 在看webservice时,牵扯到很多xml的知识,看的一片头疼,不得不硬着头皮系统看了一遍这方面的知识,作为学习笔记记录下自己易混淆的地方……