xmlns,
xmlns:xsi,
xsi:schemaLocation, and targetNamespace?
在 MAVEN 的 POM.xml 中,有这样的标签定义:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
问题:
1、project 标签的 属性: xmlns, xmlns:xsi, and xsi:schemaLocation 各是什么意思?
2、它们又有怎样的联系?
3、: 是什么意思?
4、在 xsi:schemaLocation 中有两个 URL,
第一个URL访问不到,第二个URL是 XSD 格式的文档。
如果第一个访问不到,它是用来干啥的?
===
一、xmlns
是 W3C Namespaces in XML Recommendation 的一部分。
xmlns :XML Name Space
首先介绍一下 XML 中标签的命名空间的概念。
命名空间就是标签的前缀,没有前缀的标签,使用的是默认的命名空间。
命名空间是用来解决标签命名冲突的。
指定一个标签的命名空间:命名空间 + 冒号(:) + 标签名
另外:
每一个命名空间都需要有一个 xsd (XML Schema Definition)文件与之对应,
xsd 文件规定了 XML 中使用的标签的名字,以及各种标签的嵌套关系 ——
标签的书写规则 —— 语法
1、默认命名空间
xmlns 这个属性用来定义【默认命名空间】。
直接使用标签名的标签,使用【默认命名空间】进行解析。
如果默认命令空间未声明时,默认值为:
http://www.w3.org/2000/xmlns/
在上例中,指定默认命名空间为:
http://maven.apache.org/POM/4.0.0
2、具有前缀的命名空间
xmlns:xyz 用来定义具有前缀(xyz)的命名空间。
为了使命名空间不发生命名上的冲突,一般都采用网址的形式,作为命名空间的值。
使用前缀作为命名空间的简写。
二、xmlns:xsi
定义了以 xsi 开头的命名空间。
如果值是 http://www.w3.org/2001/XMLSchema-instance,
该命名空间就可以在任何XML文件中直接使用,而无需指定 xsd 文件。
是标准核心命名空间之一。
引用
1.3.1.2 The Schema Instance Namespace (xsi)
This specification defines several attributes for direct use in any XML documents,
These attributes are in the namespace whose name is http://www.w3.org/2001/XMLSchema-instance.
For brevity, the text and examples in this specification use the prefix xsi: to stand for this namespace; in practice, any prefix can be used.
https://www.w3.org/TR/xmlschema11-1/#xsi-namespace
实际上,如果命名空间的值为:http://www.w3.org/2001/XMLSchema-instance
则可以使用任何前缀,而使用 xsi 前缀只是为了简洁而已。
使用该命名空间时,无需指定 xsd 文件。
三、http://www.w3.org/2001/XMLSchema-instance命名空间下的属性:schemaLocation
如上例,使用 xsi 作为 http://www.w3.org/2001/XMLSchema-instance 命名空间的前缀:
xsi:schemaLocation
该命名空间下的 schemaLocation 属性定义了:
非 http://www.w3.org/2001/XMLSchema-instance 命名空间外的其它命名空间
与其 xsd 文件的位置。
格式为(如果存在多个命名空间,可以有多行):
命名空间 命名空间的xsd文件
举例子:
1. <stylesheet xmlns="http://www.w3.org/1999/XSL/Transform"
2. xmlns:html="http://www.w3.org/1999/xhtml"
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4. xsi:schemaLocation="http://www.w3.org/1999/XSL/Transform
http://www.w3.org/1999/XSL/Transform.xsd
http://www.w3.org/1999/xhtml
http://www.w3.org/1999/xhtml.xsd">
解释:
1. 指定默认命名空间为: http://www.w3.org/1999/XSL/Transform
2. 定义一个以 html 开头的命名空间:http://www.w3.org/1999/xhtml
3. 引入特殊的命名空间:http://www.w3.org/2001/XMLSchema-instance
并使用 xsi 作为开头(使用其它字符作为开头也可以)。
4. 使用特殊命名空间的 schemaLocation 属性,为其它命名空间指定 xsd 文件
-
引用请注明,
原文出处:http://lixh1986.iteye.com/blog/2383518
引用:
https://stackoverflow.com/questions/34202967/xmlns-xmlnsxsi-xsischemalocation-and-targetnamespace
-
分享到:
相关推荐
xmlns:xsi是指XML文档遵守XML schema规范,xsi全名:xml schema instance,指具体用到的schema资源文件里定义的元素所遵守的规范。例如,在Spring框架的配置文件中,使用xmlns:xsi=...
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns=... 网站名称 网站描述 <!-- icon元素包含small-icon和large-icon两个子元素.用来指定web站台中小图标和大图标的路径....--small-icon元素应指向web...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx=...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <!-- 父项目的坐标。如果项目中没有规定某个元素...
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
xsi:schemaLocation= "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx ...
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/mvc ...
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=...
1. **定义元素**:XML Schema 可以定义文档中可能出现的元素,包括元素的名称、结构和层次关系。 2. **定义属性**:可以指定元素可能拥有的属性,包括属性的名称、数据类型以及默认或固定值。 3. **定义元素和属性...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>D:\repository\...
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- 指定Acegi资讯的设定档--> <context-param> <param-name>contextConfigLocation...
【项目源码】-java计算机配件报价系统项目 ... xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file>/qiantai/default.
在Spring框架中,`@ImportResource`是一个非常重要的注解,它允许我们在Java配置类中引入XML配置文件,从而将XML中的bean定义合并到Spring容器中。这个特性在Spring Cloud项目中同样适用,因为Spring Cloud是基于...
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd"> <include file="classpath:db/changelog/init-table.xml" ...
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- ...
在XML文档中,你可以通过声明一个名称空间,并使用`xsi:schemaLocation`属性来指定对应的XML Schema文档。例如: ```xml <root xmlns="http://example.com/mynamespace" xmlns:xsi=...
聊天室(ActionScript 3.0实现)<?xml version="1.0" encoding="UTF-8"?> -<web-app xsi:schemaLocation=...
2. **数据类型系统**:XML Schema提供了丰富的内置数据类型,如`xs:string`、`xs:int`、`xs:date`等,同时允许自定义数据类型。 3. **复杂类型定义**:可以定义复杂的元素结构,包括嵌套元素、选择和组。 4. **...