- 浏览: 1586965 次
- 性别:
- 来自: 吉林
文章分类
- 全部博客 (624)
- C/C++ (33)
- Java (181)
- 网络相关 (7)
- 我爱篮球 (3)
- 也爱足球 (4)
- 杂谈 (1)
- 系统架构 (3)
- Web Service (14)
- Framework (3)
- 系统命令 (8)
- 管理平台相关 (8)
- 其它 (35)
- Websphere (1)
- Struts2 (24)
- Hibernate (16)
- Spring (23)
- javascript (20)
- jquery (23)
- html/css/div (28)
- 数据库 (40)
- JavaWeb (27)
- 设计模式 (2)
- 文档编写 (3)
- SVN (5)
- Ant (1)
- Maven (13)
- 软件项目管理 (8)
- AOP (1)
- kindeditor (1)
- JSON (2)
- Servlt/JSP (4)
- WordXML (2)
- XML (12)
- 面试相关 (7)
- Tomcat (11)
- 性能与调优 (29)
- 职业发展 (2)
- 操作系统 (7)
- AJAX (2)
- DWR (1)
- Eclipse (12)
- 持续集成 (3)
- 批处理命令 (1)
- Mozilla Rhino (2)
- 新鲜技术 (18)
- Apache mina (2)
- 底层技术 (18)
- Linux (22)
- 新鲜技术,IT历史 (1)
- 敏捷开发 (1)
- 版本控制 (5)
- 较火技术 (7)
- 集群 (2)
- Web前端 (13)
- 报表工具 (3)
- 网站架构 (5)
- 大数据 (8)
- 分布式存储 (5)
- 云计算 (8)
- TCP/IP协议 (1)
- 负载均衡 (3)
- 硬件 (1)
- 表现层技术 (3)
- Velocity (3)
- jvm (6)
- 并发编程 (10)
- hadoop (8)
- 数据结构和算法 (12)
- 计算机原理 (1)
- 测试驱动开发-TDD (3)
- 开发技巧 (1)
- 分词器 (1)
- 项目构建工具 (2)
- JMX (4)
- RMI (1)
- 测试技术 (22)
- 网络完全 (1)
- Git (4)
- apache开源包 (4)
- Java常用 (1)
- mock (2)
- OSGi (2)
- MongoDB (1)
- JBPM (1)
- Storm (3)
- mysql (2)
- telnet (1)
- 正则表达式 (1)
- bootstrap (4)
- Apache ActiveMQ (1)
- redis (9)
- Nginx (2)
- rsync+inotify文件同步 (2)
- testng (1)
- 原型设计工具 (1)
- 工程能力 (1)
- 风险控制 (3)
- ibatis (1)
- 分布式 (4)
- 安全技术 (1)
- 计算机基础 (4)
- 消息中间件 (1)
- UML (2)
最新评论
-
u012236967:
java命令执行jar包(里面的main函数)的方式(包括依赖其它的jar包问题) -
世界尽头没有你:
Selenium自动化测试从入门到精通(Java版)百度网盘地 ...
自动化测试工具 Selenium WebDriver 入门教程(针对主流浏览器) -
小小西芹菜:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
dwr实现Reverse Ajax推送技术的三种方式 -
hellozhouqiao:
楼主,请教一点问题.现在我们需要在excel 的页脚里面加上图 ...
FreeMaker + xml 导出word(处理目录,图片和页眉页脚问题) -
乱在长安:
使用Timer会有各种各样的问题好嘛?!书上推荐使用Sched ...
DelayQueue (ScheduledThreadPoolExecutor调度的实现)
基本的XML Schema的使用就是这样,下面我们要介绍XML Schema的另外一个核心的部分也是Schema最关键的一个部分,就是关于Schema的名字空间(namespace)的问题。在上面关于XML Schema的介绍中,为了把读者集中到对XML Schema的语法理解上,特意省略了关于名字空间(namespace)的介绍。
首先我们还是从简单的例子着手,见下面的一段代码:
<xsd:schema targetNamespace='http://www.SampleStore.com/Account'
xmlns:xsd='http://www.w3.org/2000/08/xmlSchema'
xmlns:ACC= 'http://www.SampleStore.com/Account'>
<xsd:element name='订单号码' type='xsd:positiveInteger'/>
<xsd:element name='商品编号' type='ACC:商品编号类型'/>
<xsd:simpleType name='商品编号类型' base='xsd:string'>
<xsd:pattern value='[A-Z]{1}d{6}'/>
<!-上面的一行代码表示商品编码的第一个字符应该为字母,后面跟六个阿拉伯数字 -->
</xsd:simpleType>
现在大家需要把注意力集中到开头几行的代码上来,如下:
<xsd:schema targetNamespace='http://www.SampleStore.com/Account'
xmlns:xsd='http://www.w3.org/2000/08/xmlSchema'
xmlns:ACC= 'http://www.SampleStore.com/Account'>
实际上,一个给定的XML Schema定义了一系列的元素名称,类型名称,属性名称和属性组名称。比如上面的代码中的订单号码、商品编号、商品编号类型等。而这些名称都有它一定的作用范围,类似于C++中的局部变量的概念。而它们的作用范围是什么呢?就是在他们的目标名字空间(target namespace)中是有效的,在上面的代码中,我们可以看到它的目标名字空间为http://www.SampleStore.com/Account。
需要注意的是,目标名字空间的命名必须遵守URL的语义。同时需要注意的是,该目标名字空间并不是指一个具体的文件,仅仅是给它一个名字而已。实际上,在Schema中的定义和声明也可以引用其他的名字空间,我们可以把这种名字空间取名为源名字空间(source namespaces)。每一个Schema必须有一个目标名字空间,但是可以有多个源名字空间。
实际上,在一个给定的Schema中,每一个名称都是属于一个特定的名字空间的。名字空间的名称可能会很长(比如http://www.SampleStore.com/Account),但是它们可以用在XML Schema中的语义xmlns来进行简化。在上面的例子中,我们用xsd(取名为xsd是任意的,比如你可以取名为kkk,tt,ppp,gh都可以)来表示名字空间'http://www.w3.org/2000/08/xmlSchema',用ACC来表示名字空间http://www.SampleStore.com/Account。同时我们把http://www.w3.org/2000/08/xmlSchema这个名字空间称为标准名字空间(standard namespace),因为它是定义Schema语法的标准地。
在上面的代码中,目标名字空间(targetNamespace)包含了名字订单号码、商品编号、商品编号类型。而名字schema,element,simpleType,pattern,string和positiveInteger是属于标准名字空间http://www.w3.org/2000/08/xmlSchema的。也就是说,它们的意义是在http://www.w3.org/2000/08/xmlSchema中进行定义的。实际上,所有标准的XML Schmea 语法、语义和数据结构都在http://www.w3.org/2000/08/xmlSchema中进行定义。这样解析器碰到一个名称(如schema,element等等)的时候,就知道应该在哪里去得到关于它的正确的语义的使用方法。
对于标准名字空间和目标名字空间,我们不需要指定它的SchemaLocation。因为对于目标名字空间来讲,SchemaLocation就是文档自己。对于标准名字空间来讲,它是众所周知的,也不需要指定。而对于源目标空间来讲,就需要指定它的SchemaLocation。见下面的例子:
<schema targetNamespace='http://www.SampleStore.com/Account'
xmlns='http://www.w3.org/1999/xmlSchema'
xmlns:ACC= 'http://www.SampleStore.com/Account'
xmlns:PART= 'http://www.PartnerStore.com/PartsCatalog'>
<import namespace='http://www.PartnerStore.com/PartsCatalog'
schemaLocation='http://www.ProductStandards.org/repository/alpha.xsd'/>
<element name='订单号码' type='positiveInteger'/>
<element name='商品编号' type='ACC: 商品编号类型'/>
<simpleType name='商品编号类型' base='string'>
<pattern value='[A-Z]{1}d{6}'/>
</simpleType>
<element name='手表' type='PART:手表类型'/>
在谈关于源目标空间的schemaLocation之前,我们先看一下这行代码:
xmlns='http://www.w3.org/1999/xmlSchema'
它表示什么呢?它表示在文档中所有的名字前面如果没有前缀的,就是由http://www.w3.org/1999/xmlSchema进行定义和解析的。这样无疑是很合理的。因为事实上,我们XML Schema中的很多名称(比如schema,element,simpleType,pattern等等)都是来自这个标准名字空间的,反复往前面加前缀,你烦不烦呀?所以干脆把它定义成默认的,所以如果一个名称前面没有前缀,就认定它是由http://www.w3.org/1999/xmlSchema进行处理的。
好,接下来我们来注意
<import namespace='http://www.PartnerStore.com/PartsCatalog'
schemaLocation='http://www.ProductStandards.org/repository/alpha.xsd'/>
这段代码,因为http://www.PartnerStore.com/PartsCatalog是一个源名字空间,所以必须指定它的schemaLocation,采用关键字import来引入这个schemaLocation。
注意到下面这行代码
<element name='手表' type='PART:手表类型'/>
它表示元素手表的类型(type)手表类型是在http://www.PartnerStore.com/PartsCatalog中进行定义的。解析器如果要寻找关于手表类型的定义,需要在名字空间http://www.PartnerStore.com/PartsCatalog下进行寻找。
发表评论
-
WebService与RMI的区别及协作
2014-05-19 10:18 1616区别: RMI的客户端 ... -
session和cookie的区别,如何用session和cookie访问共享用户信息
2013-09-13 18:38 1856Cookie的机制 Cookie是浏览器(Use ... -
CXF+Spring+WSDL的Webservice实现(转)
2013-01-16 10:57 1939转自:http://www.blogjava.net/sxy ... -
CXF+Spring实现Webservice(简单例子-转)
2013-01-16 10:51 1289Apache CXF 是一个开放源代码框架,提供了用于方便地 ... -
XML的基本数据类型
2011-08-09 09:36 1643String、decimal、boolean、float、do ... -
理解类8583报文协议(转)
2011-07-18 17:52 3572我刚进入金融行业时, ... -
MQ使用指南(转载的)
2011-03-08 17:03 2764一.MQ基本操作 MQ中有几个很重要的组件:队列管 ... -
Rest与RPC比较
2010-11-10 09:15 8595基本概念 1. rest和rpc架 ... -
深入浅出REST
2010-11-09 14:33 1433【原文地址】:http://www ... -
理解Restful Web Service(二)
2010-11-09 12:58 1788对于restful web service,刚开始确实是个不太 ... -
理解Restful Web Service(一)
2010-11-09 12:56 2423摘 要:本文展示了Http ... -
Schema中elementFormDefault="qualified"所起的作用
2010-09-02 17:13 6107有的xsd文件的开头是这 ... -
Schema中import和include的区别
2010-09-02 16:42 2018http://davidwang.iteye.com/blog ...
相关推荐
XML Schema中命名空间的使用是非常重要的,命名空间可以使我们能够从不同的词汇表中区分定义以及声明。目标命名空间使我们能够区分在XML Schema语言词汇表中的元素声明和在一个其他的假定的化学语言词汇表中的元素...
本实践主要关注如何在XML Schema中限定目标命名空间,以确保数据的一致性和可识别性。 命名空间在XML中扮演着至关重要的角色,它们允许在同一文档中使用相同的名字而不会产生冲突。目标命名空间(Target Namespace...
命名空间、DTD 文件和 Schema 文件的引入 在 XML 文档中,命名空间...命名空间、DTD 文件和 Schema 文件都是 XML 文档中的重要组成部分,它们可以用于约束 XML 文档的内容,确保 XML 文档的正确性和一致性。
4. **System.Xml命名空间**:C#的System.Xml命名空间提供了处理XML文档的类和方法,如XmlSchema和XmlDocument,它们可用于加载和验证XML Schema以及读取和操作XML文档。 5. **XmlSchema类**:该类用于加载和处理XML...
与DTD相比,Schema支持更复杂的数据类型,如整数、浮点数、日期和时间等,并允许定义命名空间,便于处理跨域的XML文档。 **2. Schema的组成部分** - **元素(Element)**: 定义了XML文档中可出现的节点,如`<book>...
总结来说,Oracle中的Schema是数据库对象的容器,它提供了命名空间,用于区分不同用户或不同业务模块的数据。每个用户都有一个默认的Schema,可以拥有和访问多个Schema中的对象。理解Schema的概念对于管理和维护大型...
4. **命名空间**:XML Schema支持命名空间,这使得可以在同一文档中使用来自不同来源的元素和属性。通过使用命名空间前缀,可以避免元素和属性名称的冲突。 5. **约束和验证**:Schema提供了一种强大的方式来约束...
Schema 提供了丰富的数据类型,支持元素的继承和属性组,以及命名空间,克服了DTD的诸多局限。 在Schema中,`<element>`标签用于定义XML文档中的元素,比如`<书本>`,并且可以指定元素的类型,这里类型为`"书本类型...
XML Schema 是基于 XML 的 DTD 替代者。 XML Schema 描述 XML 文档的结构。 XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 在此教程中,你将学习如何在应用...XML Schema 支持命名空间
一本关于XML Schema的打包教程,深入浅出,系统性强,并附有相应实例。
- 命名空间支持:XML Schema支持命名空间,避免了元素名称冲突。 2. 为什么使用XML Schema? XML Schema的优势在于它的数据类型支持和XML语法。数据类型支持使文档内容更容易描述,数据验证更准确,与数据库交互更...
4. **命名空间**:XML Schema支持命名空间,这是解决XML文档中相同元素名称冲突的关键机制。通过使用命名空间,不同的XML文档或Schema可以共享相同的元素和属性名称,而不会产生混淆。 5. **约束和验证**:XML ...
- 处理命名空间:API支持处理XML文档中的命名空间,以便正确解析和验证具有多个命名空间的文档。 在实际开发中,Apache XML Schema API通常与DOM(Document Object Model)、SAX(Simple API for XML)或StAX...
2. **命名空间**:XML Schema支持命名空间,这使得在同一文档中可以使用相同的名字而不引起冲突。通过使用`xmlns`属性,我们可以为元素和类型指定独特的命名空间前缀。 3. **约束和验证**:XML Schema提供了一套...
4. **命名空间管理**:XML Schema支持命名空间,库能有效地管理和处理命名空间,确保正确解析和引用元素和属性。 5. **错误报告**:在验证过程中,如果发现不符合规范的地方,会生成详细的错误信息,帮助开发者调试...
SCHEMA中,我们可以通过`xmlns`前缀来声明和引用命名空间。 6. **限制与约束**:SCHEMA可以设置元素和属性的限制,例如长度、最大值、最小值等,以确保数据的有效性。 7. **模式继承与约束**:通过使用`...
5. **命名空间管理**:处理XML文档中的命名空间,使得可以正确解析包含多个命名空间的文档。 与"xfire"标签相关,可能表明这个库常用于与XFire(现已被Apache CXF替代)这样的Web服务框架集成。XFire是一个基于Java...