在实例中引用模式文档
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属性必须出现在它要验证的任何元素和属性之前(这里的意思是说xsi:schemaLocation属性可以在xml文件中的其他元素使用,例如上面例子的book元素也可以使用该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属性。
相关推荐
"XML中的xmlns、xmlns:xsi和xsi:schemaLocation详解" XML文档中的xmlns、xmlns:xsi和xsi:schemaLocation是三个重要的元素,分别用于定义XML文档的命名空间、XML schema实例和schemaLocation。 一、xmlns xmlns是...
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context ...
web.xml 配置详解 Web.xml 是一个用于配置 Java Web 应用程序的 XML 文件,它提供了站台的配置设定。web.xml 文件位于每个站点的 WEB-INF 目录下,用于定义站台的名称、环境参数、Servlet 的名称和映射、Session 的...
### Liquibase指南知识点详解 #### 一、Liquibase简介 **Liquibase**是一款用于追踪、管理和应用数据库变更的强大工具。它通过日志文件的形式记录数据库的所有更改(包括结构和数据),使得版本控制变得更加简单易...
### web.xml详解 #### 一、引言 `web.xml`是Java Web应用程序中的核心配置文件,用于定义和管理Web应用的各种配置信息。通过深入理解`web.xml`,开发人员可以更好地控制Web应用的行为和特性,提高编程效率与质量。...
### Web.xml详解 #### 一、概述 `web.xml`是Java Web应用程序中的核心配置文件,位于项目的`WEB-INF`目录下。它主要用于定义Web应用的配置信息,如上下文参数、过滤器、监听器、Servlet映射等,对整个Web应用的...
`xsi:schemaLocation` 属性则指定了命名空间对应的XML模式(schema)位置,这对于XML解析器验证配置文件的有效性是必要的。 当涉及到注解配置时,需要在配置文件中引入额外的命名空间,以便可以使用注解相关的配置...
<web-app xmlns="http://java.sun.... 网站名称 网站描述 <!-- icon元素包含small-icon和large-icon两个子元素.用来指定web站台中小图标和大图标的路径....--small-icon元素应指向web站台中某个小图标的路径,...
### Spring MVC框架集成Java Web项目知识点详解 #### 一、Spring MVC框架简介 Spring MVC是Spring框架中的一个重要组成部分,主要用于构建基于Java的Web应用程序。它遵循Model-View-Controller(模型-视图-控制器...
### Spring之AOP配置文件详解 #### 一、前言 在Java开发中,Spring框架因其强大的功能和灵活的配置而被广泛应用于企业级应用的开发。其中,面向切面编程(Aspect Oriented Programming,简称AOP)是Spring框架的...
**JSTL(JavaServer Pages Standard Tag Library)详解与配置** JSTL是JavaWeb开发中的一个标准标签库,它提供了许多预定义的标签,用于简化JSP页面的编写,提高代码的可读性和可维护性。JSTL主要包括核心标签库...
### Spring配置文件详解 #### 一、Spring框架与配置文件的重要性 Spring框架是Java平台上的一个开源框架,它提供了一种轻量级的方式来管理和组织Java应用程序中的组件。Spring框架的核心特性之一是依赖注入...
SSM整合步骤详解 SSM(Spring+SpringMVC+MyBatis)是一种常见的Java Web开发框架整合模式,下面是SSM整合步骤的详细解释: 一、 导入包 在使用SSM框架之前,需要将相关的jar包导入到项目中。这里我们需要引入...
其中`xsi:schemaLocation`属性指定了验证该XML文档所使用的模式文件的位置,即`web-app_2_4.xsd`。 ##### 2. `<description>`、`<display-name>`、`<icon>`标签 这些标签主要用于描述Web应用程序的基本信息,如...
XML_SCHEMA教程详解 XML Schema,简称XSD,是W3C(World Wide Web Consortium)推出的一种用于定义XML文档结构和数据类型的规范。它提供了一种形式化的机制来描述XML文档的合法结构和内容,从而确保XML文档的准确性...
### Spring 定时器知识点详解 #### 一、Spring 定时器概述 Spring 定时器是Spring框架提供的一种方便、高效的定时任务处理机制,主要用于执行周期性的后台任务,如定时发送邮件、短信提醒、数据同步等。Spring ...
《Spring框架中的Context XML配置详解》 在Java开发领域,Spring框架因其强大的功能和灵活性而备受推崇。在Spring中,Context XML配置文件是初始化和管理应用程序上下文的关键,它定义了bean的创建、依赖关系以及...