您好,欢迎访问三七文档
XML属性XML元素可以在开始标签中包含属性,类似HTML。属性(Attribute)提供关于元素的额外(附加)信息。XML属性从HTML,你会回忆起这个:imgsrc=computer.gif。src属性提供有关img元素的额外信息。在HTML中(以及在XML中),属性提供有关元素的额外信息:imgsrc=computer.gifahref=demo.asp属性通常提供不属于数据组成部分的信息。在下面的例子中,文件类型与数据无关,但是对需要处理这个元素的软件来说却很重要:filetype=gifcomputer.gif/fileXML属性必须加引号属性值必须被引号包围,不过单引号和双引号均可使用。比如一个人的性别,person标签可以这样写:personsex=female或者这样也可以:personsex='female'注释:如果属性值本身包含双引号,那么有必要使用单引号包围它,就像这个例子:gangstername='GeorgeShotgunZiegler'或者可以使用实体引用:gangstername=George"Shotgun"ZieglerXML元素vs.属性请看这些例子:personsex=femalefirstnameAnna/firstnamelastnameSmith/lastname/personpersonsexfemale/sexfirstnameAnna/firstnamelastnameSmith/lastname/person在第一个例子中,sex是一个属性。在第二个例子中,sex则是一个子元素。两个例子均可提供相同的信息。没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素。我的经验是在HTML中,属性用起来很便利,但是在XML中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。我最喜欢的方式下面的三个XML文档包含完全相同的信息:第一个例子中使用了date属性:notedate=08/08/2008toGeorge/tofromJohn/fromheadingReminder/headingbodyDon'tforgetthemeeting!/body/note第二个例子中使用了date元素:notedate08/08/2008/datetoGeorge/tofromJohn/fromheadingReminder/headingbodyDon'tforgetthemeeting!/body/note第三个例子中使用了扩展的date元素(这是我的最爱):notedateday08/daymonth08/monthyear2008/year/datetoGeorge/tofromJohn/fromheadingReminder/headingbodyDon'tforgetthemeeting!/body/note避免XML属性?因使用属性而引起的一些问题:属性无法包含多重的值(元素可以)属性无法描述树结构(元素可以)属性不易扩展(为未来的变化)属性难以阅读和维护请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。不要做这样的蠢事(这不是XML应该被使用的方式):noteday=08month=08year=2008to=Georgefrom=Johnheading=Reminderbody=Don'tforgetthemeeting!/note针对元数据的XML属性有时候会向元素分配ID引用。这些ID索引可用于标识XML元素,它起作用的方式与HTML中ID属性是一样的。这个例子向我们演示了这种情况:messagesnoteid=501toGeorge/tofromJohn/fromheadingReminder/headingbodyDon'tforgetthemeeting!/body/notenoteid=502toJohn/tofromGeorge/fromheadingRe:Reminder/headingbodyIwillnot/body/note/messages上面的ID仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分。在此我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。
本文标题:第6节-XML属性
链接地址:https://www.777doc.com/doc-2111280 .html