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 ...
随机推荐
- asp.net报错“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”的解决办法
来源:http://ajxfxb.blog.163.com/blog/static/56675086201411634336878/ 作者是:没完没了的工作 asp.net报错“尝试读取或写入受保护的 ...
- repeater重复器、地址栏传值、response
repeater重复器: <HeaderTemplate> <ItemTemplate> <AlternatingItemTemplate> <FooterT ...
- PHPStorm技巧篇 -- 观感优化
(1)设置默认显示行号 (2)设置自动换行 (3)去除代码下划线(拼写检测) 优化说明:自动换行和显示行号字面意思很好理解,下划线说明一下,phpstorm默认对代码进行拼写校验,即对于不符合英文单词 ...
- Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写
最常见的: 静态地址重定向到带参数的动态地址 rewrite "^(.*)/service/(.*)\.html$" $1/service.php?sid=$2 permanent ...
- Could not resolve placeholder 解决方案
spring 配置加载properties文件的时候,报 Could not resolve placeholder 错误. 经过仔细查找,排除文件路径,文件类容错误的原因,经过查找相关资料,出现&q ...
- linux笔记:linux服务管理
linux服务的分类: 启动和自启动: 查询已经安装的服务: RPM包的默认安装路径: 独立服务的启动: 独立服务的自启动: 基于xinetd的服务的管理: xinetd服务的自启动: 源码包安装服务 ...
- spring 注解的优点缺点
注解与XML配置的区别 注解:是一种分散式的元数据,与源代码耦合. xml :是一种集中式的元数据,与源代码解耦. 因此注解和XML的选择上可以从两个角度来看:分散还是集中,源代码耦合/解耦. 注解的 ...
- 有用的css片段
1.背景渐变动画 CSS中最具诱惑的一个功能是能添加动画效果,除了渐变,你可以给背景色.透明度.元素大小添加动画.目前,你不能为渐变添加动画,但下面的代码可能有帮助.它通过改变背景位置,让它看起来有动 ...
- Centos7下配置Redis开机自启动
最近在做作业的时候需要用到Redis缓存,由于每次重启服务器都需要重新启动Redis,也是忒烦人,于是就有了这一篇博客,好,废话不多说. 只有两个步骤: 设置redis.conf中daemonize为 ...
- jeesite部署到Tomcat后,无法访问,cannot be resolved in either web.xml or the jar files deployed with this application
HTTP Status 500 - /WEB-INF/views/modules/sys/sysLogin.jsp (line: 3, column: 0) The absolute uri: htt ...