本文查阅方法:
    1、查阅目录 —— 查阅本文目录,确定想要查阅的目录标题
    2、快捷“查找” —— 在当前浏览器页面,按键 “Ctrl+F” 按键组合,开启浏览器的查找功能,在查找搜索框中 输入需要查阅的 目录标题,便可以直接到达 标题内容 的位置。
    3、学习小结 —— 文中的学习小结内容,是笔者在学习之后总结出的,开发时可直接参考其进行应用开发的内容, 进一步加快了本文的查阅 速度。(水平有限,仅供参考。)


本文目录

1、XML Schema概述
  2、Schema约束快速入门 
  3、名称空间的概念 
  4、使用默认名称空间  
  5、使用名称空间引入Schema约束文件 
  6、使用名称空间引入多个XML Schema文档 
  7、不使用名称空间引入XML Schema文档 
  8、在XML Schema文档中声明名称空间
  9、下载附件 学习资料 
 10、Schema练习案例


1、XML Schema概述

(1)XML Schema 是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性

(2)XML Schema 相对于  DTD 的优势:

a. XML Schema符合XML语法结构。

b. DOM、SAX等XML API很容易解析出XML Schema文档中的内容。

c. XML Schema对名称空间支持得非常好,可在一份Xml文档中使用多份Schema文档中定义的不同标签。

d. XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。

e. XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。

f. XML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。


2、Schema约束快速入门

(1)XML Schema 文件自身就是一个XML文件,但它的扩展名通常为.xsd。

(2)一个XML Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档。

(3)和XML文件一样,一个XML Schema文档也必须有一个根结点,但这个根结点的名称为Schema。

(4)编写了一个XML Schema约束文档后,通常需要把这个文件中声明的元素绑定到一个URI地址上,在XML Schema技术中有一个专业术语来描述这个过程,即把XML Schema文档声明的元素绑定到一个名称空间上,以后XML文件就可以通过这个URI(即名称空间)来告诉解析引擎,xml文档中编写的元素来自哪里,被谁约束。


3、名称空间的概念

定义:在XML Schema中,每个约束模式文档都可以被赋以一个唯一的名称空间,名称空间用一个唯一的URI(Uniform Resource Identifier,统一资源标识符)表示。

使用:在Xml文件中书写标签时,可以通过名称空间声明(xmlns),来声明当前编写的标签来自哪个Schema约束文档。如:

<sina:书架 xmlns:sina =“http://www.sina .cn”>

<sina :书>……</sina :书>

</sina :书架>

此处使用sina 来指向声明的名称,以便于后面对名称空间的引用。

注意:名称空间的名字语法容易让人混淆,尽管以 http:// 开始,那个 URL 并不指向一个包含模式定义的文件。事实上,这个 URL:http://www.sina .cn根本没有指向任何文件,只是一个分配的名字。


4、使用默认名称空间

基本格式:

xmlns="URI"

举例:

<书架 xmlns="http://www.iteye.org/xmlbook/schema"

xmlns:xsi="http://www.w3.Aorg/2001/XMLSchema-instance"

xsi:schemaLocation=“http://www.sina .cn book.xsd">

<书>

<书名>JavaScript网页开发</书名>

<作者>张孝祥</作者>

<售价>28.00元</售价>

</书>

<书架>


5、使用名称空间引入Schema约束文件

为了在一个XML文档中声明它所遵循的Schema文件的具体位置,通常需要在Xml文档中的根结点中使用schemaLocation属性来指定,

例如:

<sina :书架 xmlns:sina ="http://www.sina .cn"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation=“http://www.sina .cn book.xsd">

schemaLocation此属性有两个值:

第一个值是需要使用的命名空间。

第二个值是供命名空间使用的 XML schema 文件的具体位置(可网络下载),两者之间用空格分隔。

注意,在使用schemaLocation属性时,也需要指定该属性来自哪里。建议在已有的文件中复制上述头信息。


6、使用名称空间引入多个XML Schema文档

参见如下Demo样例:

<?xml version="1.0" encoding="UTF-8"?>

<书架 xmlns="http://www.iteye.org/xmlbook/schema"

xmlns:demo="http://www.iteye .org/demo/schema"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.iteye.org/xmlbook/schema     http://www.iteye.org/xmlbook.xsd

http://www.iteye.org

转载于:https://blog.51cto.com/even2012/1158414

Schama —— Xml文档约束技术 学习笔记相关推荐

  1. HTML5 权威指南第 10 章 文档分节 学习笔记

    HTML5 权威指南第 10 章 文档分节 学习笔记 第 8 章 标记文字 内容从从文字出发,专注如何将单体内容正确的呈现出来:第 9 章 组织内容 内容从段落出发,专注如何将单体内容合理的放在段落中 ...

  2. 官网案例文档结构-kera学习笔记三

    下载网址:https://github.com/keras-team/keras Keras开发包文件目录 Keras实例文件目录 keras-master 文档结构框架 ├─.github ├─do ...

  3. redistemplate文档用法_Spring学习笔记之RedisTemplate的配置与使用教程

    前言 Spring针对Redis的使用,封装了一个比较强大的Template以方便使用:之前在Spring的生态圈中也使用过redis,但直接使用Jedis进行相应的交互操作,现在正好来看一下Redi ...

  4. Dom4j 解析Xml文档及 XPath查询 学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" ...

  5. Dom4j 解析Xml文档及XPath查询 学习笔记

    本文查阅方法:     1.查阅目录 -- 查阅本文目录,确定想要查阅的目录标题     2.快捷"查找" -- 在当前浏览器页面,按键 "Ctrl+F" 按键 ...

  6. 《用Castor 处理XML文档》学习笔记

    --Castor可以完成Java和XML的相互转换 前面有介绍过json-lib这个框架,在线博文: [url]http://www.cnblogs.com/hoojo/archive/2011/04 ...

  7. Android学习笔记(八)XML文档的解析

    一.废话 最近几天四川一直下雨,冷!今天到成都的时候,下午3点多的天和晚上天差不多,黑呼呼的... ...难道传说的2012来了?哈哈哈... ... 二.正文 在上一篇笔记中提到过说在Android ...

  8. 《Webservice的应用与开发》学习笔记 ·001【Web服务、XML文档】

    注:前言.目录见 https://blog.csdn.net/qq_44220418/article/details/108428971 文章目录 一.Web服务 1.特点 2.定义 二.XML文档 ...

  9. 【学习笔记】关于DOM4J:使用DOM4J解析XML文档

    一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...

最新文章

  1. session和cookie的区别和联系---转载
  2. C#中用NPOI的excel导出
  3. 小学计算机国培研修总结,小学数学国培研修总结
  4. Alpha冲刺(8/10)
  5. ZigBee网络数据传递流程_蓝牙、Wifi与ZigBee三种,这三种无线传输技术,谁能一统天下...
  6. python类的定义与使用_Python15类的定义和使用
  7. 9.2. service
  8. 五个在线,推进企业数字化转型升级
  9. html5 电商模板,多用途电商HTML模板
  10. 华为荣耀3x畅玩版解锁
  11. CSS3 文字边框 -webkit-text-stroke
  12. win10 仿照linux终端,[菜鸟win10系统]类似Windows界面的Linux发行版
  13. 社保已经交够15年了,还需要再交吗?到退休年龄时可以退休吗?
  14. springboot中的各个模块及其功能
  15. 安装NVIDIA驱动与CUDA教程(+cuDNN)(终极版)
  16. Java 基础.JDK 和 JRE 有什么区别
  17. E. The Humanoid #834 div3
  18. c语言远控,远控鼠标!C语言简单编程:整舍友必备+附送实例源码!
  19. 请主动远离打击你自信的人
  20. 链表排序时间复杂度为(O(n log n) )

热门文章

  1. Sentinel v1.4.2 发布,更好用的集群限流功能
  2. 2_vuex状态管理器
  3. MongoDB学习第一篇 --- Mac下使用HomeBrew安装MongoDB
  4. PHP 实现多网站共享用户SESSION 数据解决方案
  5. Java 学习内容总结
  6. 【转】Powerdesigner逆向工程从sql server数据库生成pdm
  7. 【面试虐菜】—— JAVA面试题(2)
  8. javascript使用Json总结
  9. 更改zabbix-server的端口
  10. IndexedDB 索引数据库