亲密接触XML(7)- 元素 vs. 属性的使用

xml

 

可以将数据存储在子元素中或属性中。看看下面这些例子:
  
     < person sex="female">
     < firstname>Anna< /firstname>
     < lastname>Smith< /lastname>
     < /person>
  
  
     < person>
     < sex>female< /sex>
     < firstname>Anna< /firstname>
     < lastname>Smith< /lastname>
     < /person>
  
     在第一个例子中,性别sex 是一个属性。在第二个中, sex 是一个子元素。两个例子提供了相同的信息。关于何时使用属性、何时使用子元素,没有特别的规定。我的经验是在HTML中使用属性较方便,但是在XML中要尽量避免使用属性。如果信息象数据,就使用子元素。
  
     我喜欢的方式
  
     我喜欢将数据存储在子元素中。下面的3个XML文档所包含的信息完全相同:
  
     第一个例子中使用了一个date属性:
  
     < note date="12/11/99">
     < to>Tove< /to>
     < from>Jani< /from>
     < heading>Reminder< /heading>
     < body>Don't forget me this weekend!< /body>
     < /note>
  
  
     第二个例子中使用了一个date 元素:
  
     < note>
     < date>12/11/99< /date>
     < to>Tove< /to>
     < from>Jani< /from>
     < heading>Reminder< /heading>
     < body>Don't forget me this weekend!< /body>
     < /note>
  
     在第三个中使用了一个扩充的date元素(这是我最喜欢的方法):
  
     < note>
     < date>
     < day>12< /day>
     < month>11< /month>
     < year>99< /year>
     < /date>
     < to>Tove< /to>
     < from>Jani< /from>
     < heading>Reminder< /heading>
     < body>Don't forget me this weekend!< /body>
     < /note>
  
     要避免使用属性吗?
  
     你是否应该避免使用属性呢? 以下是使用属性带来的几个问题:
  
  属性不能包含多个值 (而子元素可以)
  属性不容易被扩充(为将来的修改)
  属性不能描述结构(而子元素可以)
  属性更难被程序代码所操作
  属性值不容易进行DTD测试
     如果你将属性作为一个数据的容器使用,那么最终的结果是,文档将难以阅读和维护。你应该尽量用元素去描述数据。只在提供与数据无关的信息时才使用属性。
  
     不要这样结尾( 如果你认为这样就是 XML, 那么你还没有真正理解要点):
  
     < note day="12" month="11" year="99"
     to="Tove" from="Jani" heading="Reminder"
     body="Don't forget me this weekend!">
     < /note>
  
  
  

时间: 2024-09-17 04:47:47

亲密接触XML(7)- 元素 vs. 属性的使用的相关文章

亲密接触XML(6)-元素的内容

xml   <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />           元素有着不同的内容类型. 一个XML元素就是从(包含)元素的起始标记到(包含)元素的结束标记之间的全部内容.   一个元素可以有元素内容.混合内容.简单内容和空内容.一个元素还可以有属性. 在上面的例子中, book有元素内容,因为它包含了其它元素.Chapter 有混合内容,因为它包含了文

亲密接触xml(4)--- XML对大小写是敏感的

xml|大小写   XML对大小写是敏感的   而在XML中,所有的元素都必须要有一个结束标记,如:       < p>This is a paragraph< /p>    < p>This is another paragraph< /p>       注意:从前面的例子中你可能已经注意到了,XML声明没有结束标记.这并不是一个错误.因为声明并不是XML文档的一部分.它不是一个XML元素,因此它不能有结束标记.       XML对大小写是敏感的,这一

亲密接触XML(8)-我的属性规则的一个例外

xml           规则总是有例外的. 我的关于属性的规则有一个例外: 有时我为元素分配了ID 引用值.这些 ID引用值可以用来访问 XML元素,其方法与HTML中的NAME 或 ID 属性基本上完全一样.下面这个例子就说明这一点:       < messages>    < note ID="501">    < to>Tove< /to>    < from>Jani< /from>    <

亲密接触XML(5)---XML元素

xml   <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />        XML元素   XML元素是可扩展的,彼此之间有关联. XML元素的命名规则很简单.       XML元素是可扩展的       XML文档可以进行扩展以携带更多的信息. 请看下面的XML NOTE 例子:       < note>    < to>Tove< /

亲密接触xml(1)---XML简介

xml   XML简介:什么是XML,它与HTML有什么不同.   如何使用XML:使用XML的几种方式.   XML语法:XML的简单但非常严格的语法规则.   XML元素:XML元素.关系.内容及命名规则.   XML属性:XML属性是如何用来描述元素以及提供元素的附加信息的.   XML确认:一个格式良好的XML与一个有效的XML之间的主要区别,一个DTD是如何用来定义XML文档的.   XML在Netscape和Explorer中的支持情况:关于XML在这两个最著名的浏览器上的支持情况.

亲密接触xml(3)--- XML 和 B2B

xml   用XML,可以在Internet上交换金融信息.在不远的将来,我们就有望看到XML 和 B2B 的使用.XML即将成为在Internet上的企业之间交换金融信息的主要语言.大量有趣的B2B应用程序正在开发之中.       XML可以用来共享数据       用XML,纯文本文件可以用来共享数据.由于XML数据是用纯文本格式存储的,因此XML提供了一种独立于软件和硬件的共享数据方式.这样,创建不同的应用程序都能够使用的数据就更容易了.并且,将系统扩展或升级到一个新的操作系统.服务器.

亲密接触xml(9)XML在Netscape和Explorer中

xml   在这个Web站点中,我们集中讨论Internet Explorer 5.0 对XML的支持, 因为Netscape 对XML的支持比较差.也许这种情况会改变.       XML在这个Web站点上       许多应用程序都支持XML.我们集中讨论Internet Explorer 5.0. 你们中的有些人会对此抱怨,但是我们这样做只是因为这是我们所知道的唯一的可行途径,我们这样来说明在 Internet上的真实的XML的例子.我们很遗憾地说--在我们等待Netscape的同时--我

亲密接触xml(10)-其它例子

xml        查看一些XML文档会帮助你对XML有一些感觉. 我们为你收集了以下一些XML数据文件的例子:       一个XML的 CD 目录: 这是我父亲收集的CD,将其作为XML数据存储(我想这都是些陈旧而乏味的标题).       一个 XML的植物目录: 这是一个植物商店的植物目录,作为XML数据存储.       一个简单的食物菜单: 这是一个餐厅的早餐食谱,作为 XML 数据存储.       为什么XML显示是这样的?       XML 文档没有携带关于如何显示数据的信

亲密接触xml(2)---XML不做任何事情

xml   XML不做任何事情    XML并不是设计来做什么事情的.这也许不太容易理解,但是XML不做任何事情.XML并不是用来做什么事情的.创建XML的目的就是把它作为一个构造.存储.发送信息的方式.       下面的例子是Jani给Tove 的便条,存储为XML:       < note>    < to>Tove< /to>    < from>Jani< /from>    < heading>Reminder<