XML与其相关技术(1)

2016-02-19 14:48 3 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享XML与其相关技术(1)教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

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

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元素有多种属性,通过对这些属性赋值,可以编制出多种多样的链接方式。下面我们对这些属性作些解释。

编辑推荐阅读
● CSS与XSL简述


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="

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)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"〉

来源:https://www.tulaoshi.com/n/20160219/1607999.html

延伸阅读
标签: Web开发
随着XML 作为一种新的通用数据格式的日渐繁荣, 管理XML文件的工作变得非常的关键. 现在已经出现了很多新的技术使得企业能够更好的将它们的信息作为XML 文件进行管理. 在本文中, 我们将考察XML仓库技术并学习它们是如何帮助我们追赶可扩充的共享数据的未来的.         概览   一个XML 仓库是一个储...
标签: Web开发
  HTML HEAD STYLE .time { behavior:url(#default#time); } /STYLE /HEAD BODY DIV CLASS="time" t:timeline="seq" P class="time" t:dur="1" This appears for one second and goes away /P P class="time" t:dur="1" This appears after one second, remains visible for one second and goes away /P...
标签: Web开发
  举个例子说,假如你想找到所有的lowfat hamburger price元素。为了用标准的DOM API来完成这一切,你必须通过手工地书写代码遍历整颗树来找寻符合条件的元素(在本例中,条件是指在hanburger元素中lowfat=yes的price元素)。再看另一个例子,假设你想将所用的hamburger元素和相关的数据转换为简单的HTML表格以供用户交互使用。使用标准...
标签: Web开发
  schema 一个schema通常是一组为了描述一类给定的XML文档而预先定好的规则。它定义了可以在指定XML文档中出现的各个元素以及和某个元素相关的若干属性。它同时定义了关于XML文档的结构化信息,比如哪几个元素是其他元素的子元素,子元素出现的顺序和他们的数量。它还可以定义一个元素是否为空,能否包含文本或者属性是否有默认值...
标签: Web开发
如今在软件行业,当别人津津乐道XML时,你在旁插嘴问:“喂!你们讲的XML是什么呀?”惨!一句话出口,你就被软件界的时尚快车踢了下去。 为什么?不会这么夸张吧!如今,你不媚俗,就没得混。没看到软件业的老大微软最近炒得火热的office XP, .NET, sql server数据库等等,鼓吹的就是用XML全新打造吗?没有XML来包装自己的新产品,就...

经验教程

585

收藏

25
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部