XML文件
XML 指可扩展标记语言(eXtensibleMarkupLanguage) XML 被设计用来传输和存储数据。 什么是 XML?
XML 不会做任何事情 XML 被设计用来结构化、存储以及传输信息。
下面是 John 写给 George 的便签(note),存储为 XML: <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
上面的这条便签具有自我描述性。它拥有标题以及留言,同时包含了发送者和接受者的信息。 但是,这个 XML 文档仍然没有做任何事情。它仅仅是包装在 XML 标签中的纯粹的信息。我们需要编写软件或者程序,才能传送、接收和显示出这个文档。
XML 仅仅是纯文本XML 没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理 XML。 不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签。标签的功能性意义依赖于应用程序的特性。
通过 XML 您可以发明自己的标签上例中的标签没有在任何 XML 标准中定义过(比如 <to> 和 <from>)。这些标签是由文档的创作者发明的。 这是因为 XML 没有预定义的标签。 在 HTML 中使用的标签(以及 HTML 的结构)是预定义的。HTML 文档只使用在 HTML 标准中定义过的标签(比如 <p> 、<h1> 等等)。 XML 允许创作者定义自己的标签和自己的文档结构。 一个 XML 文档实例XML 使用简单的具有自我描述性的语法: <?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> 第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。 下一行描述文档的根元素(像在说:“本文档是一个便签”): <note> 接下来 4 行描述根的 4 个子元素(to,from,heading 以及 body): <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> 最后一行定义根元素的结尾: </note> 从本例可以设想,该 XML 文档包含了 John 给 George 的一张便签。 XML 具有出色的自我描述性,你同意吗? XML 文档形成一种树结构XML 文档必须包含根元素。该元素是所有其他元素的父元素。 XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。 所有元素均可拥有子元素: <root> <child> <subchild>.....</subchild> </child> </root> 父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。 所有元素均可拥有文本内容和属性(类似 HTML 中)。 实例上图表示下面的 XML 中的一本书: <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> 例子中的根元素是 <bookstore>。文档中的所有 <book> 元素都被包含在 <bookstore> 中。 <book> 元素有 4 个子元素:<title>、< author>、<year>、<price>。 所有 XML 元素都须有关闭标签在 HTML,经常会看到没有关闭标签的元素: <p>This is a paragraph <p>This is another paragraph 在 XML 中,省略关闭标签是非法的。所有元素都必须有关闭标签: <p>This is a paragraph</p> <p>This is another paragraph</p> 注释:您也许已经注意到 XML 声明没有关闭标签。这不是错误。声明不属于XML本身的组成部分。它不是 XML 元素,也不需要关闭标签。 XML 标签对大小写敏感
XML 元素使用 XML 标签进行定义。 XML 标签对大小写敏感。在 XML 中,标签 <Letter> 与标签 <letter> 是不同的。 必须使用相同的大小写来编写打开标签和关闭标签: <Message>这是错误的。</message> <message>这是正确的。</message> 注释:打开标签和关闭标签通常被称为开始标签和结束标签。不论您喜欢哪种术语,它们的概念都是相同的。
在 XML 中,所有元素都必须彼此正确地嵌套: <b><i>This text is bold and italic</i></b> 上例的意思是:由于 <i> 元素是在 <b> 元素内打开的,那么它必须在 <b> 元素内关闭。
XML 文档必须有根元素XML 文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。 <root> <child> <subchild>.....</subchild> </child> </root>
XML 的属性值须加引号与 HTML 类似,XML 也可拥有属性(名称/值的对)。 在 XML 中,XML 的属性值须加引号。请研究下面的两个 XML 文档。第一个是错误的,第二个是正确的: <note date=08/08/2008>
<to>George</to>
<from>John</from>
</note>
<note date="08/08/2008">
<to>George</to>
<from>John</from>
</note>
在第一个文档中的错误是,note 元素中的 date 属性没有加引号。 XML 中的注释在 XML 中编写注释的语法与 HTML 的语法很相似: <!-- This is a comment --> 什么是 XML 元素?XML 元素指的是从开始标签直到结束标签的部分。 元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。 <bookstore> <book category="CHILDREN"> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title>Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> 在上例中,<bookstore> 和 <book> 都拥有元素内容,因为它们包含了其他元素。<author> 只有文本内容,因为它仅包含文本。 在上例中,只有 <book> 元素拥有属性(category="CHILDREN")。
XML 元素可以在开始标签中包含属性,类似 HTML。 属性 (Attribute) 提供关于元素的额外(附加)信息。
XML 属性必须加引号属性值必须被引号包围,不过单引号和双引号均可使用。比如一个人的性别,person 标签可以这样写: <person sex="female"> 或者这样也可以: <person sex='female'> 注释:如果属性值本身包含双引号,那么有必要使用单引号包围它,就像这个例子: <gangster name='George "Shotgun" Ziegler'> 或者可以使用实体引用: <gangster name="George "Shotgun" Ziegler">
XML 元素 vs. 属性请看这些例子: <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 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用子元素吧。
我最喜欢的方式下面的三个 XML 文档包含完全相同的信息: 第一个例子中使用了 date 属性: date="08/08/2008"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> 第二个例子中使用了 date 元素: <note>
<date>08/08/2008</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
第三个例子中使用了扩展的 date 元素(这是我的最爱): <date> <day>08</day> <month>08</month> <year>2008</year> </date> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
|
- Oracle 12c多租户特性详解:全局用户与本地用户的原理与维护
- ruby-on-rails – 如何在Rails 3.1资产管道中获取ckeditor资
- 【玩转cocos2d-x之三十九】Cocos2d-x 3.0截屏功能集成
- 获取oracle表的元素据,拼凑hive建表语句以及需要的conf
- ruby-on-rails – 发布/放置请求的路由错误(乘客标头)
- c# – 转向泛型.
- flex 返回值大于或等于其本身的最接近值
- c# – BackgroundWorker:RunWorkerCompleted中的InvalidOp
- c# – Marshal :: GetFunctionPointerForDelegate:我应该发
- ruby-on-rails – 如何让Heroku在登台服务器上构建我的开发