<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 38, comments - 9, trackbacks - 0, articles - 1

    JAXP and DOM4J

    Posted on 2005-04-11 12:36 大阿福 閱讀(203) 評論(0)  編輯  收藏

    JAXP是sun提出的一個規范,用于定義如何解析和轉換xml文檔的接口,目前版本已經達到1.3,根據解析轉換供應商無關性,解析器和轉換器可以在具體運行時進行多樣更換。這本身對于應用開發來說是一個福音。
    但是目前jaxp在國內的使用并不是想象中那樣的廣泛,這也是由于一定的市場原因存在(對于不同版本的jvm的支持的需求)。

    現在更多的應用采用dom4j和jdom,其操作接口更為簡便。

    個人以為,dom4j(不太了解jdom)并不是嚴格意義上的xml解析器,其底層也是采用符合jaxp規范的具體實現,并且dom4j的文檔中表明,可以和jaxp協同工作,采用jaxp已經config好的解析器和轉換器。

    在dom4j最新發布版本1.5.2中,由于許可證的問題,內部去除了解析器Aelfred2的實現,這下是否更應該依賴于底層的crimson.jar or xerces.jar,而二者是遵循jaxp規范的。

    具體知識還在研究中。

    對此與www.JavaGarden.net的一段討論:

    .--------------------------------------------------------------------.
    | Session Start: 2005年4月6日                                           |
    | Participants:                                                      |
    |    (sn)大阿福 (toafu@msn.com)                                         |
    |    .... 4月18日,愛因斯坦50周年祭日(ip)www.JavaGarden.net (turbochen@163.com) |
    .--------------------------------------------------------------------.
    [16:39:28] (sn)大阿福:
               http://blog.csdn.net/toafu/archive/2005/04/06/338337.aspx
    [16:39:34] (sn)大阿福: 我理解的對嗎?
    [16:41:57] Turbo, A bea: good
    [16:42:52] (sn)大阿福:
               可是我怎么找不到我直接使用dom4j的時候,它是怎樣于jaxp發生關聯的。當類路徑里面有二者的時候。
    [16:46:18] Turbo, A bea: jaxp不是有幾個factory嗎,就是從這入手的.
    [16:47:06] (sn)大阿福: 可是我沒有看到dom4j對這幾個factory有什么實現?
    [16:48:24] Turbo, A bea: 我記得在一個什么文章上看到過, 好像是從factory上入手, 傳入一個class之類的.
               具體用什么方法還得去查查.
    [16:49:08] (sn)大阿福: 就是跟dom4j發生關聯的?
    [16:49:41] Turbo, A bea: 你應該還記得jdbc的驅動是怎么加載的, 跟那個原理類似.
    [16:50:37] (sn)大阿福: 按順序找幾個路徑下是否有可加載的類
    [16:51:23] Turbo, A bea: 不是, 是DriverManager.forName("classname");
               類似這樣的方式.
    [16:51:32] (sn)大阿福: 對
    [16:53:52] (sn)大阿福:
               是不是這樣理解,dom4j是不遵從jaxp規范的實現,同樣底層是那些遵從了jaxp規范的xml解析器,只是因為dom4
               j提供了很簡便的接口而應用廣泛
    [16:55:49] Turbo, A bea: 我覺得是dom4j遵從了jaxp規范, 并加以擴展, 使API更容易使用.
               我沒有實際用過dom4j, 但知道它比jaxp的dom api好用很多.
               我之前開發全用是jaxp 的 dom api, 取一個元素代碼很啰嗦.
    [16:56:40] Turbo, A bea: 而jdom才是切頭切尾的沒遵從jaxp規范
    [16:56:52] Turbo, A bea: 不易移植.
    [16:57:14] (sn)大阿福:
               好。我想知道的是,如果dom4j和jaxp的api都在classpath下時,如果能夠實現直接操作jaxp接口而保證底
               層用dom4j實現的呢?
    [17:00:08] Turbo, A bea: How does dom4j relate to DOM?
               DOM is a quite large language independent API. dom4j is a
               simpler, lightweight API which is optimised for the Java
               making extensive use of the Java 2 platform such as the
               Java 2 collections.
              
               Though dom4j fully supports the DOM standard allowing both
               APIs to be used easily together.
    [17:00:19] Turbo, A bea: 上面這段是dom4j的FAQ的內容
    [17:00:57] Turbo, A bea: dom4j fully supports the DOM standard
               allowing both APIs to be used easily together.
    [17:01:07] Turbo, A bea: 上面這句最關鍵
    [17:01:52] (sn)大阿福: 不太明白什么意思
    [17:02:28] (sn)大阿福: both是指?
    [17:02:49] Turbo, A bea: 應該是指dom4j和dom
    [17:03:05] Turbo, A bea: together證明了這點
    [17:03:10] (sn)大阿福: 哦?
    [17:04:53] Turbo, A bea: 再看這一句: Dom4j works with any SAX parser via
               JAXP.
    [17:05:37] (sn)大阿福: 呵呵,我就想知道它是如何work with的,或者咱們在代碼里寫的時候如何融合dom4j和jaxp
    [17:05:40] Turbo, A bea: 這就意味者,只要是符合jaxp規范的sax parser, 都可以作為dom4j的sax
               parser使用.
    [17:07:00] (sn)大阿福: 你這句沒錯
    [17:08:04] (sn)大阿福: 那就是說dom4j和jaxp是并列的,只是dom4j不是規范而已,是嗎
    [17:08:58] Turbo, A bea: 我覺得jaxp是規范,而dom4j是規范的擴展.
    [17:09:35] (sn)大阿福: 而xerces等是規范的實現
    [17:09:55] Turbo, A bea: 是啊
    [17:10:21] (sn)大阿福: 是不是jaxp還未直接支持xpath,所以易用性不如dom4j
    [17:10:35] Turbo, A bea: 其實, jaxp最初的實現是由apache捐現的,
    [17:10:47] (sn)大阿福: 所以xml解析器就是apache的
    [17:10:59] Turbo, A bea: 還未完全實現xpath, 不知java5實現的如何了.
    [17:11:10] Turbo, A bea: 是啊
    [17:11:29] (sn)大阿福: 新的1.3支持java5,呵呵
    [17:11:36] (sn)大阿福: 好,多謝指教
    [17:13:40] Turbo, A bea:
               http://www.pconline.com.cn/pcedu/empolder/wz/xml/0412/50976
               2_1.html
    [17:13:52] Turbo, A bea: 這個文章可以一看,但不可全信.
    [17:14:04] (sn)大阿福: OK,3ks
    [17:17:50] Turbo, A bea:
               http://www.54bk.com/more.asp?name=captain&id=1887
               這個文章就可以看明白它們的關系了
    [17:19:36] (sn)大阿福: dom4j應用程序 -> dom4j API -> Xerces/Crimson解析器
               dom4j應用程序 -> dom4j API -> Alfred2解析器
    [17:20:01] (sn)大阿福: dom4j默認都是用第一行的解析器吧
    [17:20:09] Turbo, A bea: apache的Xerces/Crimson解析器是核心,
    [17:20:15] (sn)大阿福: 嗯
    [17:20:24] Turbo, A bea: 其它類型的api都是用這些解析器.
    [17:20:34] (sn)大阿福: Alfred2已經在dom4j
    [17:20:44] (sn)大阿福: 1.5.2中remove掉了
    [17:20:56] Turbo, A bea: 是的
    [17:22:12] (sn)大阿福:
               所以jaxp和dom4j之間并沒有規范和實現的關系,而dom4j使用實現了jaxp規范的apache的解析器來解析xm
               l文檔。
    [17:22:24] (sn)大阿福: 感覺輪廓漸漸清晰了
    [17:22:36] Turbo, A bea: 而jaxp定義的接口,包括dom和sax接口.
    [17:22:54] Turbo, A bea: 然后jaxp也有自己的dom和sax實現.
    [17:23:16] (sn)大阿福: 那就是jaxp RI
    [17:24:07] (sn)大阿福: 是sun做的。sun定義了jaxp規范,完了又實現了自己的一套api,解析器同樣用apache的
    [17:24:45] (sn)大阿福: dom4j是未遵從jaxp規范實現了一套更易用的api,解析器也是用apache的
    [17:25:42] (sn)大阿福:
               dom4j文檔中描述:當jaxp的jar在類路徑中是,dom4j使用的解析器會依據jaxp配置中的進行選擇。
    [17:27:09] Turbo, A bea: 所以'work with jaxp'的意思是指符合jaxp 規范的parser.
    [17:28:09] (sn)大阿福: 對,work with xml parsers obeying jaxp


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 好吊妞788免费视频播放| 99久久精品免费精品国产| 最新仑乱免费视频| 亚洲精品视频在线观看视频| 免费观看91视频| 亚洲欧洲国产日韩精品| 99久久久国产精品免费牛牛| 亚洲高清无在码在线无弹窗| 国产成人免费高清激情明星| 久久精品国产亚洲AV忘忧草18| 国产精品久久久久免费a∨| 亚洲精品无码久久久久秋霞| 日韩激情淫片免费看| 青草青草视频2免费观看| 亚洲欧洲日产国码高潮αv| 国产精品免费久久久久久久久| 国产V亚洲V天堂无码久久久| 久久精品视频免费播放| 亚洲欧洲日产专区| 成人毛片视频免费网站观看| 青青久久精品国产免费看| 亚洲中文字幕无码永久在线| 最近免费mv在线电影| 亚洲精品理论电影在线观看| 亚洲精品成人区在线观看| 亚洲av综合av一区二区三区| 最近最新的免费中文字幕| 国产成人精品日本亚洲语音 | 国产精品免费无遮挡无码永久视频 | 在线观看永久免费| 亚洲熟妇无码一区二区三区导航 | 亚洲性久久久影院| 久久午夜夜伦鲁鲁片免费无码| 亚洲熟妇av一区二区三区下载| 日韩免费一级毛片| 黄网站色视频免费在线观看的a站最新| 亚洲精品美女久久久久| 五月天婷亚洲天综合网精品偷| 少妇太爽了在线观看免费视频| 亚洲精华国产精华精华液好用| 国产亚洲色婷婷久久99精品|