zoukankan      html  css  js  c++  java
  • XML学习(一)

    实体引用

    在 XML 中,一些字符拥有特殊的意义。

    如果您把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。

    这样会产生 XML 错误:

    <message>if salary < 1000 then</message>

    为了避免这个错误,请用实体引用来代替 "<" 字符:

    <message>if salary &lt; 1000 then</message>

    在 XML 中,有 5 个预定义的实体引用:

    &lt; < less than
    &gt; > greater than
    &amp; & ampersand
    &apos; ' apostrophe
    &quot; " quotation mark

    注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。大于号是合法的,但是用实体引用来代替它是一个好习惯。

    XML 中的注释

    在 XML 中编写注释的语法与 HTML 的语法很相似。

    <!-- This is a comment -->

    在 XML 中,空格会被保留

    HTML 会把多个连续的空格字符裁减(合并)为一个:

    HTML: Hello Tove
    Output: Hello Tove

    在 XML 中,文档中的空格不会被删减。


    XML 以 LF 存储换行

    在 Windows 应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。

    在 Unix 和 Mac OSX 中,使用 LF 来存储新行。

    在旧的 Mac 系统中,使用 CR 来存储新行。

    XML 以 LF 存储换行。

    XML 命名规则

    XML 元素必须遵循以下命名规则:

    • 名称可以包含字母、数字以及其他的字符
    • 名称不能以数字或者标点符号开始
    • 名称不能以字母 xml(或者 XML、Xml 等等)开始
    • 名称不能包含空格

    可使用任何名称,没有保留的字词。


    最佳命名习惯

    使名称具有描述性。使用下划线的名称也很不错:<first_name>、<last_name>。

    名称应简短和简单,比如:<book_title>,而不是:<the_title_of_the_book>。

    避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为您想要从 first 里边减去 name。

    避免 "." 字符。如果您按照这样的方式进行命名:"first.name",一些软件会认为 "name" 是对象 "first" 的属性。

    避免 ":" 字符。冒号会被转换为命名空间来使用(稍后介绍)。

    XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。有一个实用的经验,即使用数据库的命名规则来命名 XML 文档中的元素。

    在 XML 中,éòá 等非英语字母是完全合法的,不过需要留意,您的软件供应商不支持这些字符时可能出现的问题。

    XML 元素是可扩展的

    XML 元素是可扩展,以携带更多的信息。

    请看下面的 XML 实例:

    <note>     <to>Tove</to>     <from>Jani</from>     <body>Don't forget me this weekend!</body> </note>

    让我们设想一下,我们创建了一个应用程序,可将 <to>、<from> 以及 <body> 元素从 XML 文档中提取出来,并产生以下的输出:

    MESSAGE

    To: Tove From: Jani

    Don't forget me this weekend!

    想象一下,XML 文档的作者添加的一些额外信息:

    <note>     <date>2008-01-10</date>     <to>Tove</to>     <from>Jani</from>     <heading>Reminder</heading>     <body>Don't forget me this weekend!</body> </note>

    那么这个应用程序会中断或崩溃吗?

    不会。这个应用程序仍然可以找到 XML 文档中的 <to>、<from> 以及 <body> 元素,并产生同样的输出。

    XML 的优势之一,就是可以在不中断应用程序的情况下进行扩展。

    XML 属性必须加引号

    属性值必须被引号包围,不过单引号和双引号均可使用。比如一个人的性别,person 元素可以这样写:

    <person sex="female">

    或者这样也可以:

    <person sex='female'>

    如果属性值本身包含双引号,您可以使用单引号,就像这个实例:

    <gangster name='George "Shotgun" Ziegler'>

    或者您可以使用字符实体:

    <gangster name="George &quot;Shotgun&quot; 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 属性:

    <note date="10/01/2008"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>

    第二个实例中使用了 date 元素:

    <note> <date>10/01/2008</date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>

    第三个实例中使用了扩展的 date 元素(这是我的最爱):

    <note> <date> <day>10</day> <month>01</month> <year>2008</year> </date> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
  • 相关阅读:
    搜索进阶1、八数码(HDU1043)
    D.迷宫2 (BFS+优先队列)
    小H的询问(线段树)
    B.迷宫(BFS)
    【UVA】10935 Throwing cards away I(STL队列)
    【UVA】10391 Compound Words(STL map)
    【UVA】12100 Printer Queue(STL队列&优先队列)
    【UVA】1596 Bug Hunt(模拟)
    【UVA】201 Squares(模拟)
    【UVA】1595 Symmetry(模拟)
  • 原文地址:https://www.cnblogs.com/crzqj/p/7639712.html
Copyright © 2011-2022 走看看