|
有兩種定義形式,dtd文檔類(lèi)型定義和SchemaXML模式; XML Schema 和DTD都用于文檔驗(yàn)證,但二者還有一定的區(qū)別,本質(zhì)區(qū)別是:Scheme本身是xml的,可以被XML解析器解析,這也是從DTD上發(fā)展Schema的根本目的。 另外, XML Schema 是內(nèi)容開(kāi)放模型,可擴(kuò)展,功能性強(qiáng),而DTD可擴(kuò)展性差。 XML Schema 支持豐富的數(shù)據(jù)類(lèi)型,而 DTD不支持元素的數(shù)據(jù)類(lèi)型,對(duì)屬性的類(lèi)型定義也很有限。 XML Schema 支持命名空間機(jī)制,而DTD不支持。 XML Schema 可針對(duì)不同情況對(duì)整個(gè)XML 文檔或文檔局部進(jìn)行驗(yàn)證;而 DTD缺乏這種靈活性。 XML Schema 完全遵循XML規(guī)范,符合XML語(yǔ)法,可以和DOM結(jié)合使用,功能強(qiáng)大;而DTD 語(yǔ)法本身有自身的語(yǔ)法和要求,難以學(xué)習(xí)。 解析XML文件的幾種方式和區(qū)別 Dom解析 在內(nèi)存中創(chuàng)建一個(gè)DOM樹(shù),該結(jié)構(gòu)通常需要加載整個(gè)文檔然后才能做工作。由于它是基于信息層次的,因而DOM被認(rèn)為是基于樹(shù)或基于對(duì)象的,樹(shù)在內(nèi)存中是持久的,因此可以修改它以便應(yīng)用程序能對(duì)數(shù)據(jù)和結(jié)構(gòu)作出更改能隨機(jī)訪問(wèn)文件內(nèi)容,也可以修改原文件內(nèi)容.
JDOM解析 JDOM的目的是成為Java特定文檔模型,它簡(jiǎn)化與XML的交互并且比使用DOM實(shí)現(xiàn)更快.JDOM僅使用具體類(lèi)而不使用接口。這在某些方面簡(jiǎn)化了API,但是也限制了靈活性。第二,API大量使用了Collections類(lèi),簡(jiǎn)化了那些已經(jīng)熟悉這些類(lèi)的Java開(kāi)發(fā)者的使用。 DOM4j解析 DOM4J使用接口和抽象基本類(lèi)方法。DOM4J大量使用了API中的Collections類(lèi),但是在許多情況下,它還提供一些替代方法以允許更好的性能或更直接的編碼方法。直接好處是,雖然DOM4J付出了更復(fù)雜的API的代價(jià),但是它提供了比JDOM大得多的靈活性。 |
|
|
來(lái)自: 昵稱(chēng)22369024 > 《IT技術(shù)》