XML入门教程:认识学习 XML 元素

80酷酷网    80kuku.com

  xml|教程|入门教程

XML元素是可扩展的,它们之间是存在着某些关系。

XML元素须遵守一些简单的命名规则。

XML元素是可扩展的

XML元素是可被扩展,来携带更多的信息。

请看下面这个XML标签例子:

<note><to>Tove</to><from>Jani</from><body>Don't forget me this weekend!</body></note>

让我们设想一下,我们创建了一个应用程序,可将<to>、<from>以及<body>元素提取出来,并产生以下的输出:

MESSAGE To: ToveFrom: JaniDon't forget me this weekend!

想象一下,之后这个XML文档作者又向这个文档添加了一些额外的信息:

<note><date>2002-08-01</date><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>

那么这个应用程序会中断或崩溃吗?

不会。这个应用程序仍然可以找到XML文档中的<to>、<from>以及<body>元素,并产生同样的输出:

XML文档是可扩展的。

XML元素之间是有关系的

元素之间有父与子的关系。

为了理解XML的术语,我们需要了解XML之间的关系是如何命名的,以及元素的内容是如何被描述的。

想象一下,关于某本书的描述:

我的第一个XMLXML 简介HTML 的概念XML 的概念 XML 的语法元素必须拥有关闭标签元素必须被正确地嵌套

想象一下,XML文档是如何描述这本书的:

<book><title>我的第一个XML</title><prod id="33-657" media="paper"></prod><chapter>XML 简介<para>HTML 的概念</para><para>XML 的概念</para></chapter><chapter>XML 的语法<para>元素必须拥有关闭标签</para><para>元素必须被正确地嵌套</para></chapter></book>

book(书)是根元素。Title、prod以及chapter是book的子元素。book是Title、prod以及chapter的父元素。Title、prod以及chapter是兄弟元素或者姐妹元素,这是因为它们都拥有相同的父母。

元素拥有内容

元素可以拥有不同的内容类型。

一个XML元素由(且包括)元素的开始标签起始,到(且包括)元素的结束标签终止。

一个元素可以拥有元素内容、混合型内容、简易内容或者空内容。元素也可以拥有属性。

在上面的例子中,book有元素内容,因为它包含了其他的元素。chapter拥有混合型内容,因为即包含文本,也包含其他的元素。para拥有简易内容(或文本内容),因为它仅包含文本。prod拥有空内容,因为它没有携带信息。

在上面的例子中,仅有prod元素拥有属性。名为id的属性的值为"33-657"。名为medea的属性的值为"paper"。

元素命名

XML元素必须遵守如何的命名规则:

  • 名字可包含字母、数字以及其他的字符
  • 名字不能以数字或者标点符号开始
  • 名字不能以字符“xml”(或者XML、Xml)开始
  • 名字不能包含空格

当您“发明创造”元素名称时,请留意并遵循下面的简单的规则:

您可以使用任何名称,没有保留字,但是理想的做法是使名称具有描述性使用下划线的名称也是不错的。

例子: <first_name>,<last_name>

应该在名称中避免"-"和"."。比方说,如果您将某个元素命名为"first-name",那么当您的软件试图从first段来提取名称时可能会出现混乱的局面。或者如果您将某个元素命名为"first.name",您的软件也许会认为"name"是"first"对象的一个属性。

元素名称可以是你希望的任何长度,但是也不要太夸张。名称应当比较简短,比如:<book_title>,而不是:<the_title_of_the_book>。

XML文档经常有一个对应的数据库,其中的域会对应XML文档中的某个元素。有一个实用的经验,即使用数据库的名称规则命名XML文档中的元素

非英语的字母比如éòá也是合法的XML元素名,不过需要注意当软件开发商不支持字母时出现的问题。

不应在XML元素名称中使用":",这是由于它是用于被称作命名空间(namespaces)的保留字。



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: