关于xml的约束DTD and Schema
来源:互联网 发布:网络布线工程合同 编辑:程序博客网 时间:2024/04/29 18:07
首先是对XML的理论(不想看的直接跳过)
XML是一种标记语言
XML设计宗旨是用于传输数据,而非显示数据,在软件系统中常作为配置文件使用
XML采用的是层次结构
示例:
property file: title.name =tom title.font = 12 XML file: <title> <name>tom</name> <font> 12 </font> </title>
通过和property文件的对象发现
property采取的是平面结构
XML采用的是层次结构,更为灵活。
使用XML需要注意的:
1、对大小写敏感 <h1>和<H1> 是不同的XML标签
2、XML中的属性值必须有值,且必须使用“”号引起来
3、不要出现混合式内容 - - 示例如下,一个元素中,要么只包含子元素,要么只包含文本,这样是可以简化解析过程的
<font>test <name>tom</name></font>
4、不能以xml(或XML)开头
5、不能包含空格
6、名称中间不能包含冒号( : ) ---与Schema约束有关。XML文档的组成 :
<!--1、标准XML文档应当以文档头开始-->
<?xmlversion="1.0" encoding="UTF-8" ?>
<!-- 2、文档头之后,便是文档类型定义(Document Type Definition,DTD) -->
示例:
<!DOCTYPE web-appPUBLIC
"-//Sun Microsystems, Inc.//DTD WebApplication 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
CDATA区
在编写XML文件时,若想要某些内容不被解析引擎解析执行,当作文本内容处理
将这些数据放入CDATA区中 示例如下:
<![CDATA[ 内容 ]]>
<![CDATA[
<itcast>
<br/>
</itcast>
]]>
转义字符
对于一些单个字符,若想显示其原始样式,也可以使用转义的形式予以处理。
什么是XML约束 ---DTD andSchema
1、XML约束用于验证和规范XML中可以写什么,不可以写什么,规定每个元素中可以写什么,不可以写什么。
常用于XML约束技术有XML DTD和XML Schema
关于XML DTD
以DTD为文件扩展名的文档,使用DOCTYPE引入
又分为内嵌式的约束和引用外部文件式的约束。
1、引入外部文件的方式:
a)本地DTD导入:
外部导入的dtd文件
导入格式:
<!DOCTYPEbooksSYSTEM"books.dtd">
<!—
books 当前文档根元素
SYSTEM 导入本地文件
books.dtd 导入的约束文件名,需要""号引号来
-->
b)导入公共DTD导入:--可以将DTD约束发布到网上,通过网络url地址导入网络DTD约束文件
导入格式:
<!DOCTYPE 文档根结点 PUBLIC"DTD名称""DTD文件的URL">
例如:<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD WebApplication 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
2、内部导入DTD文件的方式:
<?xml version="1.0" encoding="UTF-8"?><!-- 内部导入dtd -->
<!DOCTYPE books[
<!ELEMENT books (book+) >
<!ELEMENT book (name,author,price)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA) >
<!ELEMENT price (#PCDATA) >
]>
<books>
<book>
<name>thinking in java</name>
<author>tom</author>
<price>99</price>
</book>
<book>
<name>thinking in c++</name>
<author>james</author>
<price>88</price>
</book>
</books>
DTD约束语法
ENTITY(实体引用)用法 :
a)用于xml引用的参数实体:
1、在dtd中定义属性:
<!ENTITY addr "itcast" >
2、在xml中可以通过引用获取值:
<address>&addr;</address>
显示结果:
相当于引用dtd中的实体值,为的是方便利用,直接使用引用便可获取值。
内部定义DTD是无法使用引用实体的。
b)用于DTD文件引用的参数实体
1、dtd中定义属性:
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<! ENTITY % info "name,age,address" > <!--用于dtd内部实体-->
<! ELEMENT user (%info;) > <!--引用了上面的实体,为了简写,复用-->
关于XML Schema
在现今开发中,大量引用了Schema约束,相对于DTD约束,Schema约束更加严谨的约束了XML中
的属性定义。
Schema文件的后缀名为xsd:
Schema文件格式
<?xmlversion="1.0"encoding="UTF-8"?>
<schemaxmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/demo1"
elementFormDefault="qualified">
</schema>
<!--
xmlns :规定了当前xml文件中可以写什么
targetNamespace :为此schema约束文件起名,用于引入此schema文件。
elementFormDefault:未知
-->
在xml中引入Schema文件:
<booksxmlns="http://www.itcast.cn/books"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itcast.cn/booksbooks.xsd">
<!--
xmlns:xsi="....." 表示当前的xml是被schema约束的。
xsi:schemaLocation=".... *.xsd"
由俩部分组成:
1、命名空间
2、真正的将命名空间导入进来,填写的是真实的schema文件的url地址。
-->
一个XML是可以有多个schema约束文件的,在xml中要区分 每个Schema分别约束的元素必须使用前缀来区分。
<booksxmlns:itcast ="http://www.itcast.cn/books"
xmlns ="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itcast.cn/booksbooks.xsd">
这样我们在使用时,只需要给元素添加前缀便可以区分此元素使用的是哪一个schema约束文件。:
<itcast:书架 xmlns:itcast=“http://www.itcast.cn”>
<itcast:书>……</itcast:书>
</itcast:书架>
- 关于xml的约束DTD and Schema
- XML 的 约束 :DTD 、 Schema
- XML的DTD约束和Schema约束
- [xml]DTD & Schema 约束
- xml的约束技术Schema、dtd
- XML的dtd与Schema约束
- XML Schema and DTD
- XML DTD与Schema约束
- XML DTD与Schema约束
- xml文档的DTD约束和Schema约束
- XML DTD约束与Schema约束
- XML的约两种约束——DTD、Schema
- XML的约两种约束——DTD、Schema
- XML的两种约束技术:dtd和schema
- XML的约两种约束——DTD、Schema
- xml语义约束:DTD和Schema
- xml约束之dtd约束和schema约束---3
- xml的DTD约束
- 【xinfanqie】熟知水星无线路由器的安装步骤
- C# 中的Action Func
- 浅谈SQL Server中的三种物理连接操作
- Mysql 体系结构系列之八
- Jquery中的offset()和position()深入剖析
- 关于xml的约束DTD and Schema
- 【转】高并发的epoll+线程池,epoll在线程池内
- VMware里那几个网卡驱动 的连接方式和作用
- 关于MD5加密的问题,在C#中的使用
- Java进阶:Java中堆和栈的区别
- HRBUST 1180 队列模拟
- linux下查看当前用户登录的命令
- 刷屏的
- Java--JDBC--Mysql