关于XML
一 XML解决了哪些现在面临的问题:
现有的HTML对布局、外观等方面很擅长,却极度缺乏对内容的组织和表达能力。所以HTML是设计用来做人机交流的。举个例子:当我们从关系数据库里取得数据,然后运用HTML显示时,是否丢了些什么东西?没错,数据库里的数据都是结构性的,它们以一定的组织结构保存在库中。而我们在用HTML描述这些数据的时候,却丢掉了他们直接的关联关系。因为HTML只注重布局
不同系统间信息的交换:各种系统之间平台的不同等,导致传递信息的不方便。没有一个普遍的东西来做中介,只能花大力气针对各自的需求研发。XML的出现恰好能解决这个问题。
保值:如何长久保存数据是个很头疼的问题,科技的日新月异,在很久很久以后,可能存在这样的情况:长期积累的数据虽然存在,但是却不能被识别,跟丢失没什么两样,更别提对这些数据进行分析、挖掘。
信息定位的更加精确:无论是一些自动化的爬虫程序,还是搜索引擎,都会因为信息内容的更加容易定位而大大提高效率,更会使很多在HTML时代不敢奢求的愿望一一实现。
二 XML中的一些名词缩写:
MathML:一套充分表达数学式子的标注语言。
SMIL:(Synchronized Multimedia Integration Language)多媒介同步整合标注语言。
SVG:(Scalable Vector Graphics)架构在纯文字格式的XML基础上的向量图形格式。跟flash有的一比。
CSS: XML的外观控制
XSL(eXtensible Stylesheet Language):专门为XML设计的样式语言。
XSLT(eXtensible Stylesheet Language Transformation):99年从XSL标准中分离出来,我们现在讲的XSL大多指的是这一块。
--CSS和XSL的区别:
XSL采用的是转换的方式,好比将BIG5码转为UTF-8码。会产生新的文件。
CSS没有任何转换动作,只针对XML中各个成分的外观属性加以设定,整个过程中没有任何新码产生。
--CSS和XSL的相同点:
都是用来设定外观的。
三 XML一些知识点
1 <?xml version="1.0" encoding="UTF-8"?>
-- 这个是XML文件的declaration,version为必须有的属性,encoding如果没有则字码必须为UTF-8
-- 用<? something ?> 括起来的是PI(processing instruction)处理指令.通常是XML用来传递情报给解析器下游程序的.
如:<? xml-stylesheet href = "style.css" type = "text/css" ?>
如:<? xml-stylesheet href = "style.xsl" type = "text/xsl" ?>
2 注释为:<!-- 这里放注释 -->
3 XML文件必须严格遵守格式规范。
4 <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
-- 〈!DOCTYPE 表示开始声明应用外部DTD
-- taglib 为该XML文件的 根元素名称
-- SYSTEM 是指该外部DTD文件是私有的,即我们自己创建的,没有公开发行,只是个人或在公司内部或者几个合作单位之间使用;而 PUBIC 关键字是指该外部DTD是公用的,经过了公开讨论,用PUBLIC的DTD都有一个逻辑名称——DTD-name,我们必须在调用时指明这个逻辑名称。
-- DTD-URL是用URL的方式指明外部DTD文件的位置。
5 XML文件中大小写敏感,标签必须明确关闭且不能有嵌套,所有属性必须用半角双引号括起来。
6 HTML中显示例子或着源代码时用<pre></pre>或<xmp></xmp>,而在XML中要达到此效果用 <![CDATA[ something ]]>
7 XML中的空白字元包括:space tab CR LF四个。其中CR是macos平台的换行记号,LF是UNIX上的换行记号,DOS/Windows平台则使用一个CR后紧跟着一个LF来表示换行。
-- 在CDATA区中,XML不会对其做处理。
-- 在标签中出现,解析的效果会有差异。xml:space = "preserve"用来明确告诉XML程序保留该标签中出现的空白字元。
四 命名空间(namespace)
为了区分来自不同DTD文件定义而名字却相同的元素,所以增加标识。采用的标识同JAVA中包名一样,用各个公司的域名,以确保唯一性。
1 URL、URN、URI的区别
-- URL: Uniform Resource Locator(统一资源定位码)。大致相当于我们常叫的网址,指标有通信协定(如:HTTP、FTP、GOPHER)的字串。
-- URI: Uniform Resource Identifier(统一资源标示码)。比较广义,泛指所有以字串标示的网络资源、范围涵盖了URL和URN。也正是我们这里采用的。
-- URN: Uniform Resource Name.通常用来标示持久且有专门机构负责的资源,如:图书馆的图书总目
2 命名空间声明格式:
<?xml version = "1.0" encoding = "UTF-8"?>
<某元素 xmlns:某前置字符串="http://*"></某元素>
例子:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>
-- xmlns后没有冒号和前置字符串,一律视为在默认的命名空间下。
五 XHTML