在实例中引用模式文档

XML Schema提供了两个在实例文档中使用的特殊属性,用于指出模式文档的位置。这两个属性是:xsi:schemaLocation和xsi:noNamespaceSchemaLocation,前者用于声明了目标名称空间的模式文档,后者用于没有目标名称空间的模式文档,它们通常在实例文档中使用。

4.5.7.1  xsi:schemaLocation属性

xsi:schemaLocation属性的值由一个URI引用对组成,两个URI之间以空白符分隔。第一个URI是名称空间的名字,第二个URI给出模式文档的位置,模式处理器将从这个位置读取模式文档,该模式文档的目标名称空间必须与第一个URI相匹配。我们看例4-28。

例4-28  book6.xml

<?xml version="1.0" encoding="GB2312"?>
<book xmlns="http://www.sunxin.org/book"   ①
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  ②
xsi:schemaLocation="http://www.sunxin.org/book http://www.sunxin.org/
book.xsd">  ③
<title>《Struts 2深入详解》</title>
<author>孙鑫</author>
</book>

① 声明默认的名称空间(http://www.sunxin.org/book)。

② 声明XML Schema实例名称空间(http://www.w3.org/2001/XMLSchema-instance),并将xsi前缀与该名称空间绑定,这样模式处理器就可以识别xsi:schemaLocation属性。XML Schema实例名称空间的前缀通常使用xsi。

③ 使用xsi:schemaLocation属性指定名称空间http://www.sunxin.org/book和模式位置http://www.sunxin.org/book.xsd相关。要注意,在这个例子中,book.xsd中声明的目标名称空间要求是http://www.sunxin.org/book。

一个可能的模式文档book.xsd如例4-29所示。

例4-29  book.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.sunxin.org/book"
targetNamespace="http://www.sunxin.org/book"
elementFormDefault="qualified"><xs:element name="book" type="bookType"/>
<xs:complexType name="bookType">
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="author" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

实际上,xsi:schemaLocation属性的值也可以由多个URI引用对组成,每个URI引用对之间使用空白符分隔。例4-30的实例文档使用了多个名称空间,xsi:schemaLocation属性的值包含了两对URI。

例4-30  books.xml

<?xml version="1.0" encoding="GB2312"?>
<books xmlns="http://www.sunxin.org/bks" xmlns:p="http://www.sunxin.org/people"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sunxin.org/bks bks.xsd
http://www.sunxin.org/people people.xsd">
<book>
<title>JSP深入编程</title>
<author>
<p:name>张三</p:name>
<p:title>作家</p:title>
</author>
</book>
<book>
<title>XML从入门到精通</title>
<author>
<p:name>李四</p:name>
<p:title>教师</p:title>
</author>
</book>
</books>

XML Schema推荐标准中指出,xsi:schemaLocation属性可以在实例中的任何元素上使用,而不一定是根元素,不过,xsi:schemaLocation属性必须出现在它要验证的任何元素和属性之前。

此外,要注意的是,XML Schema推荐标准并没有要求模式处理器必须要使用xsi:schemaLocation属性,某些模式处理器可以通过其他的方式来得到模式文档的位置,而忽略xsi:schemaLocation属性。

xsi:noNamespaceSchemaLocation属性

xsi:noNamespaceSchemaLocation属性用于引用没有目标名称空间的模式文档。与xsi:schemaLocation属性不同的是,xsi:noNamespaceSchemaLocation属性的值是单一的值,只是用于指定模式文档的位置。例4-31显示了在实例文档中xsi:noNamespaceSchema Location属性的使用。

例4-31  book7.xml

<?xml version="1.0" encoding="GB2312"?>
<book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="book.xsd"
isbn="978-7-121-06812-6" >
<title>《Struts 2深入详解》</title>
<author>孙鑫</author>
</book>

与xsi:schemaLocation属性一样,xsi:noNamespaceSchemaLocation属性也可以在实例中的任何元素上使用,而不一定是根元素,不过,xsi:noNamespaceSchemaLocation属性必须出现在它要验证的任何元素和属性之前。

此外,要注意的是,XML Schema推荐标准并没有要求模式处理器必须要使用xsi:noNamespaceSchemaLocation属性,某些模式处理器可以通过其他的方式来得到模式文档的位置,而忽略xsi:noNamespaceSchemaLocation属性。

xsi:schemaLocation详解相关推荐

  1. xsi:schemaLocation详解 1

    转自:http://blog.csdn.net/zhengyeqing520/article/details/6091656 https://zhidao.baidu.com/question/109 ...

  2. xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance(xsi:schemaLocation详解)

    http://topic.csdn.net/u/20110117/01/3e3cc322-8f8e-4c2b-8cbb-768bf7319c59.html xmlns:xsi="http:/ ...

  3. xmlns与xmlns:xsi和xsi:schemaLocation详解

    xml文件常用来作为配置文件,但是 xml 文件的头部会让初学者感到困惑, 这里对其进行一个清晰易懂的解释(梳理自网络资料) 先修知识 理解 xml 中的标签含义, 及标签之间树状的嵌套结构 了解 p ...

  4. 详解 xml 文件头部的 xmlns:xsi

    xmlns:(XML Namespaces的缩写)是一个属性,是XML(标准通用标记语言的子集)命名空间的声明.作用是赋予命名空间一个唯一的名称. 命名空间是什么呢? 由于xml允许你自己定义自己的标 ...

  5. spring boot 实战 / 可执行war启动参数详解

    概述   上一篇文章<spring boot 实战 / mvn spring-boot:run 参数详解>主要讲解了spring boot 项目基于maven插件启动过程中借助profil ...

  6. java中batch基础_详解Spring batch 入门学习教程(附源码)

    详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...

  7. [Spring mvc 深度解析(一)] 详解Servlet

    详解Servlet ​ Servlet是Server+Applet的缩写,表示一个服务器应用.通过上面的分析我们知道Servlet其实就是一套规范,我们按照这套规范写的代码就可以直接在Java的服务器 ...

  8. Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解

    Spring MVC 学习总结(二)--控制器定义与@RequestMapping详解 目录 一.控制器定义 1.1.实现接口Controller定义控制器 1.2.使用注解@Controller定义 ...

  9. Spring MVC 框架搭建及详解

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...

最新文章

  1. 仅需6步,教你轻易撕掉app开发框架的神秘面纱(4):网络模块的封装
  2. Service IntentService区别 (面试)
  3. (0076)iOS开发之UIWebView嵌套直播平台(不涉及播放器技术的开发)
  4. 嵌入式研究杂记(1)-RISC-V开源CPU
  5. poj1769 线段树优化的dp
  6. 码云提交时报错git 报错 fatal: unable to auto-detect email address (got 'Administrator@PC-20180504MMDH.(none)'
  7. 具有数据库依赖性的.NET Core应用程序的集成测试
  8. 三目运算符c语言吗,看看三目运算符?:到底是怎么回事
  9. python入门指南-Python 30分钟入门指南
  10. Linux进程管理四大‘名捕’
  11. android绑定服务空指针,android aidl问题空指针的问题
  12. 省级面板数据(1990-2019):能源消费(煤炭、焦炭、石油、原油等)excel或stata版本
  13. 判断单链表是否中心对称算法
  14. 计算机被管理员限制怎么解除,Win10系统管理员账户被禁用如何解除?
  15. Day05_Manuals for Python@lisongye-元组/字典
  16. html5积分墙联盟,积分墙平台有哪些(全面解读积分墙)
  17. [读后感]从Code Review 谈如何做技术
  18. 在windows和Deepin上安装Fedora33-KDE:一波三折、第九次成功的嘤嘤怪
  19. python:画python,即绘制蟒蛇图像
  20. SpringCloud - 服务注册中心

热门文章

  1. 安装并配置php,配置eyeOS系统--4--安装并配置PHP及eyeOS所需软件
  2. 脑空间管理神器:SpaceSniffer
  3. 使用Window Media Player网页播放器
  4. 约租车管理办法近期公布 数量或受地方政府管控
  5. 20佳用于手绘风格网页设计的字体素材
  6. ciObjectFactory::create_new_metadata
  7. HTML5期末大作业:漫网页网站设计——爱影评在线电影(10页面)) 学生动漫网页设计模板下载 大学生HTML网页制作作品 简单漫画网页设计成品 dreamweaver学生网站模板
  8. Android应用实例之----MifareUltralight格式的nfc标签读写
  9. Python生成exe文件的方法
  10. android uri 电话号码,Android跳转到通讯录获取用户名称和手机号码