亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

XML的重要性

時間:2024-06-23 21:01:57 XML 我要投稿
  • 相關(guān)推薦

XML的重要性

  為什么XML很重要?

  為什么XML很重要?在Web上一條很重要的原則是:內(nèi)容是一個網(wǎng)站最為首要的東西。但不幸的是,內(nèi)容總是同如何將他們顯示出來這個方面聯(lián)系在一起的。你在瀏覽網(wǎng)頁的時候,有多少次看到一個小小的標(biāo)簽,上面寫著“最好在800*600解析度下瀏覽本網(wǎng)站”呢?數(shù)不勝數(shù)吧!XML將有助于解決這個問題。因為在XML中,網(wǎng)站建設(shè)者不再是指定在網(wǎng)頁的什么地方顯示什么東西,他們需要做的是定義好一個文檔的結(jié)構(gòu)。例如,你需要定義的是文檔的標(biāo)題,作者,一系列相關(guān)鏈接等等。任何裝備有XML 瀏覽器的設(shè)備??一個掌上電腦,或者是電視機(jī)頂盒,或者是一個高性能的工作站等等??就能夠把XML文檔的內(nèi)容根據(jù)各個設(shè)備的顯示特性顯示出來;蛟SXML最強(qiáng)的特性,在于其內(nèi)在的可擴(kuò)展性。任何的公司和組織都能夠擴(kuò)展XML 來實(shí)現(xiàn)新的應(yīng)用。現(xiàn)在在互聯(lián)網(wǎng)上幾乎每天都有關(guān)于XML的應(yīng)用方案的提出。一些基于XML的語言www.diannao114.cn已經(jīng)開始被使用,像微軟的頻道定義格式??還有一些正在被開發(fā)之中,包括Resource Definition Format(資源定義格式)和Open Software Description(開放式軟件描敘)等等。XML還很有可能成為數(shù)據(jù)和文檔交換機(jī)制的標(biāo)準(zhǔn)。例如,可以用XML來實(shí)現(xiàn)在Internet上不同數(shù)據(jù)庫之間的信息交換。到現(xiàn)在為止,要準(zhǔn)確的說明XML的公用似乎還為時過早。但是它所帶來的可能性是無限的,或許這就是為什么XML能夠在其初期就能夠如此引人關(guān)注的原因吧。

  什么是XML?列舉一下你所了解的XML技術(shù)及其應(yīng)用

  什么是XML?列舉一下你所了解的XML技術(shù)及其應(yīng)用

  答:XML即可擴(kuò)展標(biāo)記語言。eXtensibleMarkupLanguage.標(biāo)記是指計算機(jī)所能理解的信息符號,通過此種標(biāo)記,計算機(jī)之間可以處理包含各種信息的文章等。如何定義這些標(biāo)記www.diannao114.cn,即可以選擇國際通用的標(biāo)記語言,比如HTML,也可以使用象XML這樣由相關(guān)人士自由決定的標(biāo)記語言,這就是語言的可擴(kuò)展性。XML是從SGML中簡化修改出來的。它主要用到的有XML、XSL和XPath等。

  Android 創(chuàng)建與解析XML(一)—— 概述Android 創(chuàng)建與解析XML(一)—— 概述

  Android 是最常用的智能手機(jī)平臺,XML 是數(shù)據(jù)交換的標(biāo)準(zhǔn)媒介,Android 中可以使用標(biāo)準(zhǔn)的XML生成器、解析器、轉(zhuǎn)換器 API,對 XML 進(jìn)行解析和轉(zhuǎn)換。

  XML,相關(guān)有DOM、SAX、JDOM、DOM4J、Xerces、JAXP等一堆概念,但是很多人總是會弄混他們之間的關(guān)系,這對我們理解XML文件的創(chuàng)建和解析很不利。要挑選一個適合在Android平臺上使用的XML解析方案,我們還是得先把這些概念厘清。

  XML基本概念DOM(Document Object Model,文檔對象模型)和SAX(Simple API for XML,簡單XML應(yīng)用接口),是JAXP(Java API for XML Processing,Java XML處理的應(yīng)用接口)定義的2種不同的對XML文檔進(jìn)行分析、處理的方法。

  DOM方法是用標(biāo)準(zhǔn)對象模型表示 XML 文檔;SAX方法則使用事件模型來處理程序來處理XML。

  JAXP完成了對SAX、DOM的包裝,它向應(yīng)用程序提供針對DOM的DocumentBuilderFactory、 DocumentBuilder;以及針對SAX的SAXParserFactory、SAXParser抽象工廠類。在Jave SE中JAXP對應(yīng)javax.xml.parsers包,DOM對應(yīng)org.w3c.dom,SAX對應(yīng)org.xml.sax。

  Xerces首先繼承并實(shí)現(xiàn)了javax.xml.parser包內(nèi)的SAXParser、SAXParserFactory、DocumentBuilder、DocumentBuilderFactory等抽象類,并提供了JAXP中所定義的DOM、SAX(以及StAX,后面會介紹)這些XML解析方法的實(shí)現(xiàn)和相應(yīng)的Parser。JDOM和DOM4J,是因為有人覺得W3C的DOM標(biāo)準(zhǔn)API太過難用而著手開發(fā)的替代API,它們和JAXP一樣都是對DOM、SAX的封裝,不過JDOM、DOM4J做了更多的事情,相當(dāng)于上面提到JAXP接口+Xerces DOM實(shí)現(xiàn)部分。JDOM并沒有自己開發(fā)Parser,所以還是需要利用Xerces的Parser部分,而DOM4J自帶一個名為Alfred2的Parser,當(dāng)然也可以使用Xerces的Parser?雌饋鞪AXP具備更好的可移植性,即我們可以通過修改配置文件切換不同的DOM實(shí)現(xiàn)和SAX、DOM Parser,JDOM、DOM4J雖然也可以切換Parser,但是DOM實(shí)現(xiàn)是無法切換的。(參考: Java XML API 漫談 和 JAXP全面介紹)

  XML創(chuàng)建與解析

  XML創(chuàng)建主要四種方式:Dom、Sax、Pull、Dom4j

  XML解析主要四種方式:Dom、Sax、Pull、Dom4j

  其中,利用Dom、Sax、Pull、Dom4j創(chuàng)建的標(biāo)準(zhǔn)XML格式文件,可以由任何一種Dom、Sax、Pull、Dom4j解析方式進(jìn)行解析。

  Android中解析XML

  DOM解析器,是通過將XML文檔解析成樹狀模型并將其放入內(nèi)存來完成解析工作的,然后對文檔的操作都是在這個樹狀模型上完成的。這個在內(nèi)存中的文檔樹將是文檔實(shí)際大小的幾倍。這樣做的好處是結(jié)構(gòu)清晰、操作方便,而帶來的麻煩就是極其耗費(fèi)系統(tǒng)資源。SAX解析器,正好克服了DOM的缺點(diǎn),分析能夠立即開始,而不是等待所有的數(shù)據(jù)被處理。而且,由于應(yīng)用程序只是在讀取數(shù)據(jù)時檢查數(shù)據(jù),因此不需要將數(shù)據(jù)存儲在內(nèi)存中,這對于大型文檔來說是個巨大的優(yōu)點(diǎn)。事實(shí)上,應(yīng)用程序甚至不必解析整個文檔,它可以在某個條件得到滿足時停止解析。

  DOM與SAX比較

  下面的表格列出了SAX和DOM在一些方面的對照:

  SAXDOM順序讀入文檔并產(chǎn)生相應(yīng)事件,可以處理任何大小的XML文檔在內(nèi)存中創(chuàng)建文檔樹,不適于處理大型XML文檔。只能對文檔按順序解析一遍,不支持對文檔的隨意訪問?梢噪S意訪問文檔樹的任何部分,沒有次數(shù)限制。只能讀取XML文檔內(nèi)容,而不能修改可以隨意修改文檔樹,從而修改XML文檔。開發(fā)上比較復(fù)雜,需要自己來實(shí)現(xiàn)事件處理器。易于理解,易于開發(fā)。對開發(fā)人員而言更靈活,可以用SAX創(chuàng)建自己的XML對象模型。已經(jīng)在DOM基礎(chǔ)之上創(chuàng)建好了文檔樹。通過對SAX和DOM的分析,它們各有自己的不同應(yīng)用領(lǐng)域:

  SAX適于處理下面的問題:對大型文檔進(jìn)行處理。只需要文檔的部分內(nèi)容,或者只需要從文檔中得到特定信息。想創(chuàng)建自己的對象模型的時候。DOM適于處理下面的問題:

  需要對文檔進(jìn)行修改需要隨機(jī)對文檔進(jìn)行訪問,例如XSLT解析器。

  DOM和SAX的應(yīng)用場景1、數(shù)據(jù)修改:如果打算對數(shù)據(jù)作出更改并將它輸出為 XML,那么在大多數(shù)情況下,DOM 是適當(dāng)?shù)倪x擇。并不是說使用 SAX 就不能更改數(shù)據(jù),但是該過程要復(fù)雜得多,因為您必須對數(shù)據(jù)的一份拷貝而不是對數(shù)據(jù)本身作出更改。2、數(shù)據(jù)容量: 對于大型文件,SAX 是更好的選擇。3、數(shù)據(jù)使用:如果只有數(shù)據(jù)中的少量部分會被使用,那么使用 SAX 來將該部分?jǐn)?shù)據(jù)提取到應(yīng)用程序中可能更好。 另一方面,如果您知道自己以后會回頭引用已處理過的大量信息,那么 SAX 也許不是恰當(dāng)?shù)倪x擇。4、速度要求: SAX 實(shí)現(xiàn)通常要比 DOM 實(shí)現(xiàn)速度更快;谏厦娴姆治,在基于Android系統(tǒng)的內(nèi)存和CPU資源比較有限的手持設(shè)備上,只要我們不需要修改XML數(shù)據(jù)或者隨機(jī)的訪問XML數(shù)據(jù),SAX盡管可能需要更多的編碼工作,但是為了更小的內(nèi)存和CPU消耗,還是值得的。另外,Android SDK中已經(jīng)包含了JAXP對應(yīng)的javax.xml.parsers包,SAX對應(yīng)org.xml.sax,DOM對應(yīng)的org.w3c.dom包,加上Android還提供了android.sax這樣的包來方便SAX Handle的開發(fā),基于JAXP和SAX這樣的標(biāo)準(zhǔn)方法來開發(fā)不僅復(fù)雜度不高,即使出現(xiàn)問題在討論組中尋求解決方案也是比較容易的。(參考: 使用 SAX 處理 XML 文檔 和 DOM SAX JAXP DOM4J JDOM xerces解析器)Android中解析XML實(shí)現(xiàn)

  基于上面的分析,采用JAXP+SAX的方案是我比較看好的。我們首先需要又一個SAXParserFactory的實(shí)例,然后從工廠中得到一個SAXParser實(shí)例,進(jìn)而獲取一個XMLReader;接下來新建一個Handler類繼承自SAX Helpler的DefaultHandler,并實(shí)現(xiàn)startDocument()、startElement()、endElement()以及endDocument()等方法,并把這個Handler作為XMLReader的Content Handler;最后以帶解析的XML文檔為參數(shù)調(diào)用XMLReader的parse方法即可。具體的代碼參考:Android 上使用 XML 和 Android 3.0 平臺上創(chuàng)建和解析 XML

  1、Android系統(tǒng)中的DOM和SAX實(shí)現(xiàn)Android SDK中包含了JAXP對應(yīng)javax.xml.parsers包,SAX對應(yīng)的org.xml.sax,DOM對應(yīng)的org.w3c.dom包,所以我們就已經(jīng)有了XML解析所需的JAXP——對SAX和DOM的封裝(抽象類)以及SAX和DOM接口類,但是對于JAXP抽象類的實(shí)現(xiàn),以及DOM和SAX接口類的實(shí)現(xiàn)在哪里呢?是和Java SE 5.0一樣用了Xerces嗎? 不!通過查看Android 1.5的源代碼,我看到這部分的代碼來自Apache Harmony這個開源的Java SE實(shí)現(xiàn),位于./dalvik/libcore/xml/src/main/java/org/apache/harmony/xml目錄。這里包含有一個完整的DOM實(shí)現(xiàn)(dom目錄),對于javax.xml.parser下的抽象類的實(shí)現(xiàn)(parser目錄),以及對于SAX接口類的實(shí)現(xiàn)(除此以外還包括對XMLPullParser接口的實(shí)現(xiàn))。2、XmlPull 和 KXML2XmlPull解析器,提供了資源有限的環(huán)境(如J2ME)應(yīng)用使用的XML解析API,XPP提供了非常簡單的接口——包含一個接口、一個異常、一個建立解析器的factory。它采用了類似JAXP的工廠模式,把接口設(shè)計和實(shí)現(xiàn)分離,KXML2就是一個為J2ME環(huán)境優(yōu)化的一個實(shí)現(xiàn)。在Android SDK中,已經(jīng)包含了XmlPull(org.xmlpull.v1包)以及它的一個AddOn——SAX2 Driver——它使得我們可以通過SAX2的API來操縱XmlPull Parser。另外,通過sourcecode,我們可以看到Android SDK中的XmlPull的實(shí)現(xiàn)是KXML2,位于./dalvik/libcore/xml/src/main/java/org/kxml2目錄。Apache Harmony的目錄中同樣有一個ExpatPullParser類實(shí)現(xiàn)了XMLPullParser接口,但是卻沒有XmlSerializer接口的實(shí)現(xiàn),所以只能說Android中的Harmony也部分實(shí)現(xiàn)了XmlPull API。XmlPull+KXML2是下一步我要實(shí)踐的方案,到時候還得學(xué)習(xí)一下如何“公平”的比較兩者的性能。3、StAX盡管Android中還沒有提供相應(yīng)的支持,但是Streaming API for XML (StAX) 作為用Java語言處理 XML的最新標(biāo)準(zhǔn),無論從性能還是可用性上都有出色的表現(xiàn)。它不僅提供了一個快捷、易用、占用內(nèi)存少的 XML 解析器,它還提供了過濾器接口,允許程序員向應(yīng)用程序業(yè)務(wù)邏輯隱藏不需要的文檔細(xì)節(jié)。感興趣的朋友可以看一看下面的文章。

  使用 StAX 解析 XML,第 1 部分: Streaming API for XML (StAX) 簡介

  使用 StAX 解析 XML,第 2 部分: 拉式解析和事件

  使用 StAX 解析 XML,第 3 部分: 使用定制事件和編寫 XML

  參考推薦:

  Android中解析XML數(shù)據(jù)

  android解析XML總結(jié)(SAX、Pull、Dom三種方式)

  Android 解析XML文件的三種方式 DOM,SAX,PULL

  android解析xml文件的方式(推薦,共三篇)

  Android 上使用 XML

  Android 上使用 XML 和 JSON

  Android 3.0 平臺上創(chuàng)建和解析 XML

  Android XML解析學(xué)習(xí)——創(chuàng)建XML(共六篇,推薦)

  常見xml的屬性大全

  首先按照程序的目錄結(jié)構(gòu)大致分析:

  res/layout/ 這個目錄存放的就是布局用的xml文件,一般默認(rèn)為main.xml

  res/values/ 這個目錄存放的是一堆常量的xml文件

  res/drawable/ 存放的是一些圖片什么的,當(dāng)然圖標(biāo)也在這里

  下面主要對layout下的xml文件做個介紹,順便也把布局的方法總結(jié)一下:

  ·文件的開頭

  

  這是在說明xml版本及字符編碼

  ·緊接著到了關(guān)鍵的部分:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ android"

  android:layout_width="wrap_content"

  android:layout_height="wrap_content">

  

  其中開頭的"LinearLayout"是布局的方式,可以有很多種,最常用的應(yīng)該就是Linear了,其他的布局方法等下在后面總結(jié)。

  接著android:layout_width(height)="wrap_content"是在設(shè)置這部分布局的寬高,也可以是絕對值,當(dāng)然設(shè)置為絕對值時要標(biāo)上單位。

  ·在就之間可以添加控件了,比如要添加一個名字為btn的Button控件,并且Button上顯示的文字是"Test!",可以這樣寫:

  <Button id="@+id/btn"

  android:text="Test!"

  android:layout_width="wrap_content"

  android:layout_height="wrap_content"   />

  開頭id后面的就是控件名稱,在用于添加事件Listener時會用到,而下幾行的android:xxx就是設(shè)置控件的屬性了,這些屬性在Android的文檔中都有,不需要特別去記,一般現(xiàn)查就可以了。

  ·有一點(diǎn)要說明的是,布局方法可以嵌套,有點(diǎn)像java中的Container,可以非常方便的把界面“堆”出來。

  布局方式的簡單說明:

  查了Android文檔發(fā)現(xiàn)布局確實(shí)很多,只列出兩個我自己認(rèn)為較常用的:

  ·LinearLayout線性的布局方式,要么上下,要么左右的添加控件,很常用;

  ·GridView中文翻譯過來是網(wǎng)格布局,控件按照順序依次填到每個格子里就好了,出來的界面會很整齊,較常用;

  具體的幾個布局如下:

  @<1>LinearLayout(線性布局)提供了控件水平垂直排列的模型,同時可以通過設(shè)置子控件的weight布局參數(shù)控制各個控件在布局中的相對大小。水平(vertical)垂直(horizontal)

  Android:layout_x/layout_y=”56px”確定控件位置

  @<3>RelativeLayout(相對布局)允許子元素指定他們相對于其它元素或父元素的位置(通過ID指定)。因此,你可以以右對齊,或上下,或置于屏幕中央的形式來排列兩個元素。元素按順序排列,因此如果第一個元素在屏幕的中央,那么相對于這個元素的其它元素將以屏幕中央的相對位置來排列。如果使用XML來指定這個layout,在你定義它之前,被關(guān)聯(lián)的元素必須定義。

  Android:src=http://blog.soso.com/qz.q/”@drawable/”屬性指定所需圖片的文件位置,用ImageView顯示圖片時,也應(yīng)當(dāng)用android:src指定要顯示的圖片

  @<5>TableLayout(表格布局)以行列的形式管理子控件,每一行為一個TableRow的對象,TableRow也可以添加子控件

  android:collapseColumns=“n”隱藏TableLayout里面的TableRow的列n

  android:stretchColumns=“n” 設(shè)置列n為可延伸的列

  android:shrinkColumns=“n” 設(shè)置列n為可收縮的列

  Android:src=http://blog.soso.com/qz.q/”@drawable/”屬性指定所需圖片的文件位置,用ImageView顯示圖片時,也應(yīng)當(dāng)用android:src指定要顯示的圖片。

  XML的國際化問題

  XML的國際化問題XML的出現(xiàn),使得網(wǎng)站的國際化變得空前的容易。和Java一樣,XML也是使用的Unicode(ISO 10646)作為其編碼標(biāo)準(zhǔn),這是的網(wǎng)站建設(shè)者們能夠很容易的寫出各國的文字和符號,而不必過多的擔(dān)心亂碼的問題。Unicode 包括了所有的ASCII字符,以及簡體中文,繁體中文,日文,韓文,希臘文等等。在XML中甚至可以允許有混合的編碼出現(xiàn),例如,一個顯示中文的網(wǎng)頁可以引用一個德文的單詞,而不必?fù)?dān)心出現(xiàn)亂碼。開發(fā)者不需要專門為了Unicode而在去學(xué)習(xí)什么新的東西,網(wǎng)頁一經(jīng)寫好后,在客戶端的瀏覽器中顯示時,瀏覽器會自動的使用合適的字符集把網(wǎng)頁顯示出來。

  XML對于超鏈接有那些改進(jìn)?

  XML對于超鏈接有那些改進(jìn)?XML對HTML的超鏈接做了一些改進(jìn),增加了一些特性,包括能夠建立“智能”鏈接,可以省去不少手工編寫JavsScript的麻煩。在XML中,鏈接是作為一個對象出現(xiàn)的,可以向操作任何的其它對象那樣,對超鏈接進(jìn)行方便的操作。原來的關(guān)于鏈接的的標(biāo)準(zhǔn)??XLL,XML鏈接語言(XML Linking Language)現(xiàn)在被分為兩種新的標(biāo)準(zhǔn):Xpointer和XLink.Xpointer:在HTML中,可以通過書簽鏈接到一個頁面的任何地方。通過Xpointer你將能夠“尋址到(address to)”(而不是“鏈接到(link to)”)其他頁面的任何一部分的內(nèi)容。顯然的,這對于在文檔引用方面是非常有用的。Xlink:當(dāng)用戶點(diǎn)擊了HTML中的一個超鏈接后,當(dāng)前的網(wǎng)頁被一個新的網(wǎng)頁所替代。Xlink能夠讓W(xué)eb開發(fā)者為鏈接這個對象添加一些動作(behaviors)。例如:在現(xiàn)在你必須用JavaScript來實(shí)現(xiàn)把鏈接的網(wǎng)頁在一個新的窗口中顯示出來,但Xlink通過給鏈接對象添加了一些行為,實(shí)現(xiàn)彈出窗口容易到只是簡單的調(diào)用對象的方法而已。其他的一些有用的應(yīng)用,像彈出的警告對話框,需要用戶做出確認(rèn)的對話框等等,通過Xlink的對象機(jī)制都可以很容易地實(shí)現(xiàn)。但現(xiàn)在,我們還都必須求助于腳本編程采能夠解決。對于一系列相關(guān)的鏈接,XML能夠讓W(xué)eb開發(fā)者創(chuàng)建擴(kuò)展鏈接(Extended Links)來方便的實(shí)現(xiàn)像www.webring.com這樣的網(wǎng)站或網(wǎng)頁,把一些相同主題的網(wǎng)頁自動的鏈接在一起,F(xiàn)在實(shí)現(xiàn)這個功能需要使用到CGI腳本,但是擴(kuò)展鏈接將提供標(biāo)準(zhǔn)的方法來建立資源之間的關(guān)聯(lián)。現(xiàn)在還有一些問題需要得到進(jìn)一步的討論,特別是在“行為”機(jī)制方面還有一些工作要作。但這并不妨礙在不久的將來,Xpinter和Xlink作為新的標(biāo)準(zhǔn)被廣泛使用。

【XML的重要性】相關(guān)文章:

XML認(rèn)證元素類型聲明05-28

關(guān)于IBM XML認(rèn)證考試的要點(diǎn)01-13

XML語言在網(wǎng)頁中有哪些應(yīng)用07-25

用Java如何處理XML數(shù)據(jù)10-22

IBM XML認(rèn)證知識點(diǎn):Dtd09-01

關(guān)于XML方面的面試題及答案05-30

關(guān)于XML技術(shù)在數(shù)據(jù)交換中的應(yīng)用09-28

禮儀的重要性09-14

孕婦護(hù)發(fā)的重要性08-13

績效溝通的重要性06-21