<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-> 引入Schema约束
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
   <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
xmlns="http://java.sun.com/xml/ns/javaee" 
  代表没有命名空间的引用,底下标签前面没有命名空间前缀的都是来自xmlns的
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 这个告诉编译器文档遵从W3C标准规则。
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
中间空格,xsi:schemaLocation="{url} {location}" 用于关联自己指定的名字的命名空间 和 文件的位置
它的声明指出了  命名空间关联的  定义的空间 和文件位置,然后可以使用了。像上面的,这样自己定义的名称xmlns就可以使用了,但是它是没有命名空间引用的。所以底下标签前面没有命名空间前缀的都是来自xmlns的

命名空间的概念:类似java中的包。命名空间即元素的命名的一个区间。该区间可以指定名字也可以使用默认的名字。

那么如果要使用Schema编写代码来约束XML文件,那么Schema中必须预先的定义好约束的标签名。但是这些标签又不同于普通的标签因此需要指定命名的空间名。

xmlns:xs="http://www.w3.org/2001/XMLSchema"

该元素是一个属性,该属性必须出现在约束文件的根元素中。

引入约束文件(重点)

  1. 在约束文件的根元素上添加命名空间属性指定所有的约束元素的来自区域
  2. 在约束文件的根元素上添加elementFormDefault=” qualified”指定全局约束
  3. 在约束文件的根元素上添加targetNamespace="URL地址"来指定定义好的约束的名字
  4. 在被约束文件的根元素中使用xmlns:命名空间名来引入指定的约束 <书架 xmlns:jnb="http://www.jnb.com">
  5. 在被约束文件中将所有的元素以4中起的命名空间名作为元素的前缀
  6. 在被约束文件的根元素上使用xsi:schemaLocation="http://www.jnb.com mybooks.xsd"指定约束的具体文件路径
  7. 在被约束文件的根元素使用xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"来指定6中的schemaLocation来自的区域
例子:
xmlns:xs="http://www.w3.org/2001/XMLSchema" 指定了默认的  酷似 java中的默认数据类型,不用特别显示引用指出它来自哪
targetNamespace="http://www.jnb.com" 自己定义了一个目标命名空间的名字
elementFormDefault="qualified" 指定全局
xsd文件:
 <?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.jnb.com" elementFormDefault="qualified">
<xs:element name='书架'>
<xs:complexType>
<xs:sequence maxOccurs='unbounded'>
<xs:element name='书'>
<xs:complexType>
<xs:sequence>
<xs:element name='书名' type='xs:string' />
<xs:element name='作者' type='xs:string' />
<xs:element name="售价">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0" />
<xs:maxInclusive value="120" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="isbn" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

被约束的 xml文件

xmlns:jj= "http://www.jnb.com" 给关联的命名空间 取个 jj的名字
以方便底下用jj的命名空间来引用
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jj:书架 xmlns:jj= "http://www.jnb.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jnb.com mybooks.xsd">
<jj:书 isbn="0001">
<jj:书名>书籍</jj:书名>
<jj:作者>某人</jj:作者>
<jj:售价>100</jj:售价>
</jj:书>
</jj:书架>
 

xml 引入约束文件的更多相关文章

  1. solr配置相关:约束文件及引入ik分词器

    schema.xml: solr约束文件 Solr中会提前对文档中的字段进行定义,并且在schema.xml中对这些字段的属性进行约束,例如:字段数据类型.字段是否索引.是否存储.是否分词等等 < ...

  2. XML的约束(schema)

    XML Schema也是一种用于定义和描述XML文档结构与内容的模式语言,其出现是为了克服DTD的局限性 XML Schema符合XML语法结构 DOM.SAX等XML API很容易解析出XML Sc ...

  3. XML引入多scheme文件约束简单示例

    XML引入多scheme文件约束简单示例,用company.xsd和department.xsd来约束company.xml: company.xsd <?xml version="1 ...

  4. Eclipse引入自定义XML约束文件(DTD,SCHEMA)问题

    Eclipse引入自定义XML约束文件(DTD,SCHEMA)问题 1:说明 使用Eclipse 编写xml文件的约束文件的,包括DTD约束文件,Schema约束文件的时候, 我们也需要接受eclip ...

  5. 作业:xml练习2-写.xml的外部约束文件(dtd文件)

    写外部DTD: 步骤: 1.在srd目录下新建DTD文件,并命名为:scores.dtd 2.在练习1的基础上,剪切练习1的DTD内部声明.粘贴到一个新建的DTD文件中.剪切之后的地方换上:包含外部D ...

  6. Myelipse中xml约束文件的导入(以spring为例)

    为了在电脑处于未联网状态下,beans.xml中书写标签具有提示功能,需要在电脑本地导入约束文件,下面上图 注意:将location后缀添加到key中beans的后面 注意:导入 context,ao ...

  7. 【转】xml文件中加入本地的dtd约束文件

    首先,我是以加载Struts2的来演示: 1 我们可以看到,越是文件中的 显示的是PUBLIC, 即从网络中获取约束文件dtd ,此时我需要将其配置成从自己的本地来获取dit文件 首先,先要有stru ...

  8. Mybatis xml约束文件的使用

    一:准备.DTD约束文件      核心配置文件约束文件:mybatis-config.dtd <?xml version="1.0" encoding="UTF- ...

  9. 在eclipse中引入mybatis和spring的约束文件

    eclipse中引入mybatis约束文件步骤: 首先: config的key值 http://mybatis.org/dtd/mybatis-3-config.dtd mapper的key值 htt ...

随机推荐

  1. 阿里巴巴分布式服务框架 Dubbo

    1.Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点.Dubbo自2011年开源 ...

  2. 兼容的动态加载JS【原】

    兼容的动态加载JS 屌丝就是悲剧,五一还得宅家里写程序专研技术. 说起动态加载JS,搞web的肯定不陌生,著名的YUI库就有强大的模块化的动态加载JS机制.在代码量不断庞大的今天,动态加载JS作用还是 ...

  3. poj 1201 Intervals 解题报告

    Intervals Time Limit: 2000MS   Memory Limit: 65536KB   64bit IO Format: %lld & %llu Submit Statu ...

  4. Informatica 常用组件Lookup之八 查找高速缓存

    可以配置查找转换以高速缓存查找文件或表.PowerCenter 将在处理高速缓存查找转换中的第一个数据行时在存储器中建立高速缓存.它将根据您在转换或会话特性中配置的数量来分配高速缓存区内存.Power ...

  5. Cesium随笔(5)CZML介绍(介个文章是转的嘿嘿)【转】

    通过czml可以在cesium上实现非常棒的动态效果 (1)Cesium Language (CZML) 入门--CZML Structure(CZML的结构) 原文地址:https://github ...

  6. 宿主机为linux、windows分别实现VMware三种方式上网(转)

    一.VMware三种方式工作原理1 Host-only连接方式  让虚机具有与宿主机不同的各自独立IP地址,但与宿主机位于不同网段,同时为宿主主机新增一个IP地址,且保证该IP地址与各虚机IP地址位于 ...

  7. C++类模板的三种特化

    说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多.我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型: 二是特化为引用,指针 ...

  8. IOS之UITabBarController

    在学习IOS开发过程中,针对于UITabBarController的使用也不少出现,UITabBarController和UINavigationController类似,UITabBarContro ...

  9. JSP简单练习-定时刷新页面

    <%@ page contentType="text/html; charset=gb2312" %> <%@ page import="java.ut ...

  10. GeSHi——通用语法高亮显示

    Examples Category Examples Views ActionScript 2 46173 Ada 3 27881 Apache configuration 2 40029 Apple ...