XML 程式設計思想:Thinking XML: 通用商業語言(UBL)(轉)

amyz發表於2007-08-12
XML 程式設計思想:Thinking XML: 通用商業語言(UBL)(轉)[@more@]

  用於商業的 XML 格式很混亂,而通用商業語言(Universal Business Language,UBL)就志在統一這個混亂的領域。最近,UBL 背後的小組首次釋出了該產品,供公開評審。本文中,Uche Ogbuji 首次對 UBL 作了深入探討。

  正如我在 上一篇專欄文章中提到的那樣,通用商業語言(UBL)OASIS 技術委員會在 2001 年 10 月 17 日宣告成立。UBL 是用於商業交易的文件庫,它是從中小型組織以及大型組織的角度來設計的。UBL 背後的委員會(UBL TC)對他們的雄心作了極佳的概括:

UBL TC 的目的是,透過修改現有 XML 模式庫來開發 XML 商業文件(採購訂單和發票等等)的標準庫,以合併其它現有 XML 商業庫的最佳特性。隨後 TC 將設計一種機制,該機制透過將轉換規則應用於常見的 UBL 源庫,來生成特定於上下文的商業模式。UBL 旨在成為每個人都不必獲得特許或支付其它費用就可自由使用的電子交易國際標準。

  UBL TC 最近生產了首個主要產品:UBL Library Content 0p70,以供公開評審。您可以從其主頁下載評審包(請參閱 參考資料)。我鼓勵任何對此感興趣的人仔細研究 UBL,並向 UBL TC 傳送任何意見。使用這一產品無須支付版稅,而且為了避免與此有關的智慧財產權障礙已經做了所有努力。能夠自由使用這麼重要的產品可以產生相當大的公共利益,而且透過改進這一產品,我們都可以獲得許多收益。這個發行版中的材料並不是最終形式:其最終形式可望大約在今年年中完成,甚至到那時,完成的也只是最終 UBL 材料的一部分,因此有充足的時間來對它提出意見並對其內容作補充。您可能想回顧本專欄近期的文章,以瞭解有關 UBL 和相似倡議的大致背景,以及驅動這些倡議的一些核心問題。

  UBL 概況

  對於 UBL,首先要注意的是它非常大而且內容涉及方方面面。最初的發行版是一個 5.6 MB 的 ZIP 檔案,包含可能是最常見的商業表單(而且最可能作為 XML 文件提供):買方和賣方之間從訂單到發票的整個貿易過程。特別是,它包含以下交易的規範:

  • 訂單
  • 簡單及複雜訂單回覆
  • 取消訂單
  • 傳送通知(通常稱為發貨通知)
  • 收據通知
  • 發票

  一組基本的商業概念構成了上述規範。它們稱為 基本商業資訊實體(Basic Business Information Entity,BBIE),並用常見的 UBL 模式表示為核心元件型別(Core Component Type,CCT)。除了 BBIE 以外,其它規範定義了它們專門的 商業資訊實體(Business Information Entity,BIE),它們形成了 UBL 概念模型,從而將商業概念組織到類及其相關元件中。UBL 概念性模型基於諸如統一建模語言(Unified Modeling Language,UML)和實體/關係(Entity/Relational)建模之類的其它建模系統。實際上,UBL 使用 UML 來提供概念性模型的高階檢視。

  但是,管理所有實質性詳細資訊時都使用電子表格。是的。電子表格。它們是一流的使用者友好的資訊管理典範。UBL TC 發覺電子表格用途最為廣泛且易管理,適用於維護概念詳細資訊。UML 類圖從這些電子表格生成而來。電子表格是以 Microsoft Excel 格式提供的,但是我使用 OpenOffice.org開啟它們時也沒有出現問題。UML 圖表是以簡單 GIF 形式提供的。

  遊戲規則

  這些概念性模型形成了用於相關商業文件的 XML 模式基礎。派生這些模式的過程非常嚴格。UBL TC 成立了一個附屬委員會,從事 UBL 命名和設計規則(UBL Naming and Design Rule,NDR)的工作,該附屬委員會建立了一個綜合文件(有 73 頁),包含 UBL XML 元件中的命名和總體設計規則。這些規則的建立確保了包括在 UBL 中的範圍很廣的 XML 元件的一致性。UBL 命名規則示例:

XML 構造的名稱必須使用大小寫混合(camel-case)並且第一個字母為大寫,以便名稱中每個內部單詞的第一個字母大寫,其後跟著小寫字母(示例:AmountContentType)……

  XML 設計規則示例:

對於每個基於物件類的複雜型別定義,必須定義其內容模型,以便它將物件類的每個特性反映為一個元素宣告,它在內容模型內的基數和定位由與語法無關的模型詳細資訊確定。

  以上文件片段中的資料型別特性指的是 W3C XML Schemas(WXS)資料型別,而且 WXS 確實被選為 UBL 的標準模式語言。作為輔助格式,這些文件型別(也稱為 傳送格式(transfer format))用一號抽象語法表示法(Abstract Syntax Notation number One,ASN.1)模式定義。自二十世紀八十年代中期產生以來,ASN.1 一直被使用至今,它是通訊協議中用於指定資料格式的 ISO 標準。對 UBL 使用 ASN.1 模式讓 UBL 可以使用一大批 ASN.1 工具,而且透過使用 ASN.1 的壓縮編碼規則(Packed Encoding Rule),該模式還允許有效地進行 UBL 編碼,這是很有效的二進位制編碼,並且因此也非常緊湊。確實,在許多 XML 討論中,每當論及 XML 的冗長並建議對 XML 進行二進位制序列化時,對於這樣的情況,賢人智士總是建議對映到 ASN.1。UBL TC 採納了這個建議。

  商業文件外觀

  公開評審包還提供了由 Crane Softwrights Ltd. 開發的一套 XSL 樣式表,用於將 UBL 文件轉換成使用者友好的 HTML 或 PDF(透過使用 XSL-FO)。其結果看上去就象卡車司機可能會使用的某種文件,他向安全保衛出示該文件,以獲准進入碼頭並卸下貨物。這個樣式表包還包含了樣本 XML UBL 文件(在“test”子目錄中)。 清單 1 摘自其中的一個文件,它是訂單(Order)交易示例。

  清單 1. 樣本 UBL 訂單交易文件

   4500004875 2001-12-17<!-- Cut to the buyer info --&gt   R300     IDES Retail INC US    

      West Chester Pike   Parsippany   NY       US     
        Joe Bloggs   <!-- Cut to the order line --&gt     10     R100016   Tuner X300       350     <!-- Cut to end --&gt 

  UBL 在很大程度上依賴概念標識和標準化的詞彙表。交易文件都有唯一的數字標識,而且所有 BIE 都可以有相關標識。 Country/Code 元素演示瞭如何引用標準詞彙表:ISO 3166,國際國家程式碼標準(International Country Code Standard)。但是,大體上您可以看到 XML 格式還是相當簡單的。

  結束語

  這是我在本專欄中最後一次討論 UBL,我不知道它是否會成為幫助統一用於商業的 XML 詞彙表這一混亂領域的 “救世主”。UBL 當然極有可能成為主導格式。它定義得相當嚴格、適當利用了其它成果,而且由於它無須支付版稅,因此鼓勵人們廣泛採用它並提供改進。當許多其它這樣的系統似乎已停止開發時,人們還在積極地開發著 UBL。

  另一方面,為了將 UBL 擴充套件到商業中使用的所有不同種類的交易,還有大量工作需要完成。例如,EDI 的 ANSI X12 和 UN/EDIFACT 中的每個都定義了 300 多個 交易集,UBL 必須能先使用這其中的許多交易集,之後某些行業才有可能正式開始使用 UBL。當然,這些詞彙表存在大量重複,可以使用 UBL 的綜合核心模型和可展開性來管理它們,但是毫無疑問,要實現 UBL TC 的雄心壯志,還有大量工作要完成。然而,UBL 還是提供了許多有用產品,一旦今年年中完成 UBL,那麼這些產品將會立即投入使用,這些產品包括:

  • 交易格式的核心集合,用於最初的常見商業表單集合
  • 可重用的概念模型和詞彙表
  • 一些設計實踐,它們從各門學科上借鑑了最佳思想
  • 引導處理 UBL 的應用程式的大量程式碼

  希望您能夠進行更深入的研究,並分享您對 UBL TC 的想法。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-950178/,如需轉載,請註明出處,否則將追究法律責任。

相關文章