热门关键字:  PHP  seo  Cisco  网络广告 虚拟主机 中文域名
当前位置 :| 主页>编程开发>XML>

建立正确的XML文件

来源: 作者: 时间:2006-01-18 点击:

在本章中,你将学习建立格式正确的XML 文件的基本技术。格式正确的文件指的是一份符合最小标准集合的文件。该标准遵守了XML 文件的规格。当你建立格式正确的XML 文件时,你可以向右延伸并开始在需要元素时加入元素,并输入文件的数据,就像你在建立HTML 网页时所做的一样。(虽然,如同你在前面章节中所学的,在XML 文件中你是创造自己的元素,而不是使用预先定义好的元素。)然后,你在使用Microsoft Internet Explorer 5 处理与显示任何格式正确的文件时将不会有任何问题。
    在第五章中,你将学习如何建立一份有效的XML 文件:它不只是一个格式正确的文件,同时需符合一组更严格的限制。建立一个有效的XML 文件并不像建立格式正确的文件那样简单。在你开始为有效的文件加入元素与数据之前,你必须在文件型态宣告部份中完整定义文件的结构,而该文件型态宣告会被加入文件序文中。在第五章中,你将会学到一些制作有效文件的优点,特别是当你或其它人正在建构一组类似的文件时。
    在本章中,首先你将学习所有格式正确的XML 文件的必要性与选择性部份。接下来你将探索如何借着定义文件的元素来将信息加到XML 文件之中。然后你将学习为元素加入属性以提供额外的文件信息。

格式正确的XML 文件的各个部份

    如同你在第二章所学到的,XML 文件由两个部份组成:序文与文件元素(一般称为根元素)。另外,紧邻文件元素之后,XML 文件还包括了批注、处理指令,以及空白部份。下面是一个格式正确的XML 文件范例,它显示了文件的各个部份以及在每个部份中你可以加入的项目:

    列表3-1 示范了这个范例文件的完整版本。(你可以在随书光盘的 Parts.xml 档案中找到这个程序代码。)
Parts.xml
<?xml version='1.0' standalone='yes' ?>
<!--File Name:Parts.xml ─ ─>
<?xml-stylesheet type="text/css" href="Inventory01.css"?>
<INVENTORY>
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
<BOOK>
<TITLE>The Legend of Sleepy Hollow</TITLE>
<AUTHOR>Washington Irving</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>98</PAGES>
<PRICE>$2.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Marble Faun</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>473</PAGES>
<PRICE>$10.95</PRICE>
</BOOK>
<BOOK>
<TITLE>Moby-Dick</TITLE>
<AUTHOR>Herman Melville</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>724</PAGES>
<PRICE>$9.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Portrait of a Lady</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>256</PAGES>
<PRICE>$4.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Scarlet Letter</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>253</PAGES>
<PRICE>$4.25</PRICE>
</BOOK>
<BOOK>
<TITLE>The Turn of the Screw</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>384</PAGES>
<PRICE>$3.35</PRICE>
</BOOK>
</INVENTORY>
<!--Comments,processing instructions,and white space
can also appear after the document element.-->
<?MyApp Parm1="value 1" Parm2="value 2"??>
    在文件序文起始部份的XML 宣告版本号码可以用单引号「'」或双引号「"」来包围指定。通常,XML 卷标中引号内的字符串-称为literal-可以使用单引号或双引号来包围。因此,下面的程序都是合法的:
<?xml version='1.0'?>
<?xml version="1.0"?>
    在列表3-1 范例文件中的XML 宣告也包含了一个独立文件宣告(standalone document declaration)(standalone='yes')。这个宣告可以用在某些XML 文件中来简化文件的处理。(第六章中将讨论独立文件宣告)
    在这个范例文件的序文与文件元素的部份都包括了批注。(你将在第四章中学到更多有关批注的知识。)
    文件的序文包含了两行空白,标签为「空白部份」,而文件元素之后也包括了两行空白。空白部份由一个或多个的空格符、Tab、换行,或底线字符所组成。为了让XML 文件具有更高的可读性,你可以自由地在XML 卷标之间-例如起始卷标、结束卷标、批注,与处理指令-加入空白部份,也可以在标签之中加入空白-例如,范例文件中XML 宣告的结尾部份中的「yes」与「?」之间的空格符。除非空格符是包含在直接包含字符数据的元素之中,否则处理器会简单地将之忽略。(在这个例子中,处理器会将空白部份当成元素的字符数据传送给应用程序。)
    范例文件在序文中有一个处理指令,并在紧邻文件元素处也有一个处理指令。(第四章将讨论处理指令。)
    最后,文件包含了XML 文件的必要条件:文件元素。建立文件元素与其包含的巢状元素是本章的讨论重点。
    注意
    如同你将在第五章中学到的,有效的XML 文件需要包含一个附加的组件,这个组件并未包括在列表3-1 的范例中:这个组件就是文件型态宣告,可以放置在序文中的任何位置,其它卷标之外,跟在XML 宣告之后。文件型态宣告定义了完整XML 文件的结构。

XML 文件的最低要求

    列表3-1 的XML 文件范例的序文部份包含了所有可以放置在序文中的项目。然而,请注意,这些项目都是选择性的(虽然XML 规格书中指明了你「应该」包含XML 宣告),可有可无。因此,序文本身也是选择性的,而后基本要求的XML 文件,只包含了一个简单的文件元素,符合格式正确的XML 文件标准:
<minimal>A minimalist document.</minimal>
    该文件在Internet Explorer 5 中将显示如下:

加入元素到文件中

    XML 文件中的元素包含了真正的文件信息(例如,在列表3-1 中,有存货清单中书籍的标题、作者、价格,与其它信息),而且指出了这些信息的逻辑结构。
    元素会以树状结构的方式被安排,元素可以巢状套迭在其它的元素之中。文件必须明确地拥有一个顶层元素-文件元素或根元素-而其它的元素都套迭在这个元素之下。因此,下面是一个格式正确的XML 文件。
<?xml version="1.0" ?>
<!--A well-formed XML document.-->
<INVENTORY>
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
</INVENTORY>
然而,下面的文件则不是格式正确的:
<?xml version="1.0"?>
<!--This document is NOT well-formed.-->
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
    元素必须适当地套迭。这代表,如果元素(由一组起始卷标与结束卷标来界定,作者稍后将会介绍。)是在另一个元素之中开始,它必须也在相同的元素之中结束。例如,这些元素都是格式正确的:
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
</BOOK>
    然而,这些元素就不是格式正确的:
<!--NOT well-formed:-->
<BOOK><TITLE>Leaves of Grass</BOOK></TITLE>
注意
    一个包含一个或多个套迭元素(如列表3-1 中的BOOK)的元素称为父元素(parent element)。而一个直接包含在父元素之下(如BOOK 之下的TITLE)的元素则称为子元素(child element)、副元素(subelement),或父元素的套迭元素。

元素解析

    如你所见,元素通常由起始卷标、内容与结束卷标所组成。

 


上一篇:DOM的结构
下一篇:xml图片的生成
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
赞助商连接