<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SmooksJava的XML轉(zhuǎn)換框架

          聯(lián)合創(chuàng)作 · 2023-09-29 23:34

          Smooks 是一款基于 LGPL 協(xié)議的開源 Java 框架,主要用于處理 XML 與 non-XML 格式 ( 包括 CSV,EDI,Java) 之間的轉(zhuǎn)換。Smooks 于 2008 年 5 月發(fā)布 v1.0,目前最新的版本已是 v1.3.1。正如 Smooks 開發(fā)人員所言,“Smooks …讓操作 XML, EDI,XML,CSV 變得更簡單”。

          實(shí)際上,我們通常將 Smooks 看做是一個(gè) XML 到 non-XML 格式的“數(shù)據(jù)轉(zhuǎn)換引擎”,然而在 Smooks 的核心實(shí)現(xiàn)中,本質(zhì)上是為 XML, CSV, EDI 和 Java 等數(shù)據(jù)源提供了一個(gè)事件流(Event Stream),對數(shù)據(jù)源的處理其實(shí)可以看做是針對此輸入數(shù)據(jù)流的一個(gè)個(gè)邏輯事件處理。因此,Smooks 的核心其實(shí)是一個(gè)“結(jié)構(gòu)化數(shù)據(jù)事件流處理器”。在這樣的設(shè)計(jì)中,開發(fā)人員可以用以下兩種模式使用 Smooks:

          • 開發(fā)人員可以編寫自己的邏輯事件處理器,用于定制化處理一個(gè)數(shù)據(jù)源事件流中的特定事件;
          • 開發(fā)人員也可以直接使用 Smooks 發(fā)行版中提供的解決方案(out-of-box solutions )。在這種模式下,開發(fā)人員只需重用別人創(chuàng)建的組件并重新配置它們來對數(shù)據(jù)源進(jìn)行處理。例如,通過使用 Smooks 提供的組件便可完成從 XML 到 Java 對象的轉(zhuǎn)換(正如本文下面將會(huì)展示的一樣)

          因此,在開始使用 Smooks 之前,讓我們先了解一下 Smooks 發(fā)行版中已經(jīng)提供了哪些數(shù)據(jù)轉(zhuǎn)換功能。在 Smooks 的發(fā)行版中,主要包含了 4 大類也已實(shí)現(xiàn)的 XML 和 non-XML 數(shù)據(jù)轉(zhuǎn)換組件 ,分別為:

          Java 綁定 (Java binding)

          Smooks 支持從多種數(shù)據(jù)源生成 Java 對象,包括從 CSV, EDI, XML 或 Java 等(如圖 1 所示)。生成的 Java 對象既可以作為數(shù)據(jù)轉(zhuǎn)換的結(jié)果進(jìn)行使用,也可以成為另一個(gè)數(shù)據(jù)轉(zhuǎn)的輸入。


          圖 1. Smooks Java 綁定
          圖 1. Smooks Java 綁定

          數(shù)據(jù)格式轉(zhuǎn)換(Transformation )

          Smooks 支持多種數(shù)據(jù)格式之間的轉(zhuǎn)換,包括:XML > XML, CSV > XML, EDI > XML, XML > EDI, XML > CSV, Java > XML, Java > EDI, Java > CSV, Java > Java, XML > Java, EDI > Java 等(圖 2 )。


          圖 2. Smooks 數(shù)據(jù)轉(zhuǎn)換
          圖 2. Smooks 數(shù)據(jù)轉(zhuǎn)換

          海量數(shù)據(jù)處理(Huge Message Processing )

          Smooks 能夠支持對海量數(shù)據(jù)(GB 量級)的處理,例如拆分 (Split),轉(zhuǎn)換 (Transform) 海量數(shù)據(jù)至數(shù)據(jù)分片 (message fragment) 以及路由 (Route) 這些數(shù)據(jù)分片至文件,數(shù)據(jù)庫或者 JMS(Java Message Service)。


          圖 3. Smooks 海量數(shù)據(jù)處理
          圖 3. Smooks 海量數(shù)據(jù)處理

          數(shù)據(jù)信息補(bǔ)充(Message Enrichment )

          Smooks 可以利用數(shù)據(jù)庫或者其他數(shù)據(jù)源,添加額外的信息至輸入的數(shù)據(jù)中。例如在網(wǎng)絡(luò)購物應(yīng)用中可以將用戶的偏好(preference)從數(shù)據(jù)庫中添加到用戶訂單 中,以便為后續(xù)業(yè)務(wù)流程提供更多信息。


          圖 4. Smooks 數(shù)據(jù)信息補(bǔ)充
          圖 4. Smooks 數(shù)據(jù)信息補(bǔ)充

          在提供了如此豐富的 XML 和 non-XML 數(shù)據(jù)轉(zhuǎn)換功能的同時(shí),Smooks 同時(shí)還提供了 Eclipse Smooks 插件以方便開發(fā)人員在 Eclipse 集成開發(fā)環(huán)境中開發(fā)和測試基于 Smooks 的數(shù)據(jù)轉(zhuǎn)換應(yīng)用 [7]。接下來,本文將以 Java 綁定 為例,結(jié)合 Smooks Eclipse 插件,較為詳細(xì)的介紹如何在 Eclipse 中輕松完成設(shè)計(jì)、配置和測試基于 Smooks 的 XML 到 Java 對象的數(shù)據(jù)轉(zhuǎn)換。

          瀏覽 25
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费的操逼视频 | 色丁香五月婷婷 | 亚洲优质A片 | 苍井空一级婬片A片免费观看 | 麻豆成人网一区二区 |