唐山网站建设

设为主页 加入收藏 繁體中文

轻松学习手册(3)XML的术语

核心提示:初学XML最使人头疼的就是有1大堆新的术语概念要理解。

第3章 XML的术语

导言

初学XML最使人头疼的就是有1大堆新的术语概念要理解。由于XML本身也是1个崭新的技术,正在不断发展和变化,各组织和各大网络公司(微软,IBM,SUN等)都在不断推出自己的见解和标准,因此新概念漫天飞就不足为奇了。而国内又缺少权威的机构或组织来对这些术语正式定名,你所看见的有关XML的中文教材大部份是靠作者本身的理解翻译过来的,有些是正确的,有些是毛病的,更加妨碍了我们对这些概念的理解和学习。

你下面将要看到的关于XML术语的解释,也是作者本身的理解和翻译。阿捷是以W3C组织发布的XML1.0标准规范和相干的正式说明文档为根据来讲述。可以确保这些理解是基本正确的,最少不是毛病的。你假设想进1步浏览和了解,我在本文的最后部份列明了相干资源的出处和链接,你可以直接访问。好,我们转进正题:

1、XML文档的有关术语

甚么是XML文档?知道HTML原代码文件吧,XML文档就是用XML标识写的XML原代码文件。XML文档也是ASCII的纯文本文件,你可以用Notepad创建和修改。XML文档的后缀名为.XML,例如myfile.xml。用IE5.0以上浏览器也能够直接打开.xml文件,但你看到的就是"XML原代码",而不会显示页面内容。你可以将下面代码存为myfile.xml试试:

以下为援用的内容:

XML轻松学习手册

ajie

ajie@aolhoo.com

20010115

XML文档包括3个部份:

1、1个XML文档声明;

2、1个关于文档类型的定义;

3、用XML标识创建的内容。

举例说明:

以下为援用的内容:

 

QUICK START OF XML

ajie

......

其中第1行就是1个XML文档的声明,第2行说明这个文档是用filelist.dtd来定义文档类型的,第3行以下就是内容主体部份。

我们来了解XML文档中有关的术语:

1、Element(元素)

元素在HTML我们已有所了解,它是组成HTML文档的最小单位,在XML中也1样。1个元素由1个标识来定义,包括开始和结束标识和其中的内容,就象这样:ajie

唯1不同的就是:在HTML中,标识是固定的,而在XML中,标识需要你自己创建。

2、Tag(标识)

标识是用来定义元素的。在XML中,标识必须成对出现,将数据包围在中间。标识的名称和元素的名称是1样的。例如这样1个元素:

ajie

其中就是标识。

3、Attribute(属性)

甚么是属性?看这段HTML代码:word。其中color就是font的属性之1。

属性是对标识进1步的描写和说明,1个标识可以有多个属性,例如font的属性还有size。XML中的属性与HTML中的属性是1样的,每个属性都有它自己的名字和数值,属性是标识的1部份。举例:

ajie

XML中属性也是自己定义的,我们建议你尽可能不使用属性,而将属性改成子元素,例如上面的代码可以改成这样:

以下为援用的内容:

ajie

<***>female

缘由是属性不容易扩充和被程序操纵。

4、Declaration(声明)

在所有XML文档的第1行都有1个XML声明。这个声明表示这个文档是1个XML文档,它遵守的是哪个XML版本的规范。1个XML的声明语句就象这样:

5、DTD(文件类型定义)

DTD是用来定义XML文档中元素,属性和元素之间关系的。

通过DTD文件可以检测XML文档的结构是否是正确。但建立XML文档其实不1定需要DTD文件。关于DTD文件的具体说明我们将在下面单独列项。

6、Well-formed XML(良好格式的XML)

1个遵照XML语法规则,并遵照XML规范的文档称之为"良好格式"。假设你所有的标识都严格遵照XML规范,那末你的XML文档就不1定需要DTD文件来定义它。

良好格式的文档必须以1个XML声明开始,例如:

其中你必须说明文档遵照的XML版本,目前是1.0;其次说明文档是"独立的",它不需要DTD文件来验证其中的标识是否是有效;第3,要说明文档所使用的语言编码。默许的是UTF⑻,假设使用中文,你需要设置为GB2312。

良好格式的XML文档必须有1个根元素,就是紧接着声明后面建立的第1个元素,其它元素都是这个根元素的子元素,属于根元素1组。

良好格式的XML文档的内容书写时必须遵照XML语法。(有关XML语法我们将在下1章仔细讲授)

7、Valid XML(有效的XML)

1个遵照XML语法规则,并遵照相应DTD文件规范的XML文档称为有效的XML文档。留意我们比较"Well-formed XML"和"Valid XML",它们最大的差别在于1个完全遵照XML规范,1个则有自己的"文件类型定义(DTD)"。

将XML文档和它的DTD文件进行比较分析,看是否是符合DTD规则的进程叫validation(确认)。这样的进程通常我们是通过1个名为parser的软件来处理的。

有效的XML文档也必须以1个XML声明开始,例如:

和上面例子不同的,在standalone(独立)属性中,这里设置的是"no",由于它必须和相应的DTD1起使用,DTD文件的定义方法以下:

其中:

"!DOCTYPE"是指你要定义1个DOCTYPE;

"type-of-doc"是文档类型的名称,由你自己定义,通常于DTD文件名相同;

"SYSTEM/PUBLIC"这两个参数只用其1。SYSTEM是指文档使用的私有DTD文件的网址,而PUBLIC则指文档调用1个公用的DTD文件的网址。

"dtd-name" 就是DTD文件的网址和名称。所有DTD文件的后缀名为".dtd"。

我们还是用上面的例子,应当写成这样:

2、DTD的有关术语

甚么是DTD,我们上面已简略提到。DTD是1种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否是符合规范,元素和标签使用是否是正确。1个DTD文档包括:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。

DTD文件也是1个ASCII的文本文件,后缀名为.dtd。例如:myfile.dtd。

为甚么要用DTD文件呢?我的理解是它满足了网络共享和数据交互,使用DTD最大的好处在于DTD文件的共享。(就是上文DTD说明语句中的PUBLIC属性)。比如,两个相同行业不同地区的人使用同1个DTD文件来作为文档创建规范,那末他们的数据就很轻易交换和共享。网上有其他人想补充数据,也只需要根据公用的DTD规范来建立文档,就立即可以加进。

目前,已有数目众多的写好的DTD文件可以利用。针对不同的行业和利用,这些DTD文件已建立了通用的元素和标签规则。你不需要自己重新创建,只要在他们的基础上加进你需要的新标识。

固然,假设愿意,你可以创建自己的DTD,它可能和你的文档配合的更加完善。建立自己的DTD也是很简单的1件事,1般只需要定义4⑸个元素便可以够了。

调用DTD文件的方法有两种:

1、直接包括在XML文档内的DTD

你只要在DOCTYPE声明中插进1些特别的说明便可以够了,象这样:

我们有1个XML文档:

以下为援用的内容:

XML轻松学习手册

ajie

我们在第1行后面插进下面代码便可以够:

以下为援用的内容:

]>

2、调用独立的DTD文件

将DTD文档存为.dtd的文件,然后在DOCTYPE声明行中调用,例如,将下面的代码存为myfile.dtd

以下为援用的内容:

然后在XML文档中调用,在第1行后插进:

我们可以看到DTD文档和HTML中js的调用是差未几的,关于DTD文档具体如何写,我们将在下1章和XML文档的语法1起先容。

下面我们来了解DTD有关的术语:

1、Schema(计划)

schema是数据规则的描写。schema做两件事:

a.它定义元素数据类型和元素之间的关系;

b.它定义元素所能包括的内容类型。

DTD就是关于XML文档的1个schema。

2、Document Tree(文档树)

"文档树"在前面第2章我们已提到过,它是文档元素分级结构的形象表示。1个文档结构树包括根元素,根元素是最顶级的元素,(就是紧接着XML声明语句后的第1个元素)。看例子:

以下为援用的内容:

...

...

上面的例子分3级结构排列成"树"状,其中的就是根元素。在XML和DTD文件中,第1个定义的都是根元素。

3、Parent Element(父元素)/Child Element(子元素)

父元素是指包括有其它元素的元素,被包括的元素称为它的子元素。看上面的"结构树",其中是父元素,,<author>是它的子元素,而<myfile>又是<filelist>的子元素。象<title>这样没有包括任何子元素的最后1级元素我们也称之为"页元素"。</p> <p>4、Parser(解析软件)</p> <p>Parser是1种检查XML文档是否是遵守DTD规范的工具软件。</p> <p>XML的parser发展为两类:1种是"非确认类paeser",只检测文档是否是遵照XML语法规则,是否是用元素标识建立了文档树。另1种是"确认类paeser",它不但检测文档语法,结构树,而且比较解析你使用的元素标识是否是遵照了相应DTD文件的规范。</p> <p>Parser能独立使用,也能够成为编辑软件或浏览器的1部份。在后面的相干资源列表里,我列出了当前比较流行的1些parsers。</p> <p>好了,通过第3章的学习,我们已了解了1些XML和DTD的基本术语,但是我们还不知道怎样来写这些文件,需要遵守甚么样的语法,在下1章,将重点先容有关撰写XML和DTD文档的语法。请继续浏览,谢谢!</p> <a href="http://www.fw8.net/">http://www.fw8.net/</a></p><script src="/inc/AspCms_VisitsAdd.asp?id=948"></script><br>TAG:<a href="/taglist.asp?tag=文件">文件</a>,<a href="/taglist.asp?tag=属性">属性</a>,<a href="/taglist.asp?tag=文档">文档</a>,<a href="/taglist.asp?tag=元素">元素</a>,<a href="/taglist.asp?tag=标识">标识</a><br><style> .clistbox { width: 90%; text-align:left; margin-bottom:10px; margin-top:3px; } .clistbox .line1 { border-bottom: 1px dashed #999999; text-align:left; padding-left:10px; } .clistbox .line1 span {float:right; } .clistbox .line2 {padding:5px;} </style> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <td align="center" > <div id="commentlist">评论加载中...</div> <script language="javascript" src="/plug/comment/comment.asp?id=948"></script> <form method="post" action="/plug/comment/addComment.asp?action=add"> <input type="hidden" name="contentID" value="948" /> <table border="0" cellpadding="2" cellspacing="0" align="center"> <tr> <td> 内容:</td> <td align="left"><textarea name="CommentContent" cols="" rows="" style="WIDTH:420px; height:80px;"></textarea></td> </tr> <tr> <td> 评论者: </td> <td align="left"> <input type="text" name="Commentator" style="WIDTH: 80px; height:18px;" size=12 maxlength="50" value="匿名网友" /> 验证码:<input type="text" name="code" style="WIDTH: 60px; height:18px;" size=12 maxlength="4" /> <a onClick="SeedImg.src='/inc/checkcode.asp'"><img src="/inc/checkcode.asp" id="SeedImg" align="absmiddle" style="cursor:pointer;" border="0" /></a> </td> </tr> <tr> <td height="28">   </td> <td height="28" align="left"><input type="submit" name="Submit" value=" 发表 " style="height:22px;" color:#0099ff /></td> </tr> </table> </form> </td> </tr> </table> </DIV> <DIV class=clear></DIV> <DIV class=pageNavi> <DIV class=pageleft><STRONG>上一篇: </STRONG><a href="/wz/news/2012-2-11/947.html">CMD下的网络安全配置</a></DIV> <DIV class=pageright><STRONG>下一篇: </STRONG><a href="/wz/news/2012-2-11/949.html">浅谈Linux文件系统反删除方法(2)</a></DIV> </DIV> </DIV> <DIV class=sidebar> <UL> <LI> <H3>交流共享</H3> <UL class=sub> <li ><a title="交流共享" href="/wz/newslist/list-2-1.html">交流共享</a></li> <li ><a title="公告" href="/wz/newslist/list-3-1.html">公告</a></li> <li ><a title="行业新闻" href="/wz/newslist/list-4-1.html">行业新闻</a></li> </UL> </LI> <LI> <H3>新闻动态</H3> <UL> <LI><A title="多php服务器实现多session并发运行" href="/wz/news/2012-2-11/953.html">多php服务器实现多session并发运行</A></LI> <LI><A title="数据库开发个人总结(ADO.NET小结)" href="/wz/news/2012-2-11/952.html">数据库开发个人总结(ADO.NET小结)</A></LI> <LI><A title="ACCESS表达式天生器" href="/wz/news/2012-2-11/951.html">ACCESS表达式天生器</A></LI> <LI><A title="选择邮件服务器102要素(3)" href="/wz/news/2012-2-11/950.html">选择邮件服务器102要素(3)</A></LI> <LI><A title="浅谈Linux文件系统反删除方法(2)" href="/wz/news/2012-2-11/949.html">浅谈Linux文件系统反删除方法(2)</A></LI> <LI><A title="轻松学习手册(3)XML的术语" href="/wz/news/2012-2-11/948.html">轻松学习手册(3)XML的术语</A></LI> <LI><A title="CMD下的网络安全配置" href="/wz/news/2012-2-11/947.html">CMD下的网络安全配置</A></LI> <LI><A title="编写ASP.NET利用程序的技能" href="/wz/news/2012-2-11/946.html">编写ASP.NET利用程序的技能</A></LI> <LI><A title="基于中软Linux实现代理服务器与防火墙(2)" href="/wz/news/2012-2-11/945.html">基于中软Linux实现代理服务器与防火墙(2)</A></LI> <LI><A title="apache安装后自启动题目" href="/wz/news/2012-2-11/944.html">apache安装后自启动题目</A></LI> </UL> </LI> <LI class="widget widget_text"> <DIV class=textwidget><A href="http://www.fw8.net/wz/about/19.html"><img src="/Templates/cn/images/contact-us_sidebar.jpg" /></A></DIV> </LI> </UL> </DIV> </DIV> </DIV> </DIV> <DIV class=clear></DIV> <script type="text/javascript" src="/inc/AspCms_Statistics.asp"></script><DIV class=friendlink > <H3>友情链接</H3> <UL> </UL> <br/> <br/> <UL style="margin-top:5px;"> <LI><a href="http://www.fw8.net/" target="_blank">唐山网站建设</a></LI> </UL> </DIV> <DIV class=footer> <UL class=footpage> <LI class=nb><a href="/">首页</A></LI> <LI class="page_item page-item-755"><A href="/wz/newslist/list-1-1.html">文章中心</A></LI> <LI class="page_item page-item-755"><A href="/wz/productlist/21.html">网站建设</A></LI> <LI class="page_item page-item-755"><A href="/wz/downlist/8.html">资料下载</A></LI> <LI class="page_item page-item-755"><A href="/wz/albumtlist/22.html">合作案例</A></LI> <LI class="page_item page-item-755"><A href="/gbook/">在线留言</A></LI> <LI class="page_item page-item-755"><A href="/wz/about/19.html">关于我们</A></LI> </UL> <P>联系人:万先生 电话:<IMG src="http://www.fw8.net/1.png"> 邮 箱:admin@fw8.net </P> <P> <A href="http://www.miibeian.gov.cn/">冀ICP备11021595号</A> </P> <p> <script type="text/javascript"> var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3Ff246ce5cd89f8e45caacd66d7f7569bb' type='text/javascript'%3E%3C/script%3E")); </script> </p> <!-- Baidu Button BEGIN --> <script type="text/javascript" id="bdshare_js" data="type=slide&img=0&uid=76" ></script> <script type="text/javascript" id="bdshell_js"></script> <script type="text/javascript"> var bds_config = {"bdTop":386}; document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours(); </script> <!-- Baidu Button END --> <LINK rev=stylesheet href="/Images/qq/qqkf1/default.css" type=text/css rel=stylesheet> <DIV id=kefu_pannel style="Z-INDEX: 30000; FILTER: alpha(opacity=85); right: 0px; POSITION: absolute; TOP: 120px"> <TABLE cellSpacing=0 cellPadding=0 border=0> <THEAD id=kefu_pannel_top> <TR> <TH class=kefu_Title><SPAN class=kefu_shut id=kefu_ctrl onclick=HideKefu()></SPAN> <H2 class=txtCut>在线客服</H2></TH></TR></THEAD> <TBODY id=kefu_pannel_mid> <TR> <TD height=3></TD></TR> <TR> <TD> <div class=kefu_box ><span style="padding-left:10px;">技术支持</span></div><DIV class=kefu_box onmouseover="this.className='kefu_boxOver'" onmouseout="this.className='kefu_box'"><SPAN class=kefu_image><IMG src="/Images/qq/qqkf1/icon_person_stat_online.gif"></SPAN><A class=kefu_Type_qq href="tencent://message/?uin=449324&Menu=yes"><img border="0" src="http://wpa.qq.com/pa?p=2:449324:41 &r=0.8817731731823399" alt="点击这里给我发消息" title="点击这里给我发消息"></A></DIV> <div class=kefu_box ><span style="padding-left:10px;">产品咨询</span></div><DIV class=kefu_box onmouseover="this.className='kefu_boxOver'" onmouseout="this.className='kefu_box'"><SPAN class=kefu_image><IMG src="/Images/qq/qqkf1/icon_person_stat_online.gif"></SPAN><A class=kefu_Type_qq href="tencent://message/?uin=449324&Menu=yes"><img border="0" src="http://wpa.qq.com/pa?p=2:449324:41 &r=0.8817731731823399" alt="点击这里给我发消息" title="点击这里给我发消息"></A></DIV> </TD></TR> <TR> <TD height=3></TD></TR></TBODY> <TFOOT id=kefu_pannel_btm> <TR style="CURSOR: hand" onclick="parent.location='/wz/about/19.html';"> <TD class=kefu_other></TD></TR></TFOOT></TABLE></DIV> <SCRIPT language=JavaScript src="/Images/qq/qqkf1/qqkf.js"></SCRIPT> </DIV> </BODY> </HTML>