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. JAVA 1.9 面向对象之封装

    1. 面向对象程序设计的三大基本特征:继承(Inheritence).封装(Encapsulation).多态(Polymorphism)2. 封装:类包含了数据与方法,将数据与方法放在一个类中就构成 ...

  2. TinyOS 中的 task

    task 的目的 做过界面的编程的同学可能会有这种经历,界面不响应,那,其实程序总是在后台运行,但是后台可能是个for循环,那么界面的点击等事件都不能执行. 在windows界面编程中利用了事件机制来 ...

  3. CSS3动画特效——transform详解

    transform让css3可以做很优质的特效,transform的意思是:改变,使-变形,转换. 在css3中transform的作用也是改变,让元素倾斜,旋转,缩放,位移. 下面来一一分解tran ...

  4. Python_Day7_面向对象学习

    1.面向对象编程介绍 2.为什么要用面向对象进行开发? 3.面向对象的特性:封装.继承.多态 4.类.方法. 面向过程 VS 面向对象 编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告 ...

  5. ActiveReport 同一单元格内图片跟文字按条件显示

    ActiveReports支持提供Image控件来显示图片素材,Image控件的值可以为图像的二进制流,图像路径,或url等:而在很多情况下,图片是签名扫描文件,并不会一直有值.如果图片的值为空,则显 ...

  6. java中使用sql的like关键字

    String sql = "select * from userinfo where nickname like ?"; PreparedStatement ps = conn.p ...

  7. Sublime Text 2 代码片断

    原文:Snippets 不管是在编码,还是写畅销书,你都可能会需要一遍又一遍的用到一些文本的小片断.使用片断来结束这种单调无聊的码字吧,片断是一种智能的模板,它能在合适的上下文中插入你需要的文本内容. ...

  8. fiddler监听127.0.0.1或localhost

    localhost/127.0.0.1的请求不会通过任何代理发送,fiddler也就无法截获. 解决方案 1,用 http://localhost. (locahost紧跟一个点号)2,用 http: ...

  9. ubuntu下各种压缩包的解压命令

    .tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)-------------------------- ...

  10. MySql学习(五) —— 数据库优化理论篇(一)

    一.数据库管理系统 数据库管理系统(Database Management System, DBMS) 衡量是否是数据库的标准: ACID:是指在数据库管理系统(DBMS)中事务所具有的四个特性: 1 ...