分享
 
 
 

XML编程思想:ThinkingXML:通用商业语言(UBL)

王朝other·作者佚名  2008-05-21
窄屏简体版  字體: |||超大  

用于商业的 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 订单交易文档

<po:Order xmlns:po="urn:oasis:names:tc:ubl:Order:1.0:0.70"

xmlns="urn:oasis:names:tc:ubl:CommonAggregateTypes:1.0:0.70">

<ID>4500004875</ID>

<IssueDate>2001-12-17</IssueDate><!-- Cut to the buyer info -->

<BuyerParty>

<ID>R300</ID>

<PartyName>

<Name>IDES Retail INC US</Name>

</PartyName>

<Address>

<ID></ID>

<Street>West Chester Pike</Street>

<CityName>Parsippany</CityName>

<CountrySub-EntityCode listID="3166-2" listAgencyID="ISO">NY</CountrySub-EntityCode>

<Country>

<Code listID="3166-1" listAgencyID="ISO">US</Code>

</Country>

</Address>

<BuyerContact>

<ID></ID>

<Name>Joe Bloggs</Name>

</BuyerContact>

</BuyerParty><!-- Cut to the order line -->

<OrderLine>

<BuyersID></BuyersID>

<Quantity unitCode="unit">10</Quantity>

<Item>

<ID>R100016</ID>

<Description>Tuner X300</Description>

<BasePrice>

<PriceAmount currencyID="USD">350</PriceAmount>

</BasePrice>

</Item><!-- Cut to end -->

</OrderLine></po:Order>

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 的想法。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有