模式文档可以被看作一个类型定义和元素声明的集合(词汇表),它们是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了文档的结构和内容模式。而相应的一套精巧的规则(这些规则却很有意思地用DTD的缩写,是一套主要关于标记符的语法规则。来表示)指定了每个Schema元素或者属性的合法用途。如果违反这些规则解析器就会拒绝解析你的Schema以及任何同它相联系的文档。模式文档的名字被归属于一个指定的命名空间,这个命名空间被称为目标命名空间。目标命名空间使我们能够从不同的词汇表中区分定义以及声明。
2.命名空间
XML把名称空间定义为包装XML元素在一起以供将来重用的方式。为了使用XML文档的名称空间中定义的元素,你必须通过“xmins”属性声明你希望采用名称空间。你还必须为该名称空间定义快捷方式的前缀(例如xs:)作为你文档中的根元素,从而使得名称空间在文档中都可用。前缀是用于文档的任何导入名称空间的元素的标识符。例如,在XBRL的模式文档中,有一个经常使用的前缀“ci:”,它的含义是“Commerce and industry”。这样以ci开头的标签我们就清楚它是在描述商、工业方面的内容。
3.数据类型
XML Schema可以让你把XML文档中的元素声明为特定的类型,准许解析器检查文档的内容及其结构。XML Schema定义了两种主要的数据类型:简单类型(simple Type)和复杂类型(complex Type)。这两种数据类型之间的主要区别是复杂类型可以像数据一样包含其他元素以及属性,而简单类型则只能包含数据。
(二) XML解析器
“怎样在程序中描述XML文档的层次结构信息”是XML Parser(解析器)的任务。用于将XML解析绑定到需要它的应用程序的两个最常见系统是W3C的文档对象模型(Document Object Model(DOM))和开放社区的标准——用于XML的简单Api(Simple Api for XML(SAX))。
DOM是一种允许代码直接指向XML文档各部分特性的Api,因此易于编程。它将XML每一样都融入到面向对象编程(OOP)框架中,在比其他任何专门编程语言更高的抽象层次上。DOM是语言无关的,并且其文档对象模型是由许多通用编程语言的库提供的。DOM通常要求将表示文档每个部分的对象都放入内存中。因为这些对象占用内存的总和可能会多达文档本身所占用内存的10倍(或更多),因此DOM在处理大文档时的效率很低。SAX用事件驱动和过程化模型取代了DOM的OOP框架。SAX逐位遍历文档树并发送出与当前节点相应的事件。这意味着SAX可以抛弃暂时不在范围中的文档部分,这使得它更高效。
一种新近发展的XML解析技术是JDOM。JDOM是一种使用XML的独特Java工具包,用于快速开发XML应用程序。它的设计包含Java语言的语法乃至语义。同时它是一个开放源代码项目的作品,目标是通过Java代码来访问、操作并输出XML数据。JDOM Api在操作上比较简单,例如它并不要求程序员一板一眼地操作树状结构,而是直接操作某元素。比较起来,传统的方式就相当麻烦:首先你得遍历到树中的该元素节点的子节点,判断其是否为文字节点,然后才能取得其值。
(三) XSLT(扩展样式单转换语言)
1.什么是XSLT?
XSLT的英文标准名称为eXtensible Stylesheet Language Transformation。根据W3C的规范说明书(具体可见W3C网站http://www.w3.org/TR/xslt11),最早设计XSLT的用意是帮助XML文档转换为其他文档。但是随着发展,XSLT已不仅仅用于将XML转换为HTML或其他文本格式,更全面的定义应该是:XSLT是一种用来转换XML文档结构的语言。
最简单的应用情况首先涉及两个文档:包含原始数据的XML文档和用来转换该文档的XSLT风格表单。XSLT处理器把XSLT风格表单的规则应用到XML文档从而新建出XHTML、WML、SVG或者几乎其他任何XML格式的第3个文档。
多个XSLT风格表单可以采用多种格式来表达某一文档。单一的风格表单还可以把某一数据类型的多种实例转换为标准的报告格式,你只需要修改风格表单就可以改变这些报告模式。而XSLT则可以把数据的多种实例转换为多种格式而不仅仅局限于报告格式:由此可见,XSLT是一种把某一系统的数据格式转换为另一系统(比如B2B交易)数据格式的强大工具。
三 XML会计信息交换的一个应用工具——用友EAI
(一) 用友EAI概念
在用友U8系统的V8.50以上版本中,为了解决U8本身与用友其他产品以及第三方应用软件之间的数据交换问题,U8采用了XML数据交换格式,提供了企业应用集成(EAI)交换工具。EAI可以使企业各个应用系统协同工作,从而可打破信息孤岛的困境。EAI定义了用友U8对外数据交换的标准格式,并提供多种接口模式。EAI可输出符合标准格式的XML文件,提供给外部系统进行数据交换;外部系统的数据制作成符合标准格式的XML数据文件后,也可以通过EAI输入到U8系统中。EAI利用XML标准接口进行数据解析和翻译,并且可由用户灵活设置各种数据之间的映射关系,因此可适用于各种不同行业、企业之间的数据交换。其他的软件产品可以和U8进行挂接,实现协调工作、数据共享。
(二) 用友EAI的特点
1.用于U8内部各系统间、U8与用友其他产品之间、U8与第三方软件之间的数据交换。
2.技术上采用XML数据交换格式,使用XML标准接口,可以进行二次开发。
3.用户可自定义各种档案的数据映射和替换设置,以支持不同行业、企业之间进行数据交换。
4.支持广域网的数据交换。可以远程登陆,执行数据交换。
5.可以执行已定义的交换计划,实现无人值守的数据交换。
(三) 用友EAI的内容
EAI可以进行交换的数据包括基础档案、单据及其他数据,包括:
1.基础档案信息:部门档案、职员档案、地区分类、客户分类、客户档案、供应商分类、供应商档案、存货分类、存货档案、结算方式、付款条件、开户银行、仓库档案、收发类别、销售类型、计量单位、计量单位组、产品结构、采购类型、成套件、费用项目、发运方式、货位档案、自定义项设置、自定义项档案、项目、会计科目、外币、汇率、凭证类别、常用摘要、原因码档案、集团企业目录。
2.单据及业务数据。
3.总账:凭证、银行对账单。
4.结算中心:内部结算单。
5.应收款管理:应收单、收款单、销售发票(《销售管理》未启用时)。
6.应付款管理:应付单、付款单、采购发票(《采购管理》未启用时)。
7.成本管理:材料消耗数据。
8.工资管理:人员档案、工资项目数据。
9.固定资产:固定资产卡片。
10.采购管理:采购订单、采购到货单、采购发票、供应商存货价格。
11.销售管理:销售订单、发货单、销售发票、销售发票导入到内部结算单。
12.库存管理:入库单、出库单、库存量。库存量只支持从U8系统中导出数据,不支持外部数据导入U8系统。
(四) 用友EAI的操作流程
1.系统注册:在进行数据交换前,需要注册外部系统及定义与之相对应的U8产品年度账套。外部系统是相对于当前U8账套的其他系统,可以是U8产品的其他模块、用友的其他产品、第三方软件;内部系统是当前服务器的U8年度账套。在导入导出的XML文件中根据注册编码确定标识信息,根据标识信息确定外部系统与之相对应的U8年度账套,在两者之间进行数据交换。
2.数据映射:设置外部、内部基础档案数据的对应关系。在进行数据交换时,外部系统与内部系统的基础档案可能存在不一致的情况,这时需要建立外部数据、内部数据之间的对应关系。建立数据映射之后,数据交换时系统自动进行基础档案的对应转换。外部数据与内部数据的映射可以一对一,也可以多对一,但不能一对多,即不允许导入时一个外部数据分割为多个内部数据;若外部、内部系统的某类基础档案信息完全一致,则无需建立对照关系。
3.导入导出设置:设置每个具体项目的导入、导出文件的存放路径及导出数据的过滤条件。用户可设置每个具体项目的导入、导出文件的存放路径及导出数据的过滤条件,在以后的数据交换时系统按照预设的条件进行操作。
4.替换设置:设置单据在导入导出操作中需要替换的项目。替换设置功能主要用于设置单据在导入导出操作中需要替换的项目。单据的替换项目设定以后,在执行数据交换时,系统就会根据预设的替换条件进行操作。如在用友U8系统中,根据会计的岗位不相容职责,需要随时更替制单人,所以可以在“替换项目列表”下拉列表中选择“凭证”,在“子项目列表”中选择“制单人”,选择“是否”替换为“是”、选择“按编码还是名称”为“名称”。
5.数据交换:进行数据的导入、导出操作方式。数据导入和导出工作的执行由数据交换功能完成,可以一次导入或导出多种数据类型。(1)数据导出:U8数据导出XML文件:选择进行导出操作,从U8内部系统向外部系统导出数据。可在数据导出时以邮件方式发送数据。(2)数据导入:外部XML文件数据导入U8:选择进行导入操作,从已注册的外部系统向U8内部系统导入数据。
$第三节 XBRL与价值链会计信息交换
一 XBRL的基本含义
XBRL(可扩展商业报告语言,eXtensible Business Reporting Language),是XML(可扩展的标记语言,extensible Markup Language)在财务报告信息交换中的一种应用,是目前应用于非结构化信息处理尤其是财务信息处理的最新标准和技术。
XBRL的构想最早是由美国华盛顿州的会计师Charles Hoffman在1998年4月份提出的。Charles Hoffman在AICPA赞助下于1998年12月31日提出了一个使用XML作为编制财务报表工具的原型。XBRL原型为“XFRML”“(XML based Financial Reporting Markup Language),是一项由美国会计师协会(AICPA)于1999年发起的计划,其目的是要提供一个以XML为基础的全球企业信息供应链,方便使用者去取得、交换、分析。2000年AICPA邀集专业协会、会计师事务所、投资组织、软硬件供应商以及会计软件发展机构共60余个的单位组成组织,共同参与推动XBRL,2000年7月31日发布了XBRL规格书(Specification)Version1.0及XBRL分类标准(Taxonomy),在短短的时间内,世界上许多国家都已经开始积极进行XBRL的推广。
XBRL提供一种标准化的方法去编制、发布公司财务报告和其他信息。它通过对有关财务信息内容增加标记的方法,使得企业内部和外部对财务信息的收集、处理、转换变得十分方便。XBRL能够又被称为“商业的数字语言”,是因为它方便了对包含在商务报告中的信息的重用,并且提供了该信息的结构与背景。
作为新一代网络传输语言的XML,不仅可以由程序员对文本文件加上标识,告诉每一个字或每一组数字代表的含义,而且还允许信息在一个组织的内部和外部、不同的用户和不同的软件之间相互交换。正是这些特点,方便了有关信息文件的生成、传输和检索,使之成为开发电子商务的语言。XBRL是利用XML的结构,在计算机程序上对电子化的商业信息的组成部分加上特定的编码或标识,从而使财务信息可以在任何不同的会计核算软件和技术条件下实现交换。
XBRL为用户和报表编制者解决了如下难题:首先提供给财务报告用户搜索以不同的技术形式(包括互联网)发布的财务信息的可靠手段,因为不管被检索公司所使用的是什么会计软件,只要加了标识,用户就可以很快利用计算机搜索到所需要的财务信息;其次提高了财务报告编制者报告编制效率,减少了工作量。各个账户都按现行会计准则和有关规定加上标识,可以很快将有关账户的数据收集到一起。如此的特点,使得在美国的很多企业已经开始在向银行或股东发布财务报告、向证券监管机构呈送法定文档或者把企业的信息公布到自己的商务网站时都运用XBRL格式。
二 XBRL的技术框架
XBRL的结构可以包括以下几个方面:
(一) 规范(Specification)
XBRL规范则定义了表达信息的XML元素和属性,这些信息可以被用于商务报告的创建、交换和比较等任务。它提供了XBRL是什么以及XBRL怎样工作的技术性解释,陈述了XBRL的框架模型,并详尽地定义了分类(Taxonomies)和实例文档(Instance Documents)的句法与语义,明确规定要怎样才能写出一份符合规范的XBRL文档。
XBRL本身筑构于XML技术的基础之上,标签为自己定义,但它必须遵循规则。规范中对于XBRL的模式以及指明模式文件地址的“Schema Location”两项标准都进行了详细的说明。
例如,一个典型的XBRL group元素中涉及schema的内容如下:
〈group xmlns=http://www.xbrl.org/2001/instance
xmlns∶xsi=”http:/www.w3.org/2001/XMLSchema-instance”〉
而在XBRL的模式文件中,相应的目标名称空间有如下的定义:
〈schema TargetNamespace=http:/www.xbrl.org/2001/instance…〉
(二)分类(Taxonomies)