| 搜索频道 | 源码下载 | 站长代码论坛 | 文章分类 | 最新专题 | 源码交易 | 加入收藏
首页|资讯|图形图像|网站开发|程序设计|数据库|多媒体|机械电子|办公系列|路由技术|原理|应用|考试|系统
文章搜索:
 您的位置:首页网站开发XML → XML与其相关技术
XML与其相关技术

日期:2006-7-12 11:35:14 人气:     [ ]
上一页 [1] [2] 下一页

   XML有很多相关的技术,将这些技术结合起来,才能充分发挥XML的强大功能。这些技术包括:Xlink与Xpointer(设置XML的超链接)、DOM(Document Object Model:文件对象模型,存取、操作文件的内容)、Namespaces(解决不同元素有相同名称的问题)、XHTML(下一代的HTML)等。

■Xlink与Xpointer

在XML的规范中,我们看到它并没有规定有关文件链接的问题。为了使XML文件也能够有类似HTML文件超链接的功能,W3C制定了Xlink和Xpionter两种规范,其中Xlink是规定XML文件之间的链接规范(和HTML中的外链接相似),Xpointer是规定XML文件中不同位置之间的链接规范(类似HTML中的内链接)。

1.Xlink:Xlink所设定的链接分为Simple Link和Extended Link。其中,Simple Link的链接功能和HTML的超链接基本上一样,而Extended Link则超出了HTML超链接的功能,它链接的对象可以一次设定多个,由多个标记来共同制定该链接。

在XML文件中使用Xlink元素的时候,必须要在DTD中声明这个元素。完整的声明样本如下(本样本声明了一个名为simple的Simple Link 类型的Xlink元素):

〈!ELEMENT simple ANY〉

〈!ATTLIST simple

xml:link CDATA #FIXED"simple"

href CDATA #REQUIRED

role CDATA #IMPLIED

title CDATA #IMPLIED

inline (true|false) "true"

content-role CDATA #IMPLIED

content-title CDATA #IMPLIED

show (embed|replace|new) #IMPLIED

actuate (auto|user) #IMPLIED

behavior CDATA #IMPLIED〉


可以看到,Xlink元素有多种属性,通过对这些属性赋值,可以编制出多种多样的链接方式。下面我们对这些属性作些解释。

Xml:link:指明链接类型是Simple Link还是Extended Link。

href:用来设定链接的地址,与HTML中A标记中的href属性一样。

role:叙述该链接功能,提供给应用程序读取。

title:叙述该链接功能,提供给用户读取,与HTML中A标记的alt属性相似。

inline:有“true”和“false”两种取值,声明建立的链接是否以嵌入方式链接,缺省为“true”。

content-role和content-title:和role、title类似,但它们叙述的是指向的内容,而不是链接的内容。

show:有三种取值,replace表示将链接的内容取代当前的内容,new表示将链接的内容在一个新的窗口打开,embed表示将链接的内容加入到当前的内容中。

actuate:设置该链接是如何被激活。auto表示XML文件被解读后,链接自动被激活。而user表示,该链接必须被用户手动激活,也就是用户必须要用鼠标点击一下该链接。

behavior:设置该链接被激活后,将自动引发一些动作,可用一些指令来设置链接激活后应用程序要作的事情。

当我们在DTD中声明Xlink元素后,就可以在XML文件中使用这个元素。例如:

〈simple href="http://www.cbinews.com/xml.htm" title="这是一篇介绍XML的文章"

role="XML article" content-role="good" cont-title="first" show="new" actuate="user"

behavior="goto zero"/〉


另外一种Xlink链接方式是Extended Link,它的特点是可以一次设定多个链接对象。同样,在使用Extended Link类型的Xlink元素前必须在DTD中声明这个元素。声明方式和Simple Link类型的Xlink元素类似,不同之处有两点,第一,声明xml:link属性时,语句变为:xml:link CDATA #FIXED “extended”;第二,没有任何href属性和任何目标描述,声明Extended Link类型的Xlink元素,必须包括一套包含href定位的子元素。即在声明了Extended Link类型的Xlink元素之后,还必须声明一个xml:link属性值为locator的子元素。例如:

〈!ELEMENT aaa ANY〉

〈!ATTLIST aaa

xml:link CDATA #FIXED "extended"

inline (true|false) "true"

content-role CDATA #IMPLIED

content-title CDATA #IMPLIED〉

〈!ELEMENT bbb ANY〉

〈!ATTLIST bbb

xml:link CDATA #FIXED "locator"

role CDATA #IMPLIED

href CDATA #REAUIRED

title CDATA #IMPLIED

show (embed|replace|new) "replace"

actuate (auto|user) "user"

behavior CDATA #IMPLIED



这样,我们就可以在XML文件中使用定义过的Extended Link的Xlink元素。如:

〈aaa〉文章资料

〈bbb href="http://www.cbinews.com/XML1.htm title="XML入门"/〉

〈bbb href="http://www.cbinews.com/XML2.htm title="XML进阶"/〉

〈bbb href="http://www.cbinews.com/XML3.htm title="XML应用"/〉

〈/aaa〉


当我们通过CSS或XSL将这个XML文件在浏览器中显示出来后,用户点击“文章资料”这个Extended Link的Xlink链接,将会出现一个选单,列出所有子元素中的标题,并将用户带到相应的位置。

2.Xpointer:Xpointer用来设定XML文件内不同位置的链接,和HTML中的内链接类似,但是,Xpointer提供了5种不同的在XML文件内定位的方法,可将地址定位到相应的地方,功能上比HTML中的内链接更为强大。

绝对定位:root()——将地址定位到XML文件中的根元素位置。

属性名(x)——将地址定位到属性值为x的特定属性位置。

相对定位:child(x)——将地址定位到当前地址下的第x个子标记处。

child(x,y)——将地址定位到当前地址下第x个标记名为y的标记处。

child(x).child(y,z)——将地址定位到当前地址下的第x个标记处,然后将这个标记作为当前地址,再找出该标记下的第y个标记名为Z的控制标记。

范围定位:span(Xpointer1,Xpointer2)——选择所有的在第一个Xpointer开始和第二个Xpointer结束之间的内容。其中Xpointer1、Xpointer2表示其他的定位方法。

属性定位:attr(x)——找出第一个具有x属性的标记。

字符串定位:搜寻特定的字符串,然后将地址定位到特定的字符串处。

合并定位:将上述的定位方法进行组合,产生更多的功能。各种定位方法之间用“.” 符号分隔。

■DOM(Document Object Model)

早在HTML中,DOM就有应用了。DOM可以看作是一种ActiveX对象,它绑定封装了一部分文件存取API(应用程序编程接口),使用户能够使用脚本语言(VBScript、JavaScript等)来调用DOM对象,达到存取、操作文件内容的目的。以前在HTML中,我们利用DOM来创建动态网页,在XML文件中,我们同样可以利用DOM来创建动态网页,并且DOM可以用来加载XML文件,并加以解析、截取和操作XML文件中的信息。

IE 5支持XML和DOM的结合应用,提供了四种DOM对象:XMLDOMDocument、XMLDOMNode、XMLDOMNodeList、XMLDOMnameNodeMap。这些DOM对象提供了很多方法和属性,用法同一般的ActiveX对象也没有什么区别。具体的属性、方法可以参阅微软的Web站点。

我们下面举个例子,3.htm这个HTML文件用到了XMLDOM对象,在这个HTML文件中使用JavaScript创建了DOM对象,然后调用DOM对象,将我们前几期讲XSL时的XML文件、XSL文件的例子读入,然后将XML文件依照XSL样式表的设定显示在浏览器中。例:

〈html〉

〈head〉

〈title〉DOM应用举例〈/title〉

〈SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="onload"〉

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。那么应用程序在读到同名元素,如:〈姓名〉、〈电话〉时,就能够区分哪一个是客户姓名、电话,而哪一个又是本单位职工的姓名、电话了。

上一页 [1] [2] 下一页
出处:本站原创 作者:zzcode
 相关文章
·XML入门精解之结构与语法
·用ASP、VB和XML建立互联网应用程序
·在VB6中将XML传入一个TreeView控件
·用PHP实现XML备份Mysql数据库
·XML文件的显示——CSS和XSL
·偷窥HTML与XML之间的秘密
 相关软件
·ASP+XML 精美留言本
·E路XML留言本(Elook XML GuestBook) v1.0 无组件..
·爱上网XML自助链接
·JOB571.COM即插即用自助友情链接(XML版)
·XML 编程从入门到精通(PDF)
·厦门普工招聘网XML留言簿
·XMLBlueprint XML Editor v3.6
·Altova XMLSpy 2005 SP3 企业特别版
·Ektron eWebEditPro+XML v4.2.0.11 特别版
·XMLwriter v2.5 特别版
 

 热点文章

·用ASP、VB和XML建立互..
·XML新增批注、处理指令..
·XML 中的常见问题
·简单的XML留言板
·带可选项、带图片的无..
·将XML文件链接至HTML网..
·用XML实现国家、省的动..
·XML与其相关技术
·简析JAVA的XML编程
·构造未来Web页面的工具..
·web.xml中的 security..
·使用xmlhttp 实现多文..
·利用XML不离开页面刷新..
·XML入门精解之结构与语..
·SQL Server和XML的集成..

 推荐文章

·端午非物质文化遗产登..
·动态网站Web开发PHP、..
·PS绘中秋佳节的一轮明..
·细谈网页优化和网站优..
·建站常识:如何使用FT..
·如何快速建造一个成功..
·ASP.NET 2.0 中的创建..
·ASP.NET2.0服务器控件..
·在ASP.NET应用中插入f..
·用Photoshop打造逼真立..
·Windows 2003搭建虚拟..
·站长必读:Web创业的1..
·如何测试机房的速度和..
·北京奥运体育图标发布..
·网络视频广告将身价百..