前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >XML指南——XML 屬性

XML指南——XML 屬性

作者头像
全栈程序员站长
发布2021-12-23 11:42:15
1.3K0
发布2021-12-23 11:42:15
举报
文章被收录于专栏:全栈程序员必看

跟HTML一樣,XML元素再開始標記處可以由元素屬性。 屬性通常包含一些關於元素的額外信息。

代码语言:javascript
复制
 XML屬性
 
 XML元素可以擁有屬性。
 
 你一定還記得這樣的HTML代碼吧: <IMG SRC=”computer.gif”>。src是img元素的屬性,提供了關於img元素的額外信息。
 
 在HTML中 (在XML中也一樣)元素的屬性提供了元素的額外信息。
 
 <img src=”computer.gif”>
 
 <a href=”demo.asp”> 

書信提供的信息通常不是數據的一部分。在下面的例子中,類型和數據毫不相關,但對於操作這個元素的軟件來說卻相當重要。 <file type=”gif”>computer.gif</file>

引用風格”female” 還是 』female』? 屬性值必須用引號引著。單引號、雙引號都可以使用。例如一個人的性別,person元素可以這樣寫: <person sex=”female”>

也可以這樣寫:  <person sex=』female』>

上面的兩種寫法在一般情況下是沒有區別的,使用雙引號的應用更普遍一些。但是在某些特殊的情況下就必須使用單引號,比如下面的例子: <gangster name=』George “Shotgun” Ziegler』>

代码语言:javascript
复制
 使用子元素還是使用屬性
 
 數據既可以存儲在子元素中也可以存儲在屬性中。
 
 請看下面的例子:
 
 <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中,你最好避免使用。

代码语言:javascript
复制
 我喜歡的風格
 
 我更願意把數據存儲到子元素中。
 
 下面的三個XML文檔包含了相同的信息:
 
 第一個例子使用了data屬性:
 
 <note date=”12/11/99″>
 
 <to>Tove</to>
 
 <from>Jani</from>
 
 <heading>Reminder</heading>
 
 <body>Don』t forget me this weekend!</body>
 
 </note> 
代码语言:javascript
复制
 第二個例子使用了data元素:
 
 <note>
 
 <date>12/11/99</date>
 
 <to>Tove</to>
 
 <from>Jani</from>
 
 <heading>Reminder</heading>
 
 <body>Don』t forget me this weekend!</body>
 
 </note> 
 第三個例子使用了擴展的data元素: (這就是我推薦的樣式):
 
 <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>  
代码语言:javascript
复制
 避免使用屬性?
 
 應該避免使用屬性麼?
 
 這裡有一些使用屬性引發的問題: 
 
 屬性不能包含多個值(子元素可以)。 
 
 屬性不容易擴展。 
 
 屬性不能夠描述結構(子元素可以)。 
 
 屬性很難被程序代碼處理。 
 
 屬性值很難通過DTD進行測試。 
 
 如果使用屬性來存儲數據,那麼所編寫的XML文檔一定很難閱讀和操作。盡量使用元素來描述數據,僅使用屬性來描述那些與數據關係不大的額外信息。
 
 不要象下面的例子那樣(如果你那麼做了說明你還沒有明白上面的觀點)。
 
 <note day=”12″ month=”11″ year=”99″
 
 to=”Tove” from=”Jani” heading=”Reminder” 
 
 body=”Don』t forget me this weekend!”>
 
 </note>  
代码语言:javascript
复制
 屬性規則的例外
 
 規則總是有例外的。
 
 我的關於屬性的規則也有一個例外:
 
 有些時候應該為一個元素設計一個ID引用,通過這個ID可以引用存取特定的XML元素,就像HTML中的name和id屬性一樣。請看下面的例子:
 
 <messages>
 
 <note ID=”501″>
 
 <to>Tove</to>
 
 <from>Jani</from>
 
 <heading>Reminder</heading>
 
 <body>Don』t forget me this weekend!</body>
 
 </note>
 
 <note ID=”502″>
 
 <to>Jani</to>
 
 <from>Tove</from>
 
 <heading>Re: Reminder</heading>
 
 <body>I will not!</body>
 
 </note> 
 
 </messages> 

在上面的例子中,ID屬性就相當於一個計數器,或者是一個唯一的標識符,在XML文檔中標識不同的便條信息,他不是便條信息的一部分。 我們所要盡力向讀者說明的是:元數據(與數據有關的數據)應該以屬性的方式存儲,而數據本身應該以元素的形式存儲。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年7月26日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档