1 linux下xml編輯器 2 3 vim 4 gedit 5 editix wonderful;免費30天;能夠進行有效性檢查 6 xerces 7 oxygen 收費 8 xmlcopyedit 9 serna free 是serna的免費版本,開源 10 11 12 xml 庫文件 13 14 libxml c語言使用它解析xml http://wangjiajun53880.blog.163.com/blog/static/1170013942010119558319/ 15 expat Expat 是一個用C語言開發的、用來解析XML文檔的開發庫,它最初是開源的、Mozilla 項目下的一個XML解析器 16 17 18 19 xml文檔結構(標記和字符數據) 20 21 22 序言 23 24 XML聲明 一般以聲明開始(非必需,有則必須放在文檔開始的地方)<?xml version="1.0" encoding="utf-8"? standalone="yes"?>是否依賴外部DTD 25 PI 處理指令,<?xml-stylesheet type="text/xsl" href="/home/Wizard/my.xsl"?> 26 註釋 27 DTD/樣式 28 文件類型聲明 29 30 31 文檔節點 32 33 標籤 34 元素 根元素是惟一的;元素的內容能夠解析空格,不能包含有特殊意義的字符,用實體代替;元素的嵌套很嚴格 35 屬性 attribute,能夠包含在標記中,屬性的值必須用引號括起來,屬性名和屬性值必須成對出現,屬性名不能重複,屬性值不能包括特殊字符「 < > "&」;避免使用屬性,很差解析、擴展 36 文本 37 CDATA 在一個塊內,用<![CDATA[ ……]]>把內容包住,使在該塊中能夠不用xml實體。 38 實體 39 註釋 <!-- -->,不能在註釋中出現「--」,不能嵌套,不能出如今標記中 40 41 42 結構良好的XML文檔不必定是有效的文檔,但有效的文檔必定是結構良好的文檔。XMl規範性經過XML語法規則來保證,XML文檔的有效性是指XML文檔內容中的元素、屬性符合其餘文檔內容(DTD Schema)的定義。利用專用的文檔類型定義和專用的解析器能夠驗證一個XML文檔的有效性。 43 44 45 46 命名規則 47 48 不能以數字或標點開始 49 不能以xml,Xml,XML開始 50 不能包含空格 51 52 默認值系統自動分配,不可更改;缺省值也是系統自動分配,能夠更改。 53 54 多個單詞爲一個詞時第一個單詞首字母不大寫,後面的單詞首字母大寫(自定義)。 55 56 57 58 DTD 文檔類型定義(document type definition) 59 60 61 形式爲<!DOCTYPE rootelement[...body...]>(指示解析器),XML文檔必須和一個DTD一塊兒使用,且必須放在文檔開頭。 62 63 在文檔中定義DTD直觀且不用擔憂XML處理器找不到DTD,可是會是文檔臃腫,DTD文檔不易分享。 64 65 66 外部DTD定義 67 包含body部分。 68 69 引用 70 系統標識符引用外部 DTD <!DOCTYPE rootelement SYSTEM "url"> 71 公共標誌符<!DOCTYPE rootelement PUBLIC "DTD_name" "url">;這個DTD名字是一個正是公共標誌符。 72 73 正式公共標誌符 74 -//Owner//class Description//Language//Version 75 例如網頁的文檔類型聲明:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 76 77 78 DTD文檔結構 79 80 第一行是聲明部分,格式與XML文檔的聲明語法共同。 81 註釋和XML文檔相同。 82 <!ELEMENT...> 定義元素 83 <!ATTLIST...> 定義屬性 84 <!ENTITY...> 定義實體 85 <!NOTATION...> 定義符號 86 彼此獨立,無需嵌套,驗證有效性時和元素在DTD中聲明的順序無關。 87 88 89 元素內容的類型 90 91 字符串 92 用(#PCDATA)定義的元素再也不包含其餘子元素。 <!ELEMENT name (#PCDATA)> 93 94 ELEMENT型 95 設定元素擁有的子元素和出現的次數和順序。 96 有序子元素:<!ELEMENT name (child1, child2, child3...)>,元素名和子元素之間有空格。 97 互斥子元素:<!ELEMENT name (child1 | child2 | child3...)>,必須選一個元素,例如<!ELEMENT universal (ice, human, (cat | dog))> 98 子元素出現的頻率:‘+’至少出現一次,‘*’出現任意屢次,‘?’出現0次或1次,‘none’只能出現一次。例如<!ELEMENT universal (earth+)> 99 組合子元素:<!ELEMENT universal (human | (love,bread))> 100 無序子元素:<!ELEMENT universal ((human | love | water)*> 101 102 空元素 103 沒有內容,但能夠有屬性。 104 格式:<!ELEMENT name EMPTY>,XML文檔中元素格式必須是<.../>而不能是<...></...> 105 106 ANY元素 107 元素能夠有任何類型的子元素或純文本或空,可是出如今XML文檔中的元素必須在DTD中定義。 108 格式:<!ELEMENT name ANY> 109 110 MIXED型 111 容許混合內容使得字符數據和其餘元素能在元素中共存,其子元素出現無序,次數不限,不能用表示頻率的符號修飾,#PCDATA必須放在最前面。 112 <!ELEMENT universal(#PCDATA | human | love)*> 113 114 115 元素屬性聲明 116 <!ATTLIST E_name A_name type D_value> 元素名 屬性名 屬性類型 默認值 117 <!ATTLIST 學生 118 姓名 CDATA #REQUIRED 119 性別 (男 | 女) "男" 120 聯繫方式 CDATA #IMPLIED> 一個元素可有多個屬性,聲明次序無關(可位與聲明元素的前面),全部元素的屬性都要在各自對應的標記中聲明;屬性有4中不一樣類型的默認值;屬性有10種不一樣的類型,由TYPE指定。 121 122 屬性的默認值:default(一個預設的字符串,如上面的性別); #REQUIRED屬性值必須指定; #IMPLIED可指定可不指定; #FIXED屬性值是一個固定值(必須是指定的值,定義元素時若是沒有定義這個屬性,則默認擁有這個屬性),<!ATTLIST BOOK CATRGORY CDATA #FIXED 「計算機「。 123 124 屬性的類型: CDATA 字符數據; Enumerated 枚舉類型("男" | "女") ,從枚舉列表中選擇一個值; ID 識別XML文檔中元素惟一性的屬性; IDREF 對某些具備 ID 屬性的元素的引用,這些元素的ID屬性值必須與 IDREF 的屬性值相同; IDREFS 有空格分開的若干個 ID ; ENTITY 在 DTD 中聲明的實體; ENTITIES 若干個以空格分開的ENTITY名稱; NMTOKEN 名稱標號(合法的XML名稱); NMTOKENS 若干空格分隔的 NMTOKEN ;NOTATION 指定屬性值爲 DTD 中聲明的記號名。 125 126 127 XML實體 128 129 五種全部XML解析器必須實現的實體:「&apos ‘」,「& &」,「" "」,「< <」,「> >」。 130 131 實體可在XML文檔和DTD中使用。 132 定義:<!ENTITY Entity_name "Replacement"> 133 使用:&Entity_name; 134 135 外部實體 136 <!ENTITY Entity_name SYSTEM(PUBLIC) "URL">,通常爲整個文件,PUBLIC表示網絡上的文件。 137 138 內部參數實體 139 指在獨立的外部DTD文檔內定義和使用的實體,只能在DTD文檔中使用。 140 定義:<!ENTITY % Entity_name "Replacement"> 141 引用:%Entity_name; 142 143 外部參數實體 144 指在獨立的外部DTD文檔定義和使用的實體,外部參數實體用於將多個獨立的DTD文檔組合成一個大的DTD文檔。 145 定義:<!ENTITY % Entity_name SYSTEM "URL"> 146 引用:%Entity_name; 147 148 注意 149 不能在元素及屬性的聲明中引用實體。 150 語句中不能出現循環。 151 引用外部實體時文檔中的standalone再也不是默認值「yes」,而應該設爲「no」。 152 若是引用外部實體文檔的編碼不是utf-8或unicode,必須有XML聲明。 153 154 155 156 XSD 157 158 159 XML模式(XML Schema [ Definition ])模式能夠和DTD相互替代,而且功能更強大。模式使用XML格式編寫,格式是基於xml語法的,自己是XML的一個應用,支持命名空間和數據類型。 160 161 根元素:<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"></xs:schema> 代表文檔類型,聲明命名空間(必須),版本信息,語言信息等,只有一個根元素 162 163 引用XML Schema 文檔 經過定義命名空間 164 <sweater xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:myns="http://www.yulaoqiannian.com/XMLSchema" xsi:SchemaLocation="http://www.yulaoqiannian.com/XMLSchema sweater.xsd" ></sweater> 165 前一個地址是聲明命名空間,後一個指明驗證的Schema文件的地址,在 xsd 文檔中必須聲明 sweater 元素。 166 167 xsi:noNamespaceSchemaLocation 用於沒有目標命名空間的模式文檔,屬性的值是一個單一的值,用於指定模式文檔的位置 168 xsi:SchemaLocation 用於有目標命名空間的模式文檔,屬性的值是由一對或多對 URL 引用對組成,兩個URL以空格分開,URL引用對頁用空格分開;第一個URL指明名稱空間的名字,第二個URL指明模式文檔的位置 169 170 對局部元素的限定 171 elementFormDefault 爲 qualified 表示被限定,爲 unqualified 表示未被限定;限定時在實例 XML 文檔中使用局部元素和局部屬性必須引用命名空間,默認人非限定。 172 attributeFormDefault 爲 qualified 表示被限定,爲 unqualified 表示未被限定。 173 對局部元素和屬性限定直接在 element 和 attribute 加上屬性 form 來限定。 174 175 176 元素類型 177 xs:string 最鬆散的文本約束,僅僅要求不能出現特殊字符 178 xs:int(eger) 必須爲數值 179 xs:double 180 xs:decimal 181 xs:boolean true false 182 xs:date YYYY-MM-DD 183 xs:time 184 xs:token 185 186 187 兩種主要的數據結構 188 189 用他們來定義新的數據類型。 190 simpleType 只能包含數據,restriction minLength manLength minExclusive manExclusive 191 complexType 能夠包含其餘元素,屬性 192 193 命名的簡單類型:必須在全局定義,且名稱惟一,按名引用。 194 匿名的簡單內型:做爲子元素定義在元素內部 195 196 197 簡單類型 198 199 定義 200 <simpleType name="名字"> 201 <restriction base="類型"> 202 ...... 203 </restriction> 204 </simpleType> 205 206 限制條件 207 <Length value="非負數"/> 指定字符串的長度 208 <minLength value="非負數"/> 指定字符串的長度的最小長度 209 <maxLength value="非負數"/> 指定字符串的最大長度 210 <minInclusive value="數值"/> 指定數值的最小值 211 <maxInclusive value="數值"/> 指定數值的最大值 212 <minExclusive value="數值"/> 排除比數值小的值 213 <maxExclusive value="數值"/> 排除比數值大的值 214 <fractionDigits value="數值"/> base="xs:decimal" 215 216 簡單類型的種類 217 原子類型 具備不可分割的值 218 列表類型list 值是用空格分隔的原子類型的列表 219 聯合類型union 值能夠是原子類型,也能夠是列表類型,這種類型是兩種或兩種以上其餘簡單類型的值空間的集合 220 221 列表類型list 222 <xs:simpleType name="size"> 223 <xs:list> 224 <xs:simpleType> 225 <xs:restriction base="xs:integer"> 226 <xs:minInclusive value="2"/> 227 <xs:maxInclusive value="18"/> 228 </xs:restriction> 229 </xs:simpleType> 230 </xs:list> 231 </xs:simpleType> 232 233 枚舉型 enumeration 一組簡單類型的選項 234 <xs:simpleType name="enumName"> <!--使用 enumName 使用這個類型--> 235 <xs:restriction base="xs:string"> 236 <xs:enumeration value="枚舉值"/> 237 <xs:enumeration value="枚舉值"/> 238 ... 239 </xs:restriction> 240 </xs:simpleType> 241 242 243 複雜類型 244 245 四種不一樣的內容內型 246 簡單內容類型 只容許有字符數據,能夠包含屬性 complexType -> simpleContent -> extension -> attribute 247 純元素類型 只容許有子元素 sequence 248 混合類型 容許有字符數句和子元素,定義時給 complexType 的屬性 mixed="true" 249 空類型 不容許有字符數據和子元素 250 251 sequence 組用來表示組內定義的元素在XML文檔中應該按照組內定義的順序出現 complexType -> sequence 252 253 choice 組描述的元素只能選擇一個子元素 complexType -> choice 254 使用 choice 的 minOccurs 和 maxOccurs 屬性可使 choice 中的元素以任何次數、順序出現。 255 256 all 組表示全部的元素都要出現,且只能出現依次,出現順序任意 complexType -> all 257 258 259 元素聲明 260 <xs:element name="" type=""/> 聲明一個在XML文檔中使用的元素 261 262 簡單元素 只包含文本的元素 263 <xs:element name="元素名字" type="類型參數" default="默認值" fixed="固定值" minOccurs="最少出現次數" maxOccurs="最多出現次數" ref="一個已經以全局形式聲明的元素" /> minOccurs和maxOccurs不能精確控制元素出現的次數,默認出現一次,maxOccurs="unbounded"表示出現無限次;default和fixed不能同時出現; 264 265 全局元素是 schema 下的元素,局部元素是 all, choice, sequence 下的元素。 266 267 元素類型的定義 268 引用命名數據類型 新類型定義在元素定義外面(可見域) 269 匿名定義的數據類型 新類型定義在元素定義內部 270 ANY元素數據類型 不指定 type, simpleType, complexType;能夠有任何子元素,純字符,屬性(不能混合出現) 271 272 273 屬性聲明 274 <xs:attribute name="" type=""/> 類型和元素類型同樣 275 276 <xs:attribute name="名字" type="類型" default="默認值" fixed="固定值" use="optional | prohibited | required" ref="一個已聲明的全局屬性"/> 定義 use 時不能將屬性定義爲全局的 277 278 屬性的類型 279 經過type指定內值類型和用戶自定義類型 280 經過simpleType指定匿名類型 281 不指定時默認是 anySimpleType ,能夠是任意類型 282 283 284 285 命名空間 XML命名空間提供了一種能夠把元素、屬性、名字和URL地址引用相互關聯的方法。 286 287 288 默認的命名空間聲明(沒有名稱)<cat xmlns="http://www.yulaoqiannian.com/namespace"></cat> 289 290 在一個缺省的命令空間中,URL能夠爲空,這在直接方式命名空間聲明中是不容許的;當URL爲空時,在聲明做用域範圍內沒有前綴的元素被認爲不在任何命名空間中。 291 292 元素的屬性中不能有兩個命名空間相同,且屬性名相同的兩個屬性。 293 294 295 聲明的通常形式 296 xmlns:前綴="URL" 297 298 隱式聲明默認命名空間 一個文檔中只能由一個隱式聲明的命名空間 299 xmlns="URL" 300 301 302 xsd 中命名空間 303 304 targetNamespace 聲明指示該文檔所在的命名空間 305 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tn="http://www.yulaoqiannian.com/XMLSchema" targetNamespace="http://www.yulaoqiannian.com/XMlSchema"></xs:schema> 306 307 默認狀況下 xsd 文檔中只有全局元素、屬性和類型屬於目標命名空間。 308 309 310 311 XSLT XSL 轉換(XSL Transformations), 可將一種 XML 文檔轉換爲另一種 XML 文檔,其中一種特例是把XML轉換成HTML輸出 312 313 314 XSL 擴展樣式表語言(EXtensible Stylesheet Language),它的初衷是給xml提供樣式顯示。由 XSLT 、 XPath 以及 XSLF 組成XSLT的主旨更通常化,指可將一種 XML 文檔轉換爲另一種 XML 文檔,常把XSLT稱爲XLS。 315 316 CSS 層疊樣式表單(Cascading Style Sheets)CSS 樣式單能夠爲XML文檔添加顯示信息 317 318 引用 XSL 文檔 319 <?xml-stylesheet type="text/xsl" href="welcome.xsl"?> 320 321 聲明 XSL 文檔 322 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></xsl:stylesheet> 323 324 XMLT 自己也是 XML 文檔,根元素的命名空間爲 http://www.w3.org/1999/XSL/Transform 。 325 326 在 XMLT 根元素聲明爲 <xsl:stylesheet> 和 <xsl:transform> 徹底同樣。 327 328 329 節點類型 XML 文檔被映射成一棵樹 330 根結點(文檔節點) 是文檔樹的根,其子元素爲 XML文檔的根元素、處理指令、註釋等。 331 元素節點 <book>hello</book> 332 文本節點 字符數據,包括 CDATA 中的數據 333 屬性節點 id="1" 334 命名空間節點 335 處理指令節點 336 註釋節點 337 338 339 <xsl:template> 340 341 XSL 樣式表由一個或多個被稱爲模板的規則組成,每一個模板含有當某個指定的節點被匹配時應用的規則,模板先聲明,而後在某個地方調用模板。 342 343 模板的聲明 344 <xsl:template match="pattern" name="T_name"></xsl:template> T_name用於描述該模板的相關信息和名稱 345 346 match 屬性用於關聯 XML 元素,他的值是 XPATH 表達式。 347 348 <xsl:template> 內部的內容定義了寫到輸出結果的 HTML 結果。 349 350 模板的調用 351 <xsl:template match="/"> 模板將在 XSLT 處理器遇到文檔節點時自動處理。 352 其餘模板在 <xsl:template match="/"> 模板中指定匹配路徑的方式(使用 xsl:apply-templates)顯示或隱式的調用。 353 根據模板名稱使用 <xsl:call-template name="T_name"> 調用 354 355 356 <xsl:apply-templates select=""> 把一個模板應用到當前元素或當前元素的子元素,沒有select屬性時表示選擇當前節點的全部子節點 357 358 359 <xsl:value-of> 提取某個選定節點的值,把值添加到輸出流中 360 <xsl:value-of select="~~"></xsl:value-of> 361 select 值爲一個 XPATH 值,爲必選屬性。 362 對文本節點和屬性節點, xsl:value-of select="." 提取的是文本節點的內容和屬性節點的取值。 363 對元素節點, xsl:value-of select="." 將獲得該元素和其子元素的文本節點之和。 364 365 <xsl:for-each> 選取指定的節點集中的每一個 XML 元素 366 <xsl:for-each select="~~">...</xsl:for-each> 367 select 值是一個 XPATH 表達式。 368 xsl:for-each 開始標記和結束標記之間是一個循環處理的過程體。 369 結果過濾 select="catalog/cd[year<'1990']" =, !=, <, > 370 371 <xsl:if> 用於放置針對 XML 文件內容的條件測試 372 <xsl:if test="">...</xsl:if> 373 374 <xsl:sort> 對結果排序 375 <xsl:sort select="~~" data-type="~~" order="~~"> 376 data-type text | number, 默認 text, 可選 377 order ascending | descending, 默認 ascending, 可選 378 379 <xsl:choose><xsl:when><xsl:otherwise> 結合起來表達多重條件測試 380 <xsl:choose> 381 <xsl:when test="test_1"> 382 ... 383 </xsl:when> 384 <xsl:when test="test_2"> 385 ... 386 </xsl:when> 387 <xsl:otherwise> 388 ... 389 </xsl:otherwise> 390 </xsl:choose> 391 392 393 import include element attribute number param(參數) 394 395 396 397 XPath XML匹配模式(XML Pattern Matching)XPath是一種用於標識XML文檔各個部分的語言。 398 399 400 這是一種爲了XSLT 和 XPointer而設計出來的語言;含有超過 100 隔內建函數, 用於字符串值、數值、日期、時間比較、節點和 Qname 處理、序列處理、邏輯值等。 401 402 403 選取已知節點的表達式 404 nodename 選取此節點的全部子節點; nodename[1] 選取第一個 nodename 元素; nodename[last() - 1] 選取倒數第二個 nodename 元素; nodename[position() < 3] 選取前面兩個 nodename 元素; book[price > 9] 選取子元素 price 大與 9 的 book 元素 405 / 從根結點選取 406 // 選取文檔中全部匹配的節點,不考慮他們的位置; //book[@price] 選取全部擁有屬性 price 的元素; //book[@price="9"] 選取全部屬性值 price 爲 9 的 book 元素 407 . 選取當前節點 408 .. 選取當前節點的父節點 409 @ 選取屬性; //@name 選取全部屬性名位 name 的屬性,無論他們的位置 410 * 匹配任何元素節點; //* 選取文檔中的全部元素 411 @* 匹配任何屬性節點; book[@*] 選取全部帶有屬性的 book 元素 412 node() 匹配任何類型的節點; 413 //book | //title 使用 "|" 選取若干路徑,這裏表示選擇全部的 book 元素和 title 元素 414 415 416 軸 被定義成選取相對於當前節點的節點集 417 418 ancestor 當前節點的全部先輩 419 ancestor-or-self 當前節點的全部先輩和本身 420 attribute 當前節點的全部屬性 421 child 當前節點的全部子元素 422 descendant 當前節點的全部後代元素 423 descendant-or-self 當前節點的全部後代元素和本身 424 following 當前節點結束標籤後的全部節點 425 namespace 當前節點的全部命名空間的節點 426 parent 當前節點的父節點 427 preceding 當前節點開始標籤以前的全部節點 428 preceding-sibling 當前節點以前的全部同級節點 429 self 當前節點 430 431 432 步( step ) 433 434 包括 435 軸 定義所選節點和當前節點之間的關係 436 節點測試 識別軸內部的節點 437 0 或多個謂語 更深刻的提煉節點集 438 439 語法 440 axis-name::node-test[predicate] 441 442 example 443 child::book 選取當前節點子元素的 book 節點 444 child::* 選取當前節點的全部子元素 445 child::text() 選取當前節點的全部文本子節點 446 child::node() 選取當前節點的全部子節點 447 child::*/child::price 選取當前節點的全部 price 孫節點 448 descendant::book 選取當前節點的全部 book 後代 449 ancestor::book 450 ancestor-or-self::book 451 attribute::price 452 attribute::* 453 454 455 運算符 456 457 | 計算兩個節點集; //book | //cd 458 or price = 9 or price = 10 459 + 6 + 4, 返回 10 460 - 461 * 462 div 463 = 返回 true/false 464 != 465 < 466 <= 467 > 468 >= 469 470 471 核心函數庫 472 473 函數:函數名 返回類型 參數 474 475 節點集函數 476 last() 返回一個稱爲上下文大小的數字,不一樣於最後一個節點 477 position() 返回一個稱爲上下文位置的數字,好比 position() = last() 測試 478 count(node-set) 返回實參節點集中的節點數 479 id(object) 返回一個節點集,根據在 DTD 中聲明的 ID 類型惟一的選擇元素 480 481 字符串函數 482 string() 把參數對象或上下文節點轉換爲字符串,合法的參數有節點集、數字、布爾值、或其餘任何類型 483 concat() 參數爲兩個或更多字符串,返回字符串的鏈接 484 starts-with() 若是第一個字符串參數以第二個字符串開始則返回 true 485 contains() 若是第一個字符串參數包含第二個字符串參數返回 true 486 487 布爾函數 488 boolean() 不一樣於 0 或 NaN 的數字爲 true ,非空的節點集或字符串爲 true 489 not() 參數爲 false 返回 true 490 true() 返回 true 491 false() 492 lang() 若是上下文節點的語言和參數指定的語言向相同或爲子集,返回 true 493 494 數字函數 495 number() 把可選的參數對象轉換爲數字。布爾值 true 轉換爲 1 ,false 轉換爲 0 ;字符串轉換爲合理的數字;節點集先轉換爲字符串,再轉換爲合理的數字 496 sum() 對節點集參數中的全部節點應用 number() 函數後返回他們的和 497 floor() 返回不大於數字參數的最大數字 498 ceiling() 返回不小於數字參數的最小數字 499 round() 返回和數字最接近的整數數字 500 501 502 503 XLink XML連接語言(XML Linking Language)連接語言(The XML Linking Language ,XLink), 容許在不一樣的XML資源之間創建連接關係 504 505 XPointer XML指針語言(XML Pointer Language)XML指針語言(The XML Pointer Language ,XPointer), 標識XML文檔的內部結構,例如元素、屬性、內容等 506 507 508 DOM 對象式解析,文檔對象模型(Document Object Model)DOM定義處理XML文檔的接口、屬性和方法,要將文件所有加載後生成樹狀的模型來處理文檔 509 510 JDOM java特定文檔模型,比使用DOM更快 511 512 DOM4J 合併超出基本XML文檔的功能,集成了XPATH,XSD等 513 514 SAX 流式解析,XML的簡單API(Simple API for XML)SAX 是另外一種讀取和操做XML文檔的編程接口,使用順序讀取文檔,讀完後丟棄 515 516 Xquery 一種xml的查詢語言,Xquery之於xml就像sql之於數據庫。XQuery是基於XPath上的,單獨的 XPath 位置路徑自己就是有效的 517 518 XHTML 可擴展HTML(Extensible HTML)XHTML 使用XML從新定義了HTML 4.01的語法。XHTML 1.0是HTML的下一個版本 519 520 XDR 數據簡化(XML Data Reduced)XDR是XML模式(XML Schema)的簡化版本。IE5.0+瀏覽器支持XDR 521 522 XQL XMl查詢語言(XML Query Language)XQL爲存放XML文檔中的數據提供一種便捷的查詢語言 523 524 RELAX NG OASIS技術委員會開發的XML模式語言 525 526