• 初涉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>。

    二。语法规则

    1.所有XML元素都必须有关闭标签

    2.XML标签对大小写敏感

    3。XML必须正确的嵌套

    4.XML必须有根元素

    5.XML属性值必须加引号

    6.实体引用:在XML中,一些字符有特殊的意义‘

    7.XML中的注释:<!-- -->

    8.在XML中空格会被保留

    9.XML以LF存储换行

    三。XML 命名规则

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

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

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

    最佳命名习惯

    使名称具有描述性。使用下划线的名称也很不错。

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

    避免 "-" 字符。如果您按照这样的方式进行命名:"first-name",一些软件会认为你需要提取第一个单词。

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

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

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

    四。XML是可以扩展的

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

    五。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="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 元素(这是我的最爱):

    <note>
    <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>
    

    避免 XML 属性?

    因使用属性而引起的一些问题:

    • 属性无法包含多重的值(元素可以)
    • 属性无法描述树结构(元素可以)
    • 属性不易扩展(为未来的变化)
    • 属性难以阅读和维护

    请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。

    不要做这样的蠢事(这不是 XML 应该被使用的方式):

    <note day="08" month="08" year="2008"
    to="George" from="John" heading="Reminder" 
    body="Don't forget the meeting!">
    </note>
    

    针对元数据的 XML 属性

    有时候会向元素分配 ID 引用。这些 ID 索引可用于标识 XML 元素,它起作用的方式与 HTML 中 ID 属性是一样的。这个例子向我们演示了这种情况:

    <messages>
      <note id="501">
        <to>George</to>
        <from>John</from>
        <heading>Reminder</heading>
        <body>Don't forget the meeting!</body>
      </note>
      <note id="502">
        <to>John</to>
        <from>George</from>
        <heading>Re: Reminder</heading>
        <body>I will not</body>
      </note> 
    </messages>
    

    上面的 ID 仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分。

    在此我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。

  • 相关阅读:
    springCloud、springBoot学习
    企业级应用和互联网应用的去区别
    软件工程 期末总结
    四则运算
    读后感
    软件工程自评
    wc
    自我介绍
    学习javaE的目标
    基于Caffe的DeepID2实现(中)
  • 原文地址:https://www.cnblogs.com/lingxianxia/p/4321531.html
Copyright © 2020-2023  润新知