zoukankan      html  css  js  c++  java
  • 我的XML学习笔记

    1.什么是XML?
    XML 指可扩展标记语言(EXtensible Markup Language)
    XML 是一种标记语言,很类似 HTML
    XML 被设计用来描述数据
    XML 标签没有被预定义。您需要自行定义标签
    XML 使用文件类型声明(DTD)或者 XML Schema 来描述数据。
    带有 DTD 或者 XML Schema 的 XML 被设计为具有自我描述性
    XML 是一个 W3C 标准

    2.XML 声明
    <?xml version="1.0" encoding="ISO-8859-1"?>
    定义了 XML 的版本和文档中使用的字符编码。在这个例子中,遵守的是 XML 1.0 规范,并使用了 ISO-8859-1 字符集。

    3.XML元素命名规则
    XML 元素必须遵守这些命名规则:
    名字可包含字母、数字以及其他的字符
    名字不能以数字或者标点符号开始
    名字不能以字符“xml”(或者XML、Xml)开始
    名字不能包含空格

    当您“发明创造”元素名称时,请留意并遵循下面的简单规则:
    您可以使用任何名称,没有保留字,但是理想的做法是使名称具有描述性使用下划线的名称也很不错。
    例子: <first_name>,<last_name>
    应该在名称中避免"-"和"."。比方说,如果您将某个元素命名为"first-name",那么当您的软件试图从first段来提取名称时可能会出现混乱的局面。或者如果您将某个元素命名为"first.name",您的软件也许会认为"name"是"first"对象的一个属性。
    元素名称可以是你希望的任何长度,但是也不要太夸张。名称应当比较简短,比如:<book_title>,而不是:<the_title_of_the_book>。
    XML 文档经常有一个对应的数据库,其中的域会对应 XML 文档中的某个元素。有一个实用的经验,即使用数据库的名称规则命名 XML 文档中的元素
    非英语的字母比如éòá也是合法的XML元素名,不过需要留意当软件开发商不支持这些字符时可能出现的问题。
    不应在 XML 元素名称中使用 ":" ,这是由于它是用于命名空间(namespaces)的保留字。

    4.避免使用属性
    我们应当避免使用属性
    因使用属性而引起的一些问题:
    属性无法包含多个值(子元素可以)
    属性不易扩展(为未来的变化)
    属性无法描述结构(子元素可以)
    属性更难被编程代码处理
    不易通过某个 DTD 对属性值进行测试 - DTD(文档类型定义Document Type Definition) 用来定义 XML 文档的合法元素
    如果您使用属性作为数据的容器,那么就会造就难以阅读和维护的文档。请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。
    元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素

    5.一个"形式良好"的 XML 文档会遵守前几章介绍过的 XML 语法规则:
    XML 文档必须有根元素
    XML 文档必须有关闭标签
    XML 标签对大小写敏感
    XML 元素必须被正确的嵌套
    XML 属性必须加引号

    6.XML文件如何链接到CSS
    <?xml-stylesheet type="text/css" href="*.css"?>
    注意:使用 CSS 格式化 XML 不能代表 XML 文档样式化的未来。XML 文档应当使用 W3C 的 XSL 标准进行格式化!

    7.XML文件如何链接到XSL
    <?xml-stylesheet type="text/xsl" href="*.xsl"?>

    8.什么是XML数据岛
    XML 数据岛是嵌入 HTML 中的 XML 数据。
    一个数据岛实例:
    <html>
        <body>
            <xml id="cdcat" src="/example/xmle/cd_catalog.xml"></xml>
            //<table> 标签的 datasrc 属性可以把 HTML 格元素绑定到 XML 数据岛,这个 datasrc 属性会引用数据岛的 id 属性
            <table border="1" datasrc="#cdcat">
                <thead>
                    <tr><th>Artist</th><th>Title</th></tr>
                </thead>
                <tfoot>
                    <tr><th colspan="2">This is my CD collection</th></tr>
                </tfoot>
                <tbody>
                    <tr>
                        //<td> 无法被绑定至数据岛,所以我们使用了 <span> 标签,<span> 允许 datafld 属性来引用需要显示的XML元素
                        <td><span datafld="artist"></span></td>
                        <td><span datafld="title"></span></td>
                    </tr>
                </tbody>
            </table>
        </body>
    </html>

    其中cd_catalog.xml文件内容为:
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!--  Edited with XML Spy v2007 (http://www.altova.com)   -->
    - <CATALOG>
    - <CD>
    <TITLE>Empire Burlesque</TITLE> 
    <ARTIST>Bob Dylan</ARTIST> 
    <COUNTRY>USA</COUNTRY>

      <COMPANY>Columbia</COMPANY>
      <PRICE>10.90</PRICE>
      <YEAR>1985</YEAR>
      </CD>
    - <CD>
      <TITLE>Hide your heart</TITLE>
      <ARTIST>Bonnie Tyler</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>CBS Records</COMPANY>
      <PRICE>9.90</PRICE>
      <YEAR>1988</YEAR>
      </CD>
    - <CD>
      <TITLE>Greatest Hits</TITLE>
      <ARTIST>Dolly Parton</ARTIST>
      <COUNTRY>USA</COUNTRY>
      <COMPANY>RCA</COMPANY>
      <PRICE>9.90</PRICE>
      <YEAR>1982</YEAR>
      </CD>
    - <CD>
      <TITLE>Still got the blues</TITLE>
      <ARTIST>Gary Moore</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>Virgin records</COMPANY>
      <PRICE>10.20</PRICE>
      <YEAR>1990</YEAR>
      </CD>
    - <CD>
      <TITLE>Eros</TITLE>
      <ARTIST>Eros Ramazzotti</ARTIST>
      <COUNTRY>EU</COUNTRY>
      <COMPANY>BMG</COMPANY>
      <PRICE>9.90</PRICE>
      <YEAR>1997</YEAR>
      </CD>
    - <CD>
      <TITLE>One night only</TITLE>
      <ARTIST>Bee Gees</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>Polydor</COMPANY>
      <PRICE>10.90</PRICE>
      <YEAR>1998</YEAR>
      </CD>
    - <CD>
      <TITLE>Sylvias Mother</TITLE>
      <ARTIST>Dr.Hook</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>CBS</COMPANY>
      <PRICE>8.10</PRICE>
      <YEAR>1973</YEAR>
      </CD>
    - <CD>
      <TITLE>Maggie May</TITLE>
      <ARTIST>Rod Stewart</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>Pickwick</COMPANY>
      <PRICE>8.50</PRICE>
      <YEAR>1990</YEAR>
      </CD>
    - <CD>
      <TITLE>Romanza</TITLE>
      <ARTIST>Andrea Bocelli</ARTIST>
      <COUNTRY>EU</COUNTRY>
      <COMPANY>Polydor</COMPANY>
      <PRICE>10.80</PRICE>
      <YEAR>1996</YEAR>
      </CD>
    - <CD>
      <TITLE>When a man loves a woman</TITLE>
      <ARTIST>Percy Sledge</ARTIST>
      <COUNTRY>USA</COUNTRY>
      <COMPANY>Atlantic</COMPANY>
      <PRICE>8.70</PRICE>
      <YEAR>1987</YEAR>
      </CD>
    - <CD>
      <TITLE>Black angel</TITLE>
      <ARTIST>Savage Rose</ARTIST>
      <COUNTRY>EU</COUNTRY>
      <COMPANY>Mega</COMPANY>
      <PRICE>10.90</PRICE>
      <YEAR>1995</YEAR>
      </CD>
    - <CD>
      <TITLE>1999 Grammy Nominees</TITLE>
      <ARTIST>Many</ARTIST>
      <COUNTRY>USA</COUNTRY>
      <COMPANY>Grammy</COMPANY>
      <PRICE>10.20</PRICE>
      <YEAR>1999</YEAR>
      </CD>
    - <CD>
      <TITLE>For the good times</TITLE>
      <ARTIST>Kenny Rogers</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>Mucik Master</COMPANY>
      <PRICE>8.70</PRICE>
      <YEAR>1995</YEAR>
      </CD>
    - <CD>
      <TITLE>Big Willie style</TITLE>
      <ARTIST>Will Smith</ARTIST>
      <COUNTRY>USA</COUNTRY>
      <COMPANY>Columbia</COMPANY>
      <PRICE>9.90</PRICE>
      <YEAR>1997</YEAR>
      </CD>
    - <CD>
      <TITLE>Tupelo Honey</TITLE>
      <ARTIST>Van Morrison</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>Polydor</COMPANY>
      <PRICE>8.20</PRICE>
      <YEAR>1971</YEAR>
      </CD>
    - <CD>
      <TITLE>Soulsville</TITLE>
      <ARTIST>Jorn Hoel</ARTIST>
      <COUNTRY>Norway</COUNTRY>
      <COMPANY>WEA</COMPANY>
      <PRICE>7.90</PRICE>
      <YEAR>1996</YEAR>
      </CD>
    - <CD>
      <TITLE>The very best of</TITLE>
      <ARTIST>Cat Stevens</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>Island</COMPANY>
      <PRICE>8.90</PRICE>
      <YEAR>1990</YEAR>
      </CD>
    - <CD>
      <TITLE>Stop</TITLE>
      <ARTIST>Sam Brown</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>A and M</COMPANY>
      <PRICE>8.90</PRICE>
      <YEAR>1988</YEAR>
      </CD>
    - <CD>
      <TITLE>Bridge of Spies</TITLE>
      <ARTIST>T'Pau</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>Siren</COMPANY>
      <PRICE>7.90</PRICE>
      <YEAR>1987</YEAR>
      </CD>
    - <CD>
      <TITLE>Private Dancer</TITLE>
      <ARTIST>Tina Turner</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>Capitol</COMPANY>
      <PRICE>8.90</PRICE>
      <YEAR>1983</YEAR>
      </CD>
    - <CD>
      <TITLE>Midt om natten</TITLE>
      <ARTIST>Kim Larsen</ARTIST>
      <COUNTRY>EU</COUNTRY>
      <COMPANY>Medley</COMPANY>
      <PRICE>7.80</PRICE>
      <YEAR>1983</YEAR>
      </CD>
    - <CD>
      <TITLE>Pavarotti Gala Concert</TITLE>
      <ARTIST>Luciano Pavarotti</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>DECCA</COMPANY>
      <PRICE>9.90</PRICE>
      <YEAR>1991</YEAR>
      </CD>
    - <CD>
      <TITLE>The dock of the bay</TITLE>
      <ARTIST>Otis Redding</ARTIST>
      <COUNTRY>USA</COUNTRY>
      <COMPANY>Atlantic</COMPANY>
      <PRICE>7.90</PRICE>
      <YEAR>1987</YEAR>
      </CD>
    - <CD>
      <TITLE>Picture book</TITLE>
      <ARTIST>Simply Red</ARTIST>
      <COUNTRY>EU</COUNTRY>
      <COMPANY>Elektra</COMPANY>
      <PRICE>7.20</PRICE>
      <YEAR>1985</YEAR>
      </CD>
    - <CD>
      <TITLE>Red</TITLE>
      <ARTIST>The Communards</ARTIST>
      <COUNTRY>UK</COUNTRY>
      <COMPANY>London</COMPANY>
      <PRICE>7.80</PRICE>
      <YEAR>1987</YEAR>
      </CD>
    - <CD>
      <TITLE>Unchain my heart</TITLE>
      <ARTIST>Joe Cocker</ARTIST>
      <COUNTRY>USA</COUNTRY>
      <COMPANY>EMI</COMPANY>
      <PRICE>8.20</PRICE>
      <YEAR>1987</YEAR>
      </CD>
      </CATALOG>

    运行结果为:
    Artist Title
    This is my CD collection
    Bob Dylan Empire Burlesque
    Bonnie Tyler Hide your heart
    Dolly Parton Greatest Hits
    Gary Moore Still got the blues
    Eros Ramazzotti Eros
    Bee Gees One night only
    Dr.Hook Sylvias Mother
    Rod Stewart Maggie May
    Andrea Bocelli Romanza
    Percy Sledge When a man loves a woman
    Savage Rose Black angel
    Many 1999 Grammy Nominees
    Kenny Rogers For the good times
    Will Smith Big Willie style
    Van Morrison Tupelo Honey
    Jorn Hoel Soulsville
    Cat Stevens The very best of
    Sam Brown Stop
    T'Pau Bridge of Spies
    Tina Turner Private Dancer
    Kim Larsen Midt om natten
    Luciano Pavarotti Pavarotti Gala Concert
    Otis Redding The dock of the bay
    Simply Red Picture book
    The Communards Red
    Joe Cocker Unchain my heart

     
  • 相关阅读:
    数据库笔记(mysql)(1)
    微擎框架商业版 V2.1.2 去后门一键安装版+去除云平台+无附带模块
    资深架构师Sum的故事:正则!入门就是这样简单
    人脸识别+大数据再结合面相学,看相一看一个准!
    layui里面的layer模块弹窗,强制居中的方法!!!
    抖音获取视频点赞数、播放数、获取用户粉丝列表
    破解微擎安装,免费搭建微擎,免费破解微擎,微擎破解版本,最新版本V2.1.2,一键安装!!
    资深架构师Sum的故事:(Mysql)InnoDB下,存储过程中事务的处理
    小程序开发教程:wx.setTopBarText(OBJECT)
    微信web协议,群成员唯一uin,获取群成员唯一标识
  • 原文地址:https://www.cnblogs.com/guoxiaowen/p/1127617.html
Copyright © 2011-2022 走看看