XML学习笔记(二).doc
文本预览下载声明
什么是 XML 元素?
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
bookstore
book category=CHILDREN
titleHarry Potter/title
authorJ K. Rowling/author
year2005/year
price29.99/price
/book
book category=WEB
titleLearning XML/title
authorErik T. Ray/author
year2003/year
price39.95/price
/book
/bookstore
在上例中,bookstore 和 book 都拥有元素内容,因为它们包含了其他元素。author 只有文本内容,因为它仅包含文本。
在上例中,只有 book 元素拥有属性 (category=CHILDREN)。XML 元素命名规则
XML 元素必须遵循以下命名规则:
名称可以含字母、数字以及其他的字符
名称不能以数字或者标点符号开始
名称不能以字符 “xml”(或者 XML、Xml)开始
名称不能包含空格
可使用任何名称,没有保留的字词。
最佳命名习惯
使名称具有描述性。使用下划线的名称也很不错。
名称应当比较简短,比如:book_title,而不是:the_title_of_the_book。
避免 - 字符。如果您按照这样的方式进行命名:first-name,一些软件会认为你需要提取第一个单词。
避免 . 字符。如果您按照这样的方式进行命名:,一些软件会认为 name 是对象 first 的属性。
避免 : 字符。冒号会被转换为命名空间来使用(稍后介绍)。
XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的名称规则来命名 XML 文档中的元素。
非英语的字母比如 éòá 也是合法的 XML 元素名,不过需要留意当软件开发商不支持这些字符时可能出现的问题。XML 元素 vs. 属性
请看这些例子:
person sex=female
firstnameAnna/firstname
lastnameSmith/lastname
/person
person
sexfemale/sex
firstnameAnna/firstname
lastnameSmith/lastname
/person
在第一个例子中,sex 是一个属性。在第二个例子中,sex 则是一个子元素。两个例子均可提供相同的信息。
没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用子元素。我的经验是在 HTML 中,属性用起来很便利,但是在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。
我最喜欢的方式
下面的三个 XML 文档包含完全相同的信息:
第一个例子中使用了 date 属性:
note date=08/08/2008
toGeorge/to
fromJohn/from
headingReminder/heading
bodyDont forget the meeting!/body
/note
第二个例子中使用了 date 元素:
note
date08/08/2008/date
toGeorge/to
fromJohn/from
headingReminder/heading
bodyDont forget the meeting!/body
/note
第三个例子中使用了扩展的 date 元素(这是我的最爱):
note
date
day08/day
month08/month
year2008/year
/date
toGeorge/to
fromJohn/from
headingReminder/heading
bodyDont forget the meeting!/body
/note
因使用属性而引起的一些问题:
属性无法包含多重的值(元素可以)
属性无法描述树结构(元素可以)
属性不易扩展(为未来的变化)
属性难以阅读和维护
请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。
不要做这样的蠢事(这不是 XML 应该被使用的方式):
note day=08 month=08 year=2008
to=George from=John heading=Reminder
body=Dont forget the meeting!
/note
有时候会向元素分配 ID 引用。这些 ID 索引可用于标识 XML 元素
显示全部