XML与其相关技术(2)

xml

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 
var xmlfile=new ActiveXObject("Microsoft.xmldom");

xmlfile.load("2.xml");

var xslfile=new ActiveXObject("Microsoft.xmldom");

xslfile.load("first.xsl");

document.all.item("DOM应用").innerHTML=xmlfile.transformNode(xslfile.documentElement);

〈/SCRIPT〉

〈/head〉

〈body〉

〈DIV id="DOM应用"〉〈/DIV〉

〈/body〉

〈/heml〉  

■Namespaces

考虑一下,当我们建立XML应用的时候,会为具体的行业应用创建特定的DTD,规定可用的元素。有时会出现下面情况——两个同名的元素在不同的地方可能会有不同的含义。例如,我们定义〈title〉这个标记,在书店应用中,这个标记中的字符含义是书的名称,而在人事部门中,这个标记中的字符含义却是人的称谓、头衔。如果我们写一个包含书名、作者、作者身份等信息的XML文件,将在书名和作者身份两个地方用到同样的〈title〉标记,但它们有不同的含义,计算机程序无法分辨哪一个是书名,哪一个是作者身份。这样就给我们的自动化处理带来了问题,这就是Namespaces要解决的问题。Namespaces的概念非常直接——对于每一套特定应用的DTD,给它一个独一无二的标志来代表,如果在XML文件中使用DTD中定义的元素,需将DTD的标志和元素名、属性连在一起使用,相当于指明了元素来自什么地方,这就不会和其他同名元素混淆(像我们的电话号码,两个城市可能存在相同的号码,但是我们在前面用区号将它限定了,一个地方的区号在一个国家中是独一无二的)。在XML中,采用现成的、在全球范围唯一的“域名”作为Namespaces,即用URL作为XML的Namespaces。前面我们学习XSL的时候,实际上就接触到了Namespaces,XSL文件中的标记名称前面都有一个“xsl:”,实际上这就是XSL中元素的Namespaces。声明语句就是:〈xsl:stylesheet xmlns:xsl="http://www.w3.org.TR.WD-xsl"〉,后面的xmlns:xsl="......"。其中,声明中的xsl称为前置字符串,在文件中引用元素时要加上前置字符串,如:〈xsl:templed〉。

例:

〈?xml version="1.0" encoding="GB2312"?〉

〈c:客户名单 xmlns:c="http://www.aaa.com/custom.dtd"〉

xmlns:职工="http://www.aaa.com/employee.dtd〉

〈c:客户〉

〈c:姓名〉张三〈/c:姓名〉

〈c:电话〉028-6666666〈/电话〉

〈c:接待人〉

〈职工:姓名〉李四〈/职工:姓名〉

〈职工:电话〉5555555〈/职工:电话〉

〈/c:接待人〉

〈/c:客户〉

.......  

这个例子在前面定义了两个Namespaces——c:和职工:。在应用元素时,前面都加了特定的Namespaces。那么应用程序在读到同名元素,如:〈姓名〉、〈电话〉时,就能够区分哪一个是客户姓名、电话,而哪一个又是本单位职工的姓名、电话了。

利用Namespaces,我们还可以在XML文件中直接利用HTML的标记,不使用Xlink或Xpionter,也让XML文件具有超级链接、显示图片的功能。在使用HTML标记之前,必须声明它的Namespaces。下面这个例子就是XML和HTML的混合使用。

例:

〈?xml version="1.0" encoding="GB2312" ?〉

〈?xml-stylesheet href="first.css" type="text/css" ?〉

〈data xmlns:HTML="http://www.w3.org/TR/XHTM1"〉

〈book〉

〈title〉XML入门精解〈/title〉

〈HTML:a href="mailto:lionliao@yeah.net"〉

〈author〉作者:张三〈/author〉

〈/HTML:a〉

〈picture〉

〈HTML:img src="zhangsan.jpg" width="80" height="80"〉〈/HTML:img〉

〈/picture〉

〈price unit="人民币"〉价格:$20.00〈/price〉

〈content〉

〈HTML:a href="http://www.cbi.com"〉点击查看主要内容〈/HTML:a〉

〈/content〉

〈/book〉

〈/data〉  

注意:在XML中使用HTML时要严格遵守XML的语法规定,元素必须正确关闭。

通过CSS或XSL可将这个XML文件显示出来,如图1所示。

■XHTML

XHTML最早叫HTML in XML,就是把过去用SGML定义的HTML,用XML来重新定义(不要忘了,XML是一种定义语言的语言)。实际上,XHTML中的标记基本上还是HTML 4.0中的那些标记,各种标记、属性的用法基本不变。只不过因为它是通过XML定义的,所以必须严格遵守XML的规定,不像过去那样随便。那为什么要发展XHTML呢?

现在,手机上网、信息家电等炒得如火如荼,好像什么都应该连到因特网上。XHTML正是适应这种潮流而出现的。大家知道,现在的HTML越来越复杂,而且存在大量的不规范HTML网页(并不是能够在IE、Netscape正确显示就算是规范的网页),而浏览器为了能够适应这种情况,包容了大量五花八门的HTML网页,已经变得非常臃肿(这就是虽然你的HTML语法错误,有时还是能够正确显示出来的原因,设计浏览器的工程师绞尽脑汁来适应、包容错误)。对于PC来说,这不算什么,因为PC的性能已经得到了很大程度的提升,而对于那些掌中设备、信息家电,可没有这么多存储空间可用。XML标准简单但是非常严格,主要目的就是减轻解析器、浏览器的开发负担以及这些软件的体积。一般的XML解析器的体积不过几百KB。根据XML标准定义出来的XHTML当然继承了XML的特性,同时也保留了HTML在表现形式上的优越性,它摒弃了HTML中的“不干净”代码,提供了良好的可伸缩性,可大可小。

XHTML通过将过去的HTML功能,按照使用者的需要和浏览器的能力,划分为多个模块,每一组模块仅支持部分HTML标记。针对于特定模块开发的解析器、浏览器显然比大而全的解析器、浏览器体积要小得多。这就达到了“可小”的目的。比如说:掌上电脑屏幕本身很小,显然它浏览网页的时候不需要使用HTML中的“Frame”功能,那么针对这种设备,有它专门的一套适用的、不包含“Frame”的标记。当然,每个模块都需要有它们的专用DTD来声明可以使用哪些标记。现在W3C已经定义好了几种专用的DTD。

“可大”呢?实际上就是利用XML的特点,XML是什么?可扩展标记语言呀!以前,HTML中的标记是已经定义好了的,是不能够改变,只能拿来使用,而XHTML就可以像XML一样,能够自定义标记。

使用XHTML和使用HTML基本上一样,不过要注意的是,我们再不能偷懒了。XHTML也像XML一样,首先必须是Well-Formed。规则如下:

1. 标记必许正确结束。

2. 标记与标记之间不允许交叉嵌套。像以前的“〈i〉斜体〈b〉粗斜体〈/i〉〈/b〉”这样的语句是不行的,而必须写成“〈i〉斜体〈b〉粗斜体〈/b〉〈/i〉”才合格。

3. 空元素(开始标记与结束标记间无内容)必须按XML的规定写成〈元素名/〉。

4. 属性值必须用“ ”号括起来,像以前的“〈td width=100〉”的语句必须改写成“〈td width="100"〉”。

5. 属性都要赋值。以前有些标记的属性如果不赋值,它就取缺省值,在XHTML中,必须明确地给它赋值。

6. 标记名称、属性名称都用小写字母。

7. 使用正确的根元素加上Namespaces。

8. 〈head〉〈body〉不能够省略。〈title〉必须是〈head〉中出现的第一个子元素。

9.原来HTML网页中的VBScript、JavaScript、样式表区域,必须像XML的CDATA区一样包装起来,如:

〈script language="JavaScript"〉

〈![CDATA[

......

if (i 〈 3 &&&& ......

]]〉

〈/script〉  

满足了上述条件,并不表示XHTML就是最好的,而仅仅是格式正确的XHTML文件,需要正确地引用DTD,才成为真正正确的XHTML。W3C已经定义了三种XHTML的DTD供大家使用,它们分别是Strict、Transitional、Frameset。从现在开始,写HTML网页时就需要按照XHTML的规定来写,并且最好不要用font之类的标记,尽量使用CSS来表现你的HTML网页。等到XHTML、XML普及了,你就会暗笑了,因为你实现网页转换是非常容易的。

本系列讲座介绍了XML的语法、结构以及相关的一些技术。并非了解这些,就能够使用XML了。有关XML的具体开发应用现在的讨论也是非常多,如:XML用于电子商务、XML用于文档管理、XML用于数据驱动应用程序等。我们学习XML,关键就是要在以后的开发中应用它,明白了XML的基础知识,将会在应用开发中起到重要作用。

时间: 2024-11-01 08:03:21

XML与其相关技术(2)的相关文章

XML与其相关技术(1)

xml <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  XML有很多相关的技术,将这些技术结合起来,才能充分发挥XML的强大功能.这些技术包括:Xlink与Xpointer(设置XML的超链接).DOM(Document Object Model:文件对象模型,存取.操作文件的内容).Namespaces(解决不同元素有相同名称的问题).XHTML(下一代的HTML)

XML 和 Java 技术: 数据绑定的多种用法

xml|数据 除将 XML 用作一种简单数据格式之外,数据绑定是 XML 最流行的用法之一.即使刚刚入门的程序员也能在一种原生编程语言中使用 XML,并且在大多数情况下完全不需要任何的 XML 专门知识.本文并不是介绍解决方案,取而代之,Brett 介绍了一些讨论主题,鼓励您思考如何使用 XML 和数据绑定.欢迎在 XML 和 Java 技术讨论论坛上与别人一起分享您的想法. XML 用于业务而非技术 随着 XML 的日趋盛行,人们也越来越注重可用性.换句话说,程序员和管理者并不希望把 XML

WEB打印的相关技术分析

web|web打印 WEB打印的相关技术分析 现有的Web打印控制技术分成几种方案 自定义控件完成打印 利用IE自带的WebBrowser控件实现打印 利用第三方控件实现打印 以下主要谈前两个方面的内容 一. 自定义控件方式 自定义控件方式就是利用VB或VC等工具生成COM组件,用定义好的打印格式来分析打印源文件从而实现打印.只有将生成的组件下载并注册到客户机上,才能实现在客户端的打印. 难点主要是定义打印格式.如何来分析打印源文件.现有的比较好的方法是利用XML技术来全面的解决问题,利用XML

GIS相关技术之一:Symbol编辑器

前言 随着信息技术日新月异的高速发展,GIS技术也随之产生,为地理信息管理开创了新的模式.它的应用越来越广泛.当然这都不是本文讨论的东东!! 介绍 本文涉及的Symbol来源于ArcGis,所以只针对对GIS有一定经验的朋友与我共同学习.主要参照ArcGis--ArcObjects Developer Help. 使用说明:下面是对FreeMap工程的描述: 1.文件 FreeGis.dll // 主体对象库 Geometry.dll // 几何体对象库 Symbols.dll // Symbo

前端设计横向发展:学习与前端打交道的相关技术

文章描述:前端设计横向发展:学习与前端打交道的相关技术. 今天的交流会上,提到了"横向发展"这个词,意指推荐大家学习与前端打交道的相关技术,如:php 其实"前端"这个词,是2005年才逐渐在国内兴起的.那之前,国内的网站,通常是TABLE+ASP搞定一切.做这份工作的人,通称"程序员". 那是个孤军奋战就能赢得天下的年代.一个网站丢过来,一个人就全拿了:"写需求==>出设计稿==>做模板==>写程序==>运营.

android 爬取手机端数据相关技术解答

问题描述 android 爬取手机端数据相关技术解答 想在公司让做一个android应用程序,就是装在手机端之后可以爬去qq群的聊天记录!小弟现在没有什么头绪!麻烦懂的各位大神提供一下思路! 万分感谢! 解决方案 读取QQ的目录,然后把QQ目录下面的相关文件(这个你要自己分析),也就是聊天记录文件(不排除是数据库),读取到自己的目录或者服务器上,在进行解析就可以了. 解决方案二: 手机上的QQ的聊天记录文件是什么格式,有没有加密?你清楚吗,不清楚这个事情就做不了. 解决方案三: 进入消息管理器,

物联网网关相关技术浅析

物联网架构可分为三层:感知层.网络层和应用层,其中连接感知层和网络层的关键技术即物联网网关.在未来的物联网时代将会扮演非常重要的角色,它将成为连接感知网络与传统通信网络的纽带. 物联网网关相关技术 作为网关设备,物联网网关可以实现感知网络与通信网络,以及不同类型感知网络之间的协议转换.既可以实现广域互联.也可以实现局域互联.此外物联网网关还需要具备设备管理功能,运营商通过物联网网关设备可以管理底层的各感知节点,了解各节点的相关信息,并实现远程控制. 1.移动互联网技术 移动互联网已成为全球关注的

轻松入门Android直播相关技术 从0搭建直播系统

本文讲的是轻松入门Android直播相关技术 从0搭建直播系统,我立马实践了下,所以首先给大家分享下整个搭建的流程: 本人的操作系统为mac,其他系统的同学可以根据提示,自行安装软件. 一个简易的直播系统,大致可以由三部分组成: 搭建一个rtmp媒体服务器 推流端 拉流端 现在目标是快速搭建起来,所以当然是借助开源项目和一些软件: rtmp媒体服务器:这里使用srs 推流端:这里使用obs 拉流端:这里使用播放器vlc rtmp媒体服务器的搭建 这里使用srs,srs的链接为: https://

dtcms-求教DTcms相关技术知识

问题描述 求教DTcms相关技术知识 刚接触DTcms希望懂这方面的多多分享自己的体会和技术经验...