XML只是一个数据标记语言,但是无处不在。
XML是W3C推出的新一代数据交换的标准,可以用于定义Web网页上的文档元素和商业文档,同时还可以用于复杂结构数据的表示和传输,在结构上类似于HTML。
1 什么是XML
XML是Extensible Markup Language的简写,一种扩展性标志语言,它是一种能够让用户自己创造标识的语言,可以存储数据和共享数据。
XML最大的特点就是它的可扩展性。
其实目前看json更完美,但是目前主流框架都是用的XML做各种配置。
XML简单的历史介绍:
- gml->sgml->html->xml
- gml(通用标记语言)–在不同的机器进行通信的数据规范
- sgml(标准通用标记语言)
- html(超文本标记语言)
2 XML的用途
2.1 存储数据
就是XML最基本的用途,用于持久化存储数据,例如web.xml,hbm.xml,beans.xml等。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
<display-name>test</display-name>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.wht.demo.servlet.HelloServlet</servlet-class>
<init-param>
<param-name>startPoint</param-name>
<param-value>5500</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.wht.demo.servlet.FirstServlet</servlet-class>
<init-param>
<param-name>message</param-name>
<param-value>Welcome to FirstServlet</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>login</servlet-name>
<jsp-file>/pages/Singleton.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/Singleton</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/FirstServlet.jsp</url-pattern>
<url-pattern>/FirstServlet.html</url-pattern>
<url-pattern>/FirstServlet.php</url-pattern>
<url-pattern>/FirstServlet.asp</url-pattern>
</servlet-mapping>
<listener>
<listener-class>com.wht.demo.listener.LoginSessionListener
</listener-class>
</listener>
<listener>
<listener-class>com.wht.demo.listener.OnLineListener
</listener-class>
</listener>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/databaseWeb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
2.2 分离数据
XML可以将数据和XML的展现相分离,使数据的组织人员更能够集中精力组织数据。
一些模板技术,还有一些XML框架体现的淋漓尽致,例如ADF,OAF。
2.3 数据交换
有一些老的接口还是交换的XML数据,因为XML同一规范,可以做到不同系统间的数据传输的兼容,当然现在json更好。
Ajax、Web Service、SOA等。
2.4 共享数据
XML是用纯文本存储数据的,也就是可以提供一种与软件和硬件无关的共享数据方法。DOC 是word文档只能用office打开,但是XML这种纯文本的,很多应用程序都可以很轻松的进行读写。
3 XML的技术架构
XML被设计为“什么都不做”,XML数据或XML文档只用于组织、存储数据,除此之外的数据生成、读取、传送、存取等等操作都与XML本身无关!
于是乎,想要操作XML,就需要用到XML之外的技术了:
- 为XML定规则:现在一般使用DTD或Schema技术,当然了Schema技术更为先进!
- 解析XML的数据:一般使用DOM或者SAX技术,各有各的优点
- 提供样式:XML一般用来存储数据的,但设计者野心很大,也想用来显示数据,就有了XSLT(eXtensiable Stylesheet Language Transformation)可扩展样式转换语言
4 XML开发工具
只要能编辑纯文本的工具都可以编写XML
5 知识扩展
5.1 DTD技术☞
文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。
DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。
5.2 Schema技术☞
Schema 是 DTD 的代替者,名称为 XML Schema,用于描述XML 文档结构,即对XML文档做出规范,比 DTD 更加强大,最主要的特征之一就是XML Schema 支持数据类型。 Schema,提纲;提要
-
Schema 是用 XML 验证 XML 遵循的语法
-
Schema 可以用能处理 XML 文档的工具处理
-
Schema 大大扩充了数据类型,而且还可以自定义数据类型
-
Schema 支持元素的继承
-
Schema 支持属性组