schema约束和引入
schema的概述
schema约束同为xml文件的约束模式语言之一, 最大的作用是为了验证xml文件的规范性的.
是为了解决dtd约束不够的问题, 相应的他的配置就变得比较复杂
schema本身就是xml语言, 后缀名为xsd, 对命名空间的支持非常好
schema的根元素就为schema
schema约束和dtd约束的区别:
⑴XML Schema符合XML语法结构。
⑵DOM、SAX等XML API很容易解析出XML Schema文档中的内容。
⑶XML Schema对名称空间支持得非常好。
⑷XML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。
⑸XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
⑹XML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。
schema的引入
学的时候这个地方搞得最晕了, dtd约束直接在<!ENTITY >中声明了本地文件还是网络路径; 而schema约束中并没有dtd那么详细. 刚开始以为在同一文件夹下就可以使用, 而后使用写好的xml文件的便与约束无关了, 但经过几次试验之后发现约束依然在起作用. 翻了很多资料, 理解了一点,
首先介绍URL和URI的区别:
URL: 统一资源定位符, 可以准确的定位到互联网上某一资源的确定位置, 一般由协议, 服务器名, 文件路径组成, URL是URI的子集
URI: 统一资源标识符, 对某一互联网资源进行标识的字符串, 关羽他俩的区别, 可具体参考:http://www.cnblogs.com/gaojing/archive/2012/02/04/2413626.html
而在schema中, 每个约束模式文档都可以被赋予一个唯一的使用URI标识的名称空间, Xml文件引用schema约束的时候, 便是通过这个名称空间来声明来自哪个shema约束文档的.
在xsd文档中, 至少要包括shema根元素和xml模式命名空间的定义, 元素定义等
在schema中声明schema根元素:
根元素包括模式的约束, xml模式空间命名的定义, 其他命名空间的定义, 版本信息, 语言信息和其他的信息.
xmlns=URI: 使用默认的名称空间
targetNamespace=:URI: 指定schema文档中声明的元素属于哪个命名空间
xmlns:xsd=URI: 使用名称空间引入多个xml shema文档
elementFormaDefault= " ": 指定shema文档中声明的跟元素和所有子元素都属于targetnamespace锁指定的名称空间
解下来, 如何在xml文件中引用定义的schema约束
在新建的xml文档中加入声明后, 引入schema的约束文档,
首先声明约束来自哪个名称空间, 使用xmlns="" 来指定,
引入的名称空间和哪个xsd文件对应, 使用schemaLocation="" 来指定, 第一个为名称空间, 第二个为xsd文件路径.
如果在开发过程中没有internet连接, 这是ide将约束的URI映射到本地, 所以指定了命名空间和元素后, 仍然可以使用schema约束
最后, 从文档中截取了几张图方便理解:
schema约束和引入的更多相关文章
- Schema约束
Schema约束(*xml中如何引入schema约束)(看懂Schema:能根据Schema写出XML文档来:)1.Schema约束文档本身就是一个XML文档.2.Schema对名称空间支持很好3.S ...
- xml语法、DTD约束xml、Schema约束xml、DOM解析xml
今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的ht ...
- XML约束——Schema约束
XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性 XML Schema VS DTD: •XML Schema符合XML语法结构. • ...
- WebService笔记-Schema约束
Schema约束 俗话说得好 好记性不如烂笔头. 看了下WebService视频,觉得还是得下笔记. 观看的视频地址:http://edu.51cto.com/ ...
- Dom4J配合XPath解析schema约束的xml配置文件问题
如果一个xml文件没有引入约束,或者引入的是DTD约束时,那么使用dom4j和xpath是可以正常解析的,不引入约束的情况本文不再展示. 引入DTD约束的情况 mybook.dtd: <?xml ...
- WebService . Schema约束
1. namespace 相当于schema文件的id 2. targetNamespace属性 用来指定schema文件的namespace的值 3. xmlns属性 引入一个约束, 它的值是一个s ...
- Spring学习----- Spring配置文件xml文档的schema约束
1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...
- xml的schema约束(Java)
1.schema约束 *dtd语法:<!ELEMENT 元素名称 约束> schema符合xml的语法,是xml语句. 一个xml文件中可以有多个schema,多个schema使用名称空间 ...
- 关于Spring配置文件xml文档的schema约束
最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...
随机推荐
- UVA Open Credit System Uva 11078
题目大意:给长度N的A1.....An 求(Ai-Aj)MAX 枚举n^2 其实动态维护最大值就好了 #include<iostream> #include<cstdio> u ...
- SVN使用手册
安装Tortoise SVN Icon TortoiseSVN 1.7版本及之后与之前的版本有很大的变化,主要区别如下: 1.7以前的版本会在每个目录中生成一个.svn的隐藏目录.1.7及以后的版本, ...
- DOM对象与jquery对象有什么不同
jQuery对象和DOM对象使用说明,需要的朋友可以参考下.1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQuery ...
- CSS3盒子阴影box-shadow
来自W3CSchool的解释 语法: box-shadow: h-shadow v-shadow blur spread color inset; 注释:box-shadow 向框添加一个或多个阴影. ...
- 20161117__安装Qt5.3.2
1.strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 2.yum install libGL-devel 2.在安装 Qt5.3.2x86的时候,会报错 ...
- stm32定时器中断类型分析
一直在用的stm32定时器的中断都是TIM_IT_Update更新中断,也没问为什么,直到碰到有人使用TIM_IT_CC1中断,才想到这定时器的中断类型究竟有什么区别,都怪当时学习stm32的时候不够 ...
- struts 标签的使用<转>
Struts2常用标签总结 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的 ...
- Leetcode--Merge Two Sorted Lists
static ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) { ListNode *temp = ); ListNode *head = te ...
- html中给表格添加斜线
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 【转】Pycharm的激活
如果要基于Python进行开发的话,那么pycharm是个不错的选择,试用一个月以后需要激活,原文如下: 原文链接:http://blog.csdn.net/lanchunhui/article/de ...