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约束和引入的更多相关文章

  1. Schema约束

    Schema约束(*xml中如何引入schema约束)(看懂Schema:能根据Schema写出XML文档来:)1.Schema约束文档本身就是一个XML文档.2.Schema对名称空间支持很好3.S ...

  2. 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 ...

  3. XML约束——Schema约束

    XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性 XML Schema VS DTD: •XML Schema符合XML语法结构. • ...

  4. WebService笔记-Schema约束

                        Schema约束 俗话说得好 好记性不如烂笔头. 看了下WebService视频,觉得还是得下笔记. 观看的视频地址:http://edu.51cto.com/ ...

  5. Dom4J配合XPath解析schema约束的xml配置文件问题

    如果一个xml文件没有引入约束,或者引入的是DTD约束时,那么使用dom4j和xpath是可以正常解析的,不引入约束的情况本文不再展示. 引入DTD约束的情况 mybook.dtd: <?xml ...

  6. WebService . Schema约束

    1. namespace 相当于schema文件的id 2. targetNamespace属性 用来指定schema文件的namespace的值 3. xmlns属性 引入一个约束, 它的值是一个s ...

  7. Spring学习----- Spring配置文件xml文档的schema约束

    1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...

  8. xml的schema约束(Java)

    1.schema约束 *dtd语法:<!ELEMENT 元素名称 约束> schema符合xml的语法,是xml语句. 一个xml文件中可以有多个schema,多个schema使用名称空间 ...

  9. 关于Spring配置文件xml文档的schema约束

    最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version=&q ...

随机推荐

  1. 把数据输出到Word (非插件形式)

    项目开发过程中,我们要把数据以各种各样的形式展现给客户.把数据以文档的形式展现给客户相信是一种比较头疼的问题,如果没有好的方法会 使得我的开发繁琐,而且满足不了客户的需求.接下来我会通过两种开发方式介 ...

  2. spring+redis

    配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www ...

  3. pandas应用之分组因子暴露和分位数分析

    pandas应用之分组因子暴露和分位数分析 首先感谢原书作者Mes McKinney和batteryhp网友的博文, 俺在此基础上继续探索python的神奇功能. 用A股的实际数据, 以书里的代码为蓝 ...

  4. Deep Learning 19_深度学习UFLDL教程:Convolutional Neural Network_Exercise(斯坦福大学深度学习教程)

    理论知识:Optimization: Stochastic Gradient Descent和Convolutional Neural Network CNN卷积神经网络推导和实现.Deep lear ...

  5. commons-io ProxyInputStream,ProxyOutputStream,ProxyReader,ProxyWriter

    1.ProxyInputStream: A Proxy stream which acts as expected, that is it passes the method calls on to ...

  6. reggetvalue在xp下加载失败

    在windows 32bit的xp下使用reggetvalue会提示,无法定位程序输入点reggetvalueW于动态链接库advapi32.dll(UNICODE).reggetvalueA也是无法 ...

  7. IRLS(迭代加权最小二乘)

    IRLS用于解决这种目标函数的优化问题(实际上是用2范数来近似替代p范数,特殊的如1范数). 可将其等价变形为加权的线性最小二乘问题: 其中W(t)可看成对角矩阵,每步的w可用下面的序列代替 如果 p ...

  8. C# for循环 循环中先求长度还是使用list.Count,哪个效率高

    这种问法可能问的不好.应该说成是第一种方法完全没有必要,很多人可能以为那样会为代码带来效率,而实际上是不会给效率带来任何提升. 因为事实上,索引器内部,为了安全期间,还是会去求整个list的count ...

  9. Unity学习笔记

    『 知识点』 [射线] 射线检测碰撞 『游戏实战』 个例 [E]<愤怒的小鸟> 资源 免费Unity基础教程(中文电子书) [E] noobtus(Unity游戏教程)

  10. 理解伪元素 :Before 和 :After

    层叠样式表(CSS)的主要目的是给HTML元素添加样式,然而,在一些案例中给文档添加额外的元素是多余的或是不可能的.事实上CSS中有一个特性允许我们添加额外元素而不扰乱文档本身,这就是“伪元素”. 你 ...