無廢話XML閱讀筆記 一

2021-04-18 05:35:17 字數 3806 閱讀 8386

無廢話xml閱讀筆記(一)

2023年6月4日

一. 介紹xml

xml(extensible markup language,可延伸式標註語).

1. xml的優越性:

1). 異質系統間的資訊互通;

2). 自動化user agent不再是奢望

2. xyz專有名詞大會串--xml應用例項:

1). 數學ml: mathml 籍著xml定義出一套能充分表達數學式子的標註語言.

2). 微笑串連: **il 是多**同步整合語言. (synchronized ********** integration language).

3. xsl:css之外,另一種替xml打扮外觀的語言,xsl所使用的方法和css大異其趣.

二. xml語法領進門

1. 前奏(/* xml宣告 */)

<?xml version="1.0" encoding="utf-8"?>

這個叫xml宣告(declaration),更有學問的稱呼為前言(prolog),/* 國內就叫xml宣告 */.其中version逐個註明版本的屬性肯定要有,而encoding這個註明文字編碼的屬性則可有可無.如果省略的話,字元必須是unicode,以utf-8或者utf-16做編碼.在這樣的情況下,甚至可以將整行<?xml ...?>一併省去,不過xml標準中強烈建議不要這麼做,不管是不是unicode,最好還是養成一律寫的好習慣.而在xml檔案的編碼不是utf-8或者utf-16的情況下,xml宣告決不可省,而且encoding也絕不可少.

2. 元素與屬性.

俗稱的"標籤"(tags),實際上包含了"元素(elements)"和"屬性(attributes)"兩個部分.最高成的元素稱為"根元素rootelement".

《元素名 屬性名 = "屬性值">文字內容

(2). 標籤之間內部得交叉.

備註:xml中規定,所有的元素排列必須是嚴謹的樹狀結構.樹狀結構的觀念對學xml的人非常重要,在使用dom,xslt,和xpoiter分別控制,轉換,鏈結xml檔案,都需要隨時對檔案的內部結構瞭如指掌.

(3). 所以的屬性都得包上引號.

6. xml規範dtd規則.

dtd(document type definition),也就是對某種xml檔案再格式上的定義.我們可以其中規定,某某元素到底可以出現多少次,還有乙個元素能包含那些屬性,子元素,以及各個元素出現的順序等,都能用dtd一一清楚的加以定義和規範.用dtd定義出來的一套xml應用,專業術語叫"語彙".可以用dtd來確認其正確性的xml檔案稱為valid(有法可證的)xml.根據dtd中定義來確認的xml檔案正確性的解析器叫"validating parser",沒有這種的功能的解析器叫"non-validating parser".在使用xml時,我們通常會使用dtd已經設計好的現成xml語彙.目前w3c正在研發,眾望期盼的xml schema(組織架構)標準,在未來不但可能逐漸取道dtd,更將提供更多的功能.更好的是,xml schema完全採用xml語法,不想dtd那般,有自成一格的怪異表示法.

7. 區分大小寫.

xml元素,屬性名等讀ushi區分大小寫的.

8. cdata 區.

再html檔案中,每當我們要舉例或者附上源**時,我們會把它放到

..
或者...區塊中.在xml中,要達到這樣的功能,要用cdata(讀:c data).cdata中的c是character(字)的縮寫.在xml中,所有unicode中定義的字碼,包括中文字,都算是合格的字,而不狹窄的侷限於英文本母.

例子:cdata區以""為終了.區塊中唯一不能包含的,正是]]>這個終了訊號.其他資料,只要是合格的unicode字,都可以自由放置其中.依標準規定,出現再cdata區中的資料,解析器在解析時不許亂碰,而要原封不動的交給下游的程式,嚴格的程度,就連任何在區塊起始和結尾處的空白,換行字元也無法倖免.

9. 一空兩空大不同.

在討論xml對空白字元的處理態度之前,我們最好先對空白字元作明確的定義為,space(空格),tab(/t),cr(carriage return)和lf(line feed).cr是打字機時代遺留下來的稱呼.這個ascii字元通常是**的;它是macos平台上的換行記號.lf是unix上的換行記號.dos/windows平台則使用乙個cr,後頭緊接著乙個lf來標示換行.

xml中規定,所有位於標籤以外的空白,解析器要乙個個忠實地交給下游程式作進一步處理.因為這個限制,我們必須改變我們的程式設計習慣.在寫html標註檔案時,不少人有適時換行,甚至縮排(indent)的好習慣,讓原始碼清楚易讀.大多數網頁開發工具,甚至還會替我們做"pretty-print",依檔案的邏輯架構,和標籤出現的位置,作深淺不同的縮排,但在xml中,如果把《作者》***

小雨傘啊!   小雨傘!

乙隻小雨傘!

"結尾.通常pi是用來傳遞情報給解析器下游的程式的,譬如我們想用樣式表(stylesheet)來美化xml,不管是用css還是xsl,都必須有個機制,讓瀏覽器知道要去**去找樣式表.為此,w3c特別頒布了乙個轉為鏈結樣式所設計的pi,寫法為:

<?xml-stylesheet href="style.css" type="text/css"?>

"xml-stylesheet"這部分稱作pi的目標(target).以上的pi是用來告訴瀏覽器去找乙個叫style.css的css文件.如果要鏈結xsl樣式,就寫成:

<?xml-stylesheet href="style.xsl" type="text/xsl"?> 這份鏈結樣式可以去

三. unicode說明.

1. unicode(統一碼)簡介.

unicode(統一碼)顧名思義是乙個將世界上幾十中紊亂的文字編碼整合在一起的努力.其幕後是由美國各大電腦廠商所組成的unicode策進會來推動的.目的是推廣乙個世界通行的編碼體制,將所有世界上用的文字都涵蓋進去,進而減少各電腦商開發國外市場時所遭到的問題.

為了要將成千上萬的文字統統收集到乙個共通的編碼機制底下愛在兼顧經濟的原則下,不管是東方文字還是西方文字,每個字再unicode中一律以兩個bytes來代表.這樣一來,就至少能有2的16次方(65536)種不同的組合,足以應付目前絕大多數場合的需要.

2. utf是unicode/ucs transformation format(通用字符集/統一編碼變換格式)的縮寫.unicode策進會推薦使用的utf-8和utf-16這兩種格式.其中的"8"和"16"指的的是bits數,而不是bytes.

utf-16基本上就是unicode雙byte編碼的實現,再加上乙個應付來擴充需求的編碼機制(很少用).

utf-8是一種不等副的編碼方式,再utf-8之下,英數字(即ascii字元)保持原狀,完全不受影響(因此不需要做轉換);但其他語文的資料則需透過程式來做轉換,而且會"變胖",因為每個字需要額外多用一或二個bytes來編碼.

ucs通用字符集中,定有ucs-2和ucs-4等編碼方式,其中的2和4指的是bytes,而不是bits.ucs-2大體上就是unicode採用的雙byte編碼.可以簡單的把他們想成是一樣的.ucs-4是以四個bytes來代表乙個字元的編碼方式,就目前而言,在每個ucs-2碼之前補上兩個空白的bytes,便可得到相對應的ucs-4碼.

3. 血淋淋的細節.

unicode中的空間分配:不意外,unicode的頭256個字元和iso-8859-1(即俗稱的latin-1,西歐字母)完全相同,其中前半段就是ascii.這段是從u+0000到u+00ff.當然,每個iso-8859-1碼必須在前面補上乙個空byte(0x00)後才是相對的unicode碼.和我們有切身關係的unihan統漢字,在unicode中主要分布再u+3400到u+9fff之間,此外u+f900和u+faff之間也有一些.事實上,big5和gb2312中的漢字和符號都再u+4e00到u+9fff這塊裡面.

無廢話XML閱讀筆記 四

上市發表會 產品特性 摘要 搜尋字串 滑鼠 鍵盤 共找到2筆 品名定價 說明頁手不痛牌滑鼠 上市發表會 打的響牌鍵盤 567 產品特性 以上的html 為xt的實際輸出結果.整個轉換過 正的主角,就是下面的xslt 摘要 品名定價 說明頁 2 xsl樣式與命名空間.如同其他許多xml的應用,xslt...

無廢話WCF入門教程一 什麼是WCF

一 概述 windows communication foundation wcf 是由微軟發展的一組資料通訊的應用程式開發介面,可以翻譯為windows通訊介面,它是.net框架的一部分。由 net framework 3.0開始引入。wcf的最終目標是通過程序或不同的系統 通過本地網路或是通過i...

閱讀筆記一

保持軟體設計的品質。壞的架構設計會招致更壞的架構設計。開發團隊中健康的工作關係將直接有益於軟體設計。不健康的關係和個性膨脹會導致不健康的軟體。軟體設計的關鍵品質是內聚和耦合。高內聚 strongcohesion 和低耦合 low coupling 鬆弛而模糊的架構將導致每個 元件編寫得不好,並且相互...