admin 管理员组

文章数量: 1086019


2024年4月19日发(作者:web中label标签作用)

维普资讯

网 

惑实用第一 

如何用XML在浏览器中显示图像 

扩展标记语言(XML)以其结构规范,扩展性强,数据存 

储和表现分离,自定义标签等特点而备受世人注目,自从其 

问世以来.发展的步伐一刻也没有停止。目前其应用已经延 

伸到信息发布、多媒体展示、电子商务、通用数据交换、图 

形的矢量化表示等多种领域。但是,由于该语言不象HTML 

那样有许多开发工具支持,目前在web信息发布方面还不是 

非常普及,但由于其优良特性,取代[-ITML成为新一代的数 

据交换标准和]ntemet语言,已经是大势所趋。下面我们就用 

该语言来实现一个显示图像的XML程序,和大家交流和学 

习。 

XML语言的核心包括三个方面,即XML大纲、XML文档 

和)(sLT。其中XML大纲定义了XML文档的数据结构、语法 

及所使用的标签集合,它是一种规则的规则,类似于c、 

c++和Java等高级语言中的sLruet和class定义,非常重要。 

而XML文档则是XML大纲的宴例化.用于描述具体的实例数 

据。由于XML语言中,数据的结构和数据的表现是分离的, 

要想在潮览器中正确地显示具体的XML文档,就必须有一种 

机制来表现它,这就是)(sLT的作用.即扩展级联样式单:按 

照XML语言的特点,我们把用XML显示图像的方法,分为以 

下三步来实现。 

第一步,设计并开发图像的XML大纲 

XML大纲中,重要的有几个地方.一是正确理解“名 

域 ,说白了,“名域 实际上对元素和元素属性的限定, 

以防止多个文档组合时,元素及其属性的重名冲突,它的作 

用和Java中的包(package)、c#中的命名空同(name@ace) 

差不多,下列代码中,Schema标签中的xmlns= 121712: 

SChem膻一microsoft—corn:】江Ⅱl—data'’和xIIlll珀: =“LlrrI= 

schemas—microsoft—COil1:datatypes 都是名域。其次是如何定义 

元素、元素的属性以及怎样使用处理指令等语法规则等。XML 

大纲中,元素用ElementType标签定义,用element标签引 

用。而元素的属性用AttdbuteType定义,用attribute标签引 

用 

要在Intornet网上描述一幅图像,最基本的有图像的宽 

度、高度、图像源(即URL)等要素,以下便是根据XML大 

叶兴茂 

纲的规则定义的图像XML大纲。 

(?xml version= 1 0 encoding= gb2312 7> 

(Schema xmins= u rn:schemas—mlcrosoft—com xml— 

clafa 

×mIns:dt=’u rn:schemas—microsoft—tom:0a伯types > 

(1一一Thls schema deflnes XML document malnly used 

for show 8image一一> 

(1一一define image element including child nodes com 

ment,source.width and height一一> 

<ElementType name= comment /> 

<ElementType name= SOU rce /> 

<E;ementType name= width /> 

(ElementType name= height /> 

<ElementType name= image content= eltOnly ) 

<element type: tomment > 

(element type= sou rce > 

(element type= width /> 

(element type= height /> 

(/ElementType> 

<f一一define link element including child nodes href and 

text一一> 

(EiementType name= href /> 

(ElementType name= text /> 

<EiementType name: 0nk > 

<element type= href /> 

(eIement type= text /> 

(/ElementType> 

(f一一define message element including child nodes 

E Mal and content一一> 

<ElementType name= E

M > 

<ElementType name= content /> 

<ElementType name= message > 

(element type= E

Ma¨ /> 

(element type= content ) 

</EiemeetType> 

<ElementType name: myWeb content= eltOnly > 

<e ement type= link /> 

<element type= message /> 

<element tvpe= image /> 

</EiementType> 

</Schema> 

维普资讯

实用第一 

图像YuML大纲中,定义的主要标签有image、comment、 

source、width和height等.用于描述图像及其宽度和高度等属 

性 同时也定义 类似于HTML语言中a标签的link超链接标 

签,用于定位具体的网络资源 显然,这些自定义的标签要比 

那些死板的HTML标签易懂得多,望文知意,一目r然 

第二步.编写规范的图像XML文档 

使用上面定义的图像XML大纲,就能够描述具体的图像 

对象,编写XML文挡了,代码如下所示: 

<?xml version= 1 O encod ng= gb2312 ) 

<7xml stylesheet type=text/ ̄sI href: image×s} > 

(myWeb xmlns= x—schema:image schema xml> 

<¨nk> 

<href>h ̄p: /www mir gov cf3</h ref> 

<text> ̄.辽浏览国=资渭部网站</te x1> 

(,Iink> 

<image> 

<comment>show a image by XML<.,'cora1]lent> 

<sou rce>images scene ̄JPg(/source> 

<height>250<,height> 

<width>680< wl—l1> 

<,/image> 

<message 

<EJVlail>mailto:info xmye@mail mlr gov CM(/Ejr1al{) 

<content)童口需源代码请与作者联系<./content> 

</message> 

<,mvWeb> 

这里的图像XML文挡描述了一个超链接,一幅图像和一 

个E Marl地址 超链接指向国土资源部网站,而图像描述的 

是一幅非常美丽的大陆风光,其数据源是images/ 

8 ̄enery.jpg,宽度680像素.高度250像素。E_Md地址、即 

是作者的电子邮箱,点击它可与作者联系。看到这些标签,略 

懂英语的人,即使不明白XML的语法,也能知道其基本含 

望。 

第三步,XSLT表现图象的XML文挡 

虽然定义了图像XML大纲和图像XML文挡,但是,浏览 

器并不认识这些东西,要想让浏览器显示出来,还必须为其定 

义表现方式,这时候,XSLT就发挥作用了,它把XML文档翻 

译成其它形式的数据结构,供浏览器显示.目前如微软的 

IE5.0支持的格式是EHTML,即扩展超文本标记语言,它也 

是符合XML规范的结构良好的XML文档 

< xml version=“。0 > 

<n1ml xmlns:xsi= http: www w3 org/'TR/WD—xs1) 

<body style= font—famllv:Ar a helvetica.saqs—serif; 

font—size:9 5pt: 

border:1 em; 

backg round—co or#FEEEEE ) 

<div style=margin—le t 1 0px;ma rgin—bottom:1 am; 

font—size:9pt > 

<!一一<xsl for—each select= myWeb {mace>一一> 

智慧瞧 

网; 釜 

<center> 

<a style=font—alze 2e 。c@or:red) 

(xsl:attribute na e=1 ref > 

<xsl:value—of select=myWeb/'link【O】 qref/> 

< xsl:attribute> 

<xsl:value—of select:myWeb'link【0]text /> 

</a> 

(b r/)<b r/> 

<Img 

<xs}att rlbute rlame=S rc ) 

<xal:value—of select=myWeb...image.'sou rce ) 

</xs}attribute) 

<xsl:attrlbute rlame= d:h> 

<×s value—of select: Web image/wiath/> 

</xs}:attribute) 

<xsl:attrlbute flame=heign: 

(xsl value—of select=。myWeo image height ) 

</xs}。att ribute) 

</imq> 

(br/><br/> 

<span) 

<P style= font—size:2era > 

<×s}:value—of select=’myWeb/image/commeqt -) 

</p> 

</span> 

<a style= fOnt—size:1 5em colo r:blue> 

<xsl:attrlbute na e= href ) 

(XSk va ̄ue—of select= myWeb/message/E_Ma > 

< xsl’attribute> 

<xsl:value—of select= myWeb."message c0nten ) 

< a> 

</center> 

<l一一</xsl for—eac1>一一 

(,div> 

<31oaV> 

</htm> 

上述代码和HTML差不多,只要熟悉HTML,很容易掌 

握:这里使用了名域xmlns;xsl=http:// w3 org/l ̄/ 

WD—xst,其局部名称是x8l:标签attribute、value—of、for— 

each等均受其约束。其中for—each标签类似与高级语言中的 

循环语句.用来通过模式匹配遍历并转化满足条件的XML诼 

树:XSLT的语法完全是规范的XML,这也体现了XML的简 

单性,一种文法走天下。要注意的是EHTML是结构良好的文 

挡,而HTML却不是。两者最主要的区别是EHTML中的所有 

标签都是封厨的,型如‘p>、(/p>、(br/>等格式,象 

HTML中‘p>、<hr>- ̄标签在XML文挡中,再也行不通了。 

但它们转换起来并不麻烦和复杂,只要使这些不封闭的标签封 

闭起来,就可以了,如把‘p>变成‘p/>,(br>变成(br/>: 

本文中涉及的代码在IE5.0浏览器中,经过严格测试 

(牧稿呈期:2001年2月16 j) 

a嘲 蛹咖蛳两 攀;嘲 譬螭 57 


本文标签: 图像 标签 语言 元素 描述