我是活雷锋

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JavaWeb01_理论

HTML:超文本标记语言
XML:可扩展的标记语言(Extended Markup Language)

xml的两个特点:① 跨平台;② 不同程序之间的数据交流

比方说:
JavaBean对象,通过xml,传递到C语言,C语言解析xml并获得该JavaBean对象
Json对象,通过xml,传递到JAVA,java解析该xml并获得该Json对象
(高级程序语言,基本上都能对xml进行解析)

xml是W3C的一个标准推荐
xml主要被设计用来储存数据和传输数据(而html主要用来显示和组织内容展示给用户)

xml文档的组成包括:

第一:xml声明。例如:

<?xml version="1.0" encoding="UTF-8"?>   //version是版本,encoding是编码集

第二:文档类型定义(DTD):

1、DTD概述

DTD用来定义XML文档的结构,它包含一系列规则说明,以确保XML文档的一致性和有效性
DTD定义了XML文档可用的词汇(元素和属性的名称)和结构
元素名称,包括根元素
元素的属性及属性的数据类型和取值方式
子元素的名称、顺序、出现次数
元素是否拥有子元素,是否能拥有文本内容,等等
可以用DTD验证XML文档
发现书写错误(命名错误)
检查结构和顺序
检查是否使用了规定的规范文档

2、DTD引用
DTD可以是被XML引用的独立的外部文档,也可以嵌入到XML文档中
DTD文档是特殊格式的XML文档
例如:外部文档:

<?xml version="1.0" encoding="UTF-8"?>  
<!ELEMENT 班级 (学生+)>  
<!ELEMENT 学生 (ID, 姓名, 年龄?, 住址?, 电话*)>  
<!ELEMENT ID (#PCDATA)>  
<!ELEMENT 姓名 (#PCDATA)>  
<!ELEMENT 年龄 (#PCDATA)>  
<!ELEMENT 住址 (#PCDATA)>  
<!ELEMENT 电话 (座机*, 手机?)>  
<!ELEMENT 座机 (#PCDATA)>  
<!ELEMENT 手机 (#PCDATA)>    

嵌入xml文档中:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE 班级 [  
    <!ELEMENT 班级 (学生+)>  
    <!ELEMENT 学生 (ID, 姓名, 年龄?, 住址?, 电话*)>  
    <!ELEMENT ID (#PCDATA)>  
    <!ELEMENT 姓名 (#PCDATA)>  
    <!ELEMENT 年龄 (#PCDATA)>  
    <!ELEMENT 住址 (#PCDATA)>  
    <!ELEMENT 电话 (座机*, 手机?)>  
    <!ELEMENT 座机 (#PCDATA)>  
    <!ELEMENT 手机 (#PCDATA)>  
]>  
<班级>  
    <学生>  
        <ID>001</ID>  
        <姓名>王刚</姓名>  
        <年龄>2</年龄>  
        <电话>  
            <手机>234345456</手机>  
        </电话>  
    </学生>  
</班级>  

在XML文档中声明使用外部DTD文档 <!DOCTYPE 根元素名称 SYSTEM “DTD文档URL”> 例如:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE 班级 SYSTEM “student.dtd”>    

在XML文档中声明使用公共DTD文档 <!DOCTYPE 根元素名称 PUBLIC “公共标识符” “URI” > 公共标识符的格式为:标准//作者//类型和版本//语言 例如:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE 班级 PUBLIC “-//WeiDP//Example 1.0//ZH-CN” “student.dtd”>   

3、元素Element
ANY:内容中可包含子元素
格式:<!ELEMENT 元素名称 ANY>

EMPTY:不能包含任何内容
格式:<!ELEMENT 元素名称 EMPTY>

#PCDATA:不能包含子元素
格式:<!ELEMENT 元素名称 (#PCDATA)>

4、子元素的顺序和出现频率
<!ELEMENT 元素名称 (子元素名称[修饰符][,…])>
其中,修饰符为:
省略:必须出现,且只能出现1次
+:至少出现1次
?:最多出现1次
*:可以不出现,也可以出现多次

第三:处理指令:处理指令(PIs)允许文档包含用于应用程序的指令。指令并不是文档字符数据的一部分,但是必须通过应用程序传递。例如:

<?xml-styesheet herf=”hello.css” type=”text/css”?>  //不常用  

第四:注释

第五:根标签(根元素):有且仅有一个

第六:元素

第七:属性

第八:文本

使用
<![CDATA[×××]]>标签 
这里的×××内容不会被xml解析,相当于CSS中的pre标签

xml中标记的使用要求:

标记大小写敏感
属性值用引号
标记成对出现
空标记关闭
元素正确嵌套
必须有声明
必须有且仅有一个根元素

xml元素语法:

名称不能以数字、下划线开头
不能以xml等关键字开头
不能有空格,不能有冒号
可以包含字母、数字和其他字符

DTD:

用于定义xml的结构,并校验我们书写的xml文档是否符合要求
有了DTD文档,每个xml文件都可以携带一个自身描述的文件,不同使用文档的人可以通过通用的DTD来交换数据
Schema文档也有类似的功能

XSL/XSLT :文档转换

XSL语言的全称是EXtensible Stylesheet Language,中文是指扩展样式表语言。
它是为了XML语言而存在的。 
如果说CSS是Html语言的样式表,用来定义Html,控制Html显示。
那么XSL就是为了描述XML文档而存在的,是XML语言的样式表,它的功能相似于CSS对于Html的作用。 
XSLT语言指 XSL 转换(XSL Transformations)。
上面说到XSL语言是为了XML存在的,但XSL不仅仅是样式表。
它包括三部分:XSLT、XPath、XSL-FO。
XSLT:一种用于转换 XML 文档的语言。 
XPath:一种用于在 XML 文档中导航的语言。
XSL-FO一种用于格式化 XML 文档的语言。

Xpath/XQuery:文档查询

//:查找元素
@:获取属性

xml DOM/SAX:文档解析

DOM:

文档对象模型
提供了一系列的接口用于操作xml文档(创建、修改)
基于对象
和平台、语言等无关
缺点:整个文档必须在内存中解析和储存(整个文档全部加载到内存中,大型文档造成内存紧张)
优点:随机访问程序,DOM效率较高(内存操作)

SAX:

xml简单应用程序的接口
sax提供了用于解析xml文档的事件驱动模型
sax解析器使用回调机制来通知客户端应用程序
只读
不能对文档进行随机访问
只能遍历一次
基于事件驱动
占用内存少

Link/XPointer:文档链接和定位

提供很多强大的链接方法,可以建立单项或者复杂的链接方式
可以定位到节点或者节点集(文档定位技术)

posted on 2017-03-12 22:25  我是活雷锋  阅读(133)  评论(0编辑  收藏  举报