XML的DTD和Schema约束
2015-08-11 22:13
337 查看
为什么要使用约束?
XML是自定义的标签,有时候标签太多,记不住,所以就需要有约束来告诉我能写哪些标签,哪些标签写错了不能识别XML中有哪几种约束?
有很多约束,其中DTD和Schema约束最为常见。约束本质上是什么?
约束本质上也是一种xml文件。DTD约束和Schema约束的区别
特点的区别:
DTD约束较为古老,简单,一些老框架使用DTD作为约束:Struts2和Hibernate都使用DTD作为其XML配置文件的约束Schema约束功能更为强大,用的更为广泛,Tomcat和Spring都使用Schema作为其xml配置文件的约束。
文件的区别:
DTD约束是已.dtd为后缀命名Schema约束已.xsd为后缀命名
语法上的区别:
DTD约束的基本语法:
定义元素:<!ELEMENT 元素名称 使用规则>定义属性:<!ATTLIST 元素名称 属性名称 属性值类型 设置说明>
Schema约束的基本语法:
书写规范跟一个XML文件一样是包含关系根节点是:<xs:schema xmlns:xs="名称空间">
后面的属性节点和元素节点以及文本节点根据使用的需要进行嵌套,也就是说实际使用的时候怎么嵌套在写Schema文件的时候就怎么嵌套
元素节点:<xs:element name="名称"></xs:element>
属性节点:<xs:attribute name="名称" type="类型" use="使用要求"/>
为什么要学习DTD和Schema约束?
不是为了写.dtd或者.xsd文件!而是为了知道约束这个概念,到时候能够在写XML的时候更顺手!
XML中如何引入DTD约束?
dtd文档在本地: <!DOCTYPE 根元素 SYSTEM "DTD文档路径">dtd文档不在本地: <!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文档的URL">
Demo:(来自Struts2的struts.xml)
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
XML如何引入Schema约束?
1、查看schema文档,找到根元素,在xml中写出来2、根元素来自哪个名称空间。使用xmlns指令来声明
3、引入的名称空间跟哪个xsd文件对应?使用schemaLocation来指定:两个取值:第一个为名称空间 第二个为xsd文件的路径
Demo:(来自Tomcat的web.xml)
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
开发过程中如果无法连接到英特网,如何使用约束?
在IDE中给将约束的URI映射到本地即可相关文章推荐
- strlen和sizeof的区别
- hdu1874 畅通工程续(Dijkstra算法,单源最短路)
- Linux下TCP/IP协议栈的简单脉络分析
- 方法重载
- hdu1874 畅通工程续(Dijkstra算法,单源最短路)
- 第一篇 Integration Services:SSIS是什么
- Windows & Linux 下jdk的安装
- MyEclipse上整合spring,mybatis报错
- Java中的引用传递及其使用
- Redis-2.8.17安装配置过程和一些错误
- 浅析 Linux 中的时间编程和实现原理,第 3 部分: Linux 内核的工作
- java堆栈迷宫算法
- 线性表的顺序存储
- Struct2提交表单数据到Acion
- 菜鸟学Android(四十五):EL表达式和EL函数库
- mysql命令
- 表的基本操作
- 检查所有运行的进程,关闭某个指定的进程
- win10 虚拟机中CentOS,Ubuntu无法上网问题
- Java 多线程