国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

windy‘s j2ee1.4 tutorial (chinese) --Understanding XML(009)

2019-11-18 16:16:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
聲明:《本文是j2ee1.4 tutorial的中文翻譯,由于本人水平有限,其中還包含有很多的錯(cuò)誤,還希望各位大蝦幫助改正,翻譯正在進(jìn)行中,我會(huì)陸續(xù)發(fā)表最新的部分,望大家能給與支持!》

xml和相關(guān)規(guī)格:消化字母湯(“字母湯”alphabet soup是一種罐頭湯,里面是切成ABC字母圖案的細(xì)面條,讓小朋友邊喝湯邊把里面的字母排成單詞來(lái)玩)

現(xiàn)在,你已經(jīng)對(duì)XML有了一個(gè)基本的理解,需要對(duì)與XML相關(guān)的縮寫(xiě)單詞代表的意義有一個(gè)更深的認(rèn)識(shí)。有很多的基于XML的工作要做,所以你需要學(xué)習(xí)很多的知識(shí)。

目前訪(fǎng)問(wèn)XML文檔的API分成兩種訪(fǎng)問(wèn)方式:順序的和任意的訪(fǎng)問(wèn),分別是:SAX和DOM。確認(rèn)XML的合法性的規(guī)范是DTD  (最初的機(jī)制,作為XML規(guī)范被定義)和不同的概要標(biāo)準(zhǔn)(Schema Standards)提案(一種更新的機(jī)制,它使用XML語(yǔ)法來(lái)做描述合法性準(zhǔn)則的工作)。

其它的一些未來(lái)的標(biāo)準(zhǔn)已經(jīng)接近完成,包括XSL標(biāo)準(zhǔn)(一種建立XML文檔轉(zhuǎn)換-例如XML文檔轉(zhuǎn)換到Html或其他的XML文檔, 和指示文檔如何提交的機(jī)制)。XSL標(biāo)準(zhǔn)的轉(zhuǎn)換部分(XSLT (+XPATH))已經(jīng)完成并且包含在本指南中。其他的接近完成的成果是XML連接語(yǔ)言(XML Link Language)規(guī)范(XML Linking),這個(gè)規(guī)范可以在XML文檔之間做連接。

以上這些就是你將要了解的初步內(nèi)容。這部分也縱覽了一些其它的感興趣的提案,包括HTML類(lèi)似標(biāo)準(zhǔn)(HTML-lookalike standard)-- XHTML 和描述XML包含的信息的元標(biāo)準(zhǔn)-- RDF。有些標(biāo)準(zhǔn)成果擴(kuò)展了XML的能力,比如Xlink和Xpointer。

最后,有很多的感興趣的標(biāo)準(zhǔn)和標(biāo)準(zhǔn)提案建立在XML之上,包含同步的多媒體綜合語(yǔ)言(Synchronized Multimedia Integration Language)-- (SMIL),數(shù)學(xué)標(biāo)記語(yǔ)言(Mathematical Markup Language)-- MathML ,可伸縮的向量圖形(Scalable Vector Graphics)-- SVG,DrawML和許多的電子商務(wù)標(biāo)準(zhǔn)。

余下的部分使你了解這些初步的更詳細(xì)的細(xì)節(jié)。為了保持連貫性,這部分被分為如下方面:
1.    基本標(biāo)準(zhǔn)
2.    概要標(biāo)準(zhǔn)
3.    連接和顯示標(biāo)準(zhǔn)
4.    知識(shí)標(biāo)準(zhǔn)
5.    建立在XML上的標(biāo)準(zhǔn)
基本標(biāo)準(zhǔn)
一些你需要熟悉的基本標(biāo)準(zhǔn)。
SAX
針對(duì)XML的簡(jiǎn)單API(Simple API for XML)

這個(gè)API實(shí)際上一個(gè)協(xié)作產(chǎn)品,它不是W3C的產(chǎn)品。它被包含在里面是因?yàn)樗鼡碛蠾3C建議的特征。

你也可以把這個(gè)標(biāo)準(zhǔn)想象為XML的連續(xù)訪(fǎng)問(wèn)協(xié)議。它擁有在服務(wù)器中讀寫(xiě)XML數(shù)據(jù)的最快的執(zhí)行機(jī)制。也可以稱(chēng)它為事件驅(qū)動(dòng)協(xié)議,因?yàn)檫@個(gè)技術(shù)將在SAX parser中注冊(cè)你的操作,注冊(cè)完后,當(dāng)parser看到一個(gè)新的XML標(biāo)記時(shí)(或者遇到一個(gè)錯(cuò)誤,或者parser想告訴你其他的事情),parser就會(huì)調(diào)用你的回調(diào)方法。

DOM

文檔對(duì)象模型(Document Object Model)
文檔對(duì)象模型協(xié)議將一個(gè)XML文檔轉(zhuǎn)換成一個(gè)對(duì)象集。然后你可以操作隨意的操作這個(gè)對(duì)象模型。這個(gè)機(jī)制被稱(chēng)為“隨意訪(fǎng)問(wèn)”協(xié)議,因?yàn)槟隳軌蛟谌魏螘r(shí)候訪(fǎng)問(wèn)數(shù)據(jù)的任意部分。然后,你可以修改、刪除和插入數(shù)據(jù)。

JDOM and dom4j
當(dāng)文檔對(duì)象模型(DOM)提供非常強(qiáng)大的面向文檔的處理的時(shí)候,它卻不能提供更多的面向?qū)ο蟮暮?jiǎn)化。java開(kāi)發(fā)者會(huì)做更多的面向數(shù)據(jù)處理,而不是面向書(shū)籍、文章和其他的完全的文檔,他們發(fā)現(xiàn)面向?qū)ο蟮腁PI(如:JDOM和dom4j)更容易使用和符合他們的需要。

下面是JDOM和dom4j的不同:
1.    JDOM是更整齊、更小巧的API。在代碼風(fēng)格(coding style)重要的時(shí)候,JDOM是一個(gè)不錯(cuò)的選擇。
2.    JDOM是一個(gè)Java團(tuán)體處理(Java Community PRocess--JCP)初步。當(dāng)完成時(shí),它將是一個(gè)認(rèn)可的標(biāo)準(zhǔn)。
3.    dom4j是一個(gè)更小巧、更快的實(shí)現(xiàn),它使用的范圍很廣。
4.    dom4j是一個(gè)基于制造商(factory-based)的實(shí)現(xiàn)。它更容易修改復(fù)雜的、特殊目的的應(yīng)用程序。在dom4j編寫(xiě)的時(shí)候,JDOM還沒(méi)有使用利用工廠(factory)來(lái)事例化分析器對(duì)象。所以,使用JDOM,你總是得到原始的分析器。

關(guān)于JDOM的更多的信息:http://www.jdom.org/.
關(guān)于dom4j的更多的信息:http://dom4j.org/.

DTD
文檔類(lèi)型定義(Document Type Definition)

DTD規(guī)范是XML規(guī)范的一部分,而不是一個(gè)單獨(dú)的實(shí)體。另一方面,它是可選的?你可以一個(gè)沒(méi)有DTD的XML文檔。有很多的概要(Schema)標(biāo)準(zhǔn)提案來(lái)提供更靈活的規(guī)范。所以,你完全可以將它看成是單獨(dú)的部分。

一個(gè)DTD規(guī)范了不同種類(lèi)的XML標(biāo)識(shí)和合法的標(biāo)識(shí)的布局。你能夠使用DTD來(lái)確定你不能產(chǎn)生一個(gè)非法的XML結(jié)構(gòu)。你也能夠使用它來(lái)確定你正在讀取得XML結(jié)構(gòu)是合法的。

不幸的是,為一個(gè)復(fù)雜的文檔指定一個(gè)DTD是非常的困難的。所以構(gòu)建一個(gè)DTD在某種意義上講是一門(mén)藝術(shù)。DTD可以出現(xiàn)在文檔的前端,作為序的一部分。它也可以作為單獨(dú)的一個(gè)實(shí)體,或者在文檔的序和外部的實(shí)體中同時(shí)存在。

命名空間
命名空間標(biāo)準(zhǔn)允許你用兩個(gè)或更多的XML標(biāo)記集合編寫(xiě)XML文檔。例如你產(chǎn)生一個(gè)基于XML的列表,這個(gè)列表使用的標(biāo)記是另一個(gè)廠商提供的。在整個(gè)XML文檔中“price”數(shù)據(jù)可能會(huì)很多,然而,你只是想顯示針對(duì)一個(gè)結(jié)構(gòu)的“price”數(shù)據(jù)。命名空間規(guī)范定義了一個(gè)限定名稱(chēng)的機(jī)制,這樣可以避免混淆。這樣我們寫(xiě)的程序就可以正確的處理文檔中的信息。

最新的命名空間信息:http://www.w3.org/TR/REC-xml-names.

XSL
擴(kuò)展樣式表語(yǔ)言(Extensible Stylesheet Language)

XML標(biāo)準(zhǔn)指定怎樣識(shí)別數(shù)據(jù),而不是怎樣顯示數(shù)據(jù)。從另一方面來(lái)說(shuō),HTML是告訴數(shù)據(jù)怎樣顯示而不是怎樣識(shí)別數(shù)據(jù)。XSL標(biāo)準(zhǔn)有兩部分,XSLT和XSL-FO。XSL-FO為你提供頁(yè)面上的多區(qū)域定義并將他們連接到一起。當(dāng)一個(gè)文本流被導(dǎo)向這個(gè)集合,它首先流向第一個(gè)區(qū)域,在第一個(gè)區(qū)域被充滿(mǎn)后會(huì)導(dǎo)向第二個(gè)區(qū)域。像這樣的對(duì)象被使用在新聞組、一覽表和雜志出版中。

最新的XSL標(biāo)準(zhǔn):http://www.w3.org/TR/WD-xsl

XSLT(+XPATH)
針對(duì)轉(zhuǎn)換的擴(kuò)展樣式表語(yǔ)言(Extensible Stylesheet Language for Transformations)

XSLT的轉(zhuǎn)換標(biāo)準(zhǔn)本質(zhì)上來(lái)講是一個(gè)轉(zhuǎn)換機(jī)制,它讓你指定將一個(gè)XML標(biāo)記轉(zhuǎn)換成什么并用來(lái)顯示。例如,轉(zhuǎn)換成HTML標(biāo)識(shí)。不同的XSL格式能夠以不同的方式顯示同樣的數(shù)據(jù)。(XPATH標(biāo)準(zhǔn)是一個(gè)尋址機(jī)制,當(dāng)你構(gòu)造轉(zhuǎn)換指令示會(huì)用到它。)

概要標(biāo)準(zhǔn)
一個(gè)DTD使驗(yàn)證相關(guān)的簡(jiǎn)單XML文檔是否合法成為可能,但是做起來(lái)很難。

一個(gè)DTD不能限制元素中的內(nèi)容,不能指定復(fù)雜的關(guān)系。例如,指定一個(gè)<book>中的<heading>必須包含有<title>和<author>,而一個(gè)<chapter>中的<heading>緊緊需要一個(gè)<title>。在DTD中,你只能一次的指定<heading>的結(jié)構(gòu)。DTD不是上下文敏感的,因?yàn)镈TD規(guī)范不是層次的。

例如,一個(gè)郵件地址包含幾個(gè)“解析的字符數(shù)據(jù)(PCDATA)”元素,DTD可能會(huì)像下面這樣:
<!ELEMENT mailAddress (name, address, zipcode)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT zipcode (#PCDATA)>
像你看到的那樣,這個(gè)規(guī)范是線(xiàn)性的。所以,在DTD中,如果你需要另一個(gè)“name”元素,那么你需要為它定義一個(gè)不同的識(shí)別符。你不能簡(jiǎn)單的稱(chēng)它為“name”,因?yàn)樗鼤?huì)和<mailAddress>元素中使用的“name”沖突。

另一個(gè)問(wèn)題是DTD的無(wú)層次性使得理解其中的注解很困難。一個(gè)在最上面的注解看起來(lái)更像是針對(duì)全文結(jié)構(gòu)的注解,但也可能它只是對(duì)第一條的注解。最后,DTD不允許你形式上的指定合法域準(zhǔn)則,例如對(duì)郵政編碼域中的5位數(shù)限制。

最后,一個(gè)DTD使用的語(yǔ)法不同于XML,所以它不能被一個(gè)標(biāo)準(zhǔn)的XML分析器解析。這就意味著你不能將DTD讀進(jìn)DOM,和編輯、修改它。

為了修補(bǔ)這些缺點(diǎn),很多的提案已經(jīng)被提交。像層次性的“概要--schema”,它指定了合法性準(zhǔn)則。后面介紹了一些主要的提案。

XML概要(Schema)
一個(gè)大而復(fù)雜的標(biāo)準(zhǔn),它擁有兩部分。一部分指定結(jié)構(gòu)聯(lián)系(這是最大最復(fù)雜的部分)。另一部分指定XML元素中的內(nèi)容的合法性機(jī)制,可以通過(guò)為每個(gè)元素指定一個(gè)數(shù)據(jù)類(lèi)型。一個(gè)好消息是,XML概要可以指定任何設(shè)想的關(guān)聯(lián)。壞消息是他很難實(shí)現(xiàn)也很難學(xué)習(xí)。

XML概要的更多的信息,可以查看W3C specs XML Schema(StrUCtures) and XML Schema(Datatypes).
http://www.w3c.org/XML/Schema.

RELAX NG
XML的規(guī)則語(yǔ)言描述(下一代)--(Regular Language description for XML(Next Generation))

RELAX NG是一個(gè)新興標(biāo)準(zhǔn),它要比XML結(jié)構(gòu)概要簡(jiǎn)單。再不遠(yuǎn)的將來(lái)它也可能成為一個(gè)ISO標(biāo)準(zhǔn)。

RELAX NG使用規(guī)則表達(dá)式來(lái)表達(dá)結(jié)構(gòu)關(guān)系上的限制,它使用XML概要數(shù)據(jù)類(lèi)型機(jī)制來(lái)表達(dá)內(nèi)容上的限制。這個(gè)標(biāo)準(zhǔn)也使用XML語(yǔ)法,它包含一個(gè)DTD到RELAX的轉(zhuǎn)換器。(說(shuō)它是“next generation”是因?yàn)樗墙Y(jié)和TREX 的RELAX概要機(jī)制的新版本)。

關(guān)于RELAX NG的更多的信息:http://www.oasis-open.org/committees/relax-ng/

TREX
針對(duì)XML的樹(shù)型規(guī)則表達(dá)式(Tree Regular Expressions for XML)

它是一個(gè)通過(guò)為XML文檔中的結(jié)構(gòu)和內(nèi)容描述一個(gè)模版來(lái)表達(dá)合法性準(zhǔn)則的手段。現(xiàn)在作為RELAX NG的一部分。

SOX
面向?qū)ο蟮母乓⊿chema for Object-oriented XML)

SOX是一個(gè)概要提案,它包括擴(kuò)展數(shù)據(jù)類(lèi)型、命名空間和嵌入的文檔。

SOX更多的信息:http://www.ascc.net/xml/resource/schematron/schematron.html.

連接和表現(xiàn)標(biāo)準(zhǔn)
可以證明,HTML中的文檔之間的連接和簡(jiǎn)單的文檔格式是最大的優(yōu)點(diǎn)。下面的標(biāo)準(zhǔn)定位于在XML中保留HTML的好處并增加額外的功能。

XML Linking
這些規(guī)范提供一個(gè)不同的連接能力,但對(duì)XML的使用上形成了一次很大的沖擊。

XLink
Xlink協(xié)議是一個(gè)在XML文檔間處理連接的規(guī)范。這個(gè)規(guī)范允許一些恰當(dāng)?shù)母倪M(jìn)連接,包含雙向連接、連接到多文檔、展開(kāi)連接、內(nèi)部指向連接等。

XML 基礎(chǔ)
這個(gè)標(biāo)準(zhǔn)定義一個(gè)XML文檔屬性,這個(gè)屬性定義一個(gè)“基礎(chǔ)”地址,“基礎(chǔ)”地址在查找一個(gè)關(guān)聯(lián)的地址時(shí)被使用。(例如,一個(gè)簡(jiǎn)單的文件名可以在一個(gè)基礎(chǔ)地址目錄中被找到)

XPointer
一般情況下,Xlink規(guī)范是將使用它的ID的文檔或文檔片斷作為目標(biāo)的。XPointer規(guī)范定義的機(jī)制是針對(duì)“在一個(gè)XML文檔內(nèi)部結(jié)構(gòu)的尋址”的。XPointer規(guī)范不需要文檔的作者為一個(gè)文檔片斷定一個(gè)ID。

XML連接的更多的信息:http://www.w3.org/XML/Linking. 
XHTML
XHTML規(guī)范是XML文檔的一個(gè)用途,只不過(guò)XML文檔更像HTML文檔。既然XML文檔可以包含任意的標(biāo)識(shí),那么為什么不能定義一個(gè)很像HTML標(biāo)識(shí)的XML標(biāo)識(shí)集呢?這就是XHTML的想法。這個(gè)規(guī)范的結(jié)果是一個(gè)文檔既能在瀏覽器中顯示,又能作為XML文檔被處理。盡管它并不是純正的XML,但是它比HTML更容易被處理。

例如,在一個(gè)格式良好的XML文檔中,每一個(gè)標(biāo)識(shí)必須有一個(gè)結(jié)束標(biāo)識(shí)。所以在XHTML中,你可能看到<p>..</p>,或<p/>。但你絕對(duì)看不到單獨(dú)的<p>。

XHTML規(guī)范是一個(gè)HTML4.0到XML的再形成。最新的信息在:http://www.w3.org/TR/xhtml1.

知識(shí)標(biāo)準(zhǔn)
RDF
資源描述框架(Resource Description Framework)

RDF是一個(gè)定義元數(shù)據(jù)的標(biāo)準(zhǔn),元數(shù)據(jù)是描述一個(gè)特殊的數(shù)據(jù)條目是什么的信息并指定怎么樣來(lái)使用這個(gè)數(shù)據(jù)條目。例如,聯(lián)合XHTML規(guī)范或HTML頁(yè)面來(lái)使用,RDF被用來(lái)描述頁(yè)面的內(nèi)容。例如,如果你的瀏覽器存儲(chǔ)你的ID信息像FIRSTNAME、LASTNAME和EMAIL,一個(gè)RDF描述傳輸傳輸個(gè)需要NAME和EMAILADDRESS的應(yīng)用程序相應(yīng)的信息。想象一下,到那一天,你可能不需要在每個(gè)網(wǎng)站里輸入你的名字和郵件地址。

關(guān)于RDF更多的信息:http://www.w3.org/TR/REC-rdf-syntax

RDF概要
RDF概要允許相容性原則和附加信息的規(guī)范。

更多的RDF概要信息:http://www.w3.org/TR/rdf-schema.

XTM
XML主題映射(XML Topic Maps)

在許多方面,主體映射標(biāo)準(zhǔn)是一個(gè)比RDF更簡(jiǎn)單的、更容易使用得知識(shí)表示,它更應(yīng)該值得被關(guān)注。迄今為止,RDF是一個(gè)W3C標(biāo)準(zhǔn),但是,主題映射可能只能作為一種開(kāi)發(fā)者選擇的標(biāo)準(zhǔn)。

XML主題映射更多的信息:http://www.topicmaps.org/xtm/index.html.

建立在XML上的標(biāo)準(zhǔn)
下面的標(biāo)準(zhǔn)和提案都是建立在XML之上的。因?yàn)閄ML基本上是一個(gè)定義語(yǔ)言的工具,所以這些標(biāo)準(zhǔn)使用它定義特殊目的標(biāo)準(zhǔn)語(yǔ)言。

擴(kuò)展文檔標(biāo)準(zhǔn)(Extended Document Standards)
這些標(biāo)準(zhǔn)定義了使用XML產(chǎn)生極端復(fù)雜的文檔的機(jī)制。

SMIL
同步的多媒體綜合語(yǔ)言(Synchronized Multimedia Integration Language)
SMIL是一個(gè)W3C建議的標(biāo)準(zhǔn),它涵蓋了音頻、視頻和動(dòng)畫(huà)。

更多關(guān)于SMIL的信息:http://www.w3.org/TR/REC-smil.

MathML
數(shù)學(xué)標(biāo)記語(yǔ)言(Mathematical Markup Language)

MathML是一個(gè)W3C建議的標(biāo)準(zhǔn),它處理數(shù)學(xué)公式的顯示。

更多關(guān)于MathML的信息:http://www.w3.org/TR/REC-MathML.

SVG
可伸縮的向量圖像(Scalable Vector Graphics)

SVG是一個(gè)W3C工作草案,它覆蓋了向量圖像的顯示。

更多關(guān)于SVG的信息:http://www.w3.org/TR/WD-SVG.

DrawML
繪制元語(yǔ)言(Drawing Meta Language)

DrawML是一個(gè)W3C的附注,它涵蓋了技術(shù)圖表的2D圖像。

更多的關(guān)于DrawML的信息:http://www.w3.org/TR/NOTE-drawml.

電子商務(wù)標(biāo)準(zhǔn)(eCommerce Standards)

這些標(biāo)準(zhǔn)定位于在B2B和B2C的范圍里使用XML。

ICE
信息和內(nèi)容交換(Information and Content Exchange)

ICE是一個(gè)被內(nèi)容經(jīng)營(yíng)者使用的協(xié)議。它的焦點(diǎn)在“在傳統(tǒng)出版和B2B聯(lián)系上自動(dòng)化內(nèi)容轉(zhuǎn)換和重用”

更多關(guān)于ICE的信息:http://www.w3.org/TR/NOTE-ice.

ebXML
基于XML的電子交易(Electronic Business with XML)

這個(gè)標(biāo)準(zhǔn)定位在使用XML建立模塊化的電子交易框架。它是UN/CEFACT的一個(gè)起步產(chǎn)品。

更多關(guān)于ebXML的信息:http://www.ebxml.org/.

cxml
商業(yè)XML(Commerce XML)

cxml是一個(gè)RosettaNet(www.rosettanet.org)標(biāo)準(zhǔn),它的目的是為了不同的買(mǎi)主建立一個(gè)在線(xiàn)的名單。

更多關(guān)于cxml的信息:http://www.cxml.org/

CBL
通用交易庫(kù)(Common Business Library)

CBL是一個(gè)元素和屬性定義的庫(kù)。

更多關(guān)于CBL的信息:http://www.commerce.net/projects/currentprojects/eco/wg/eCo_Framework_Specifications.html.
UBL
統(tǒng)一商業(yè)語(yǔ)言(Universal Business Language)

一個(gè)OASIS初步定位在編譯一個(gè)XML交易文檔的標(biāo)準(zhǔn)庫(kù)。

更多關(guān)于UBL的信息:http://www.oasis-open.org/committees/ubl.

總結(jié)
XML是一個(gè)正在被廣泛的應(yīng)用的標(biāo)準(zhǔn),它正在被用在不同的領(lǐng)域。

(出處:http://m.survivalescaperooms.com)



發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 石林| 新乡县| 龙南县| 珠海市| 金塔县| 浮梁县| 昌吉市| 罗田县| 朔州市| 鄢陵县| 凤庆县| 突泉县| 盘山县| 津南区| 南投市| 云林县| 陆良县| 通江县| 普洱| 喜德县| 于都县| 攀枝花市| 东丽区| 潢川县| 青铜峡市| 攀枝花市| 临西县| 辽阳县| 濮阳县| 崇仁县| 洞头县| 丹凤县| 牟定县| 玛沁县| 东光县| 邵阳市| 色达县| 通化市| 宾阳县| 额敏县| 柳河县|