• 4.42 MB
  • 2022-04-22 13:32:18 发布

GBZ19669.1-2005XML在电子政务中的应用指南.pdf

  • 46页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'免费标准下载网(www.freebz.net)ICS35.240.60L67石昌中华人民共和国国家标准化指导性技术文件GB/Z19669-2005XML在电子政务中的应用指南GuideforXMLapplicationine-government2005-02-18发布2005-05-01实施一.--------------一一---~~~牢C冒瞥Nat%R臀臀}2!发布免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005目明青本指导性技术文件由国家电子政务标准化总体组提出并归口。本指导性技术文件主要起草单位:万达信息股份有限公司、太极计算机股份有限公司、首都信息发展股份有限公司、黎明网络有限公司、东莞市开普互联信息有限公司。本指导性技术文件主要起草人:李光亚、张峰昌、肖筱华、董晶、程华军、龚智辉、肖红、张素伟、刘晓玫、狄楠、王晓晖、邓一晖、汪敏、石俊。免费标准下载网(www.freebz.net)无需注册即可下载标准下载网(www.bzxzw.com) 免费标准下载网(www.freebz.net)cB/z19669-2005XML在电子政务中的应用指南1范围本指导性技术文件对电子政务标准技术参考模型体系结构中的不同层次的不同模块进行了共性需求的归纳和总结,给出了电子政务中可以采用的XML技术指南,并对相关技术进行了分析比较。本指导性技术文件适用于以下对象:a)电子政务业务操作人员;b)电子政务系统的系统集成商;c)电子政务系统的软件开发商;d)电子政务系统建设的监理单位。上述对象以外的相关单位、厂商、个人也可参照使用。2术语和定义、缩略语2.1术语和定义下列术语和定义适用于本指导性技术文件。2.1.1业务模型businessmodel对一个组织的业务分工、业务流程、业务信息等方面的描述。2.1.2目录服务directoryservice一种在分布式计算环境中、Internet上提供目录查找的服务。2.1.3信息采集informationcollection从各种信息源(包括系统、文件或者用户等)收集信息的过程。2.1.4信息发布informationpublication通过媒体及网络,将信息正当或授权公开发表、展示。2.1。5流程控制processcontrol对业务过程的基本控制操作,包括启动、暂停、恢复、放弃、继续、销毁等基本操作。2.1.6样式表stylesbeet一种描述文档数据显示在屏幕上或打印在打印机上的表现样式。2.1.7Web服务Webservice描述一些操作(即发布、查找、绑定,利用标准化的XML消息传递机制通过网络访问这些操作)的接口。2.1.8XFormsW3C组织制定的一种能够用于多种平台(包括桌面电脑、手持设备和信息系统)的Web表单规范。免费标准下载网(www.freebz.net)无需注册即可下载标准下载网(www.bzxzw.com) 免费标准下载网(www.freebz.net)GB/Z19669-20052.1.9XLANG微软公司所提出的一种基于Web服务的业务流程定义语言。2.1.10XML命名空间XMLnamespace将XML元素包装在一起以供重用的方式。2.1.11XPathW3C组织制定的定位XMI,文档中内容单元的描述语言,主要设计用于XSLT和XPointero2.1.12XPointerW3C组织制定的语言规范,用于定位Internet媒体类型的网络资源。2.1.13XQueryW3C组织的一种构建在XPath规范之上的灵活的查询语言,用来从XMI.文档中抽取数据。2.2缩略语下列缩略语适用于本指导性技术文件。API(ApplicationProgrammingInterface)应用编程接口ASP(ActiveServerPage)动态服务器主页BPEL4WS(BusinessProcessExecutionLanguageforWebService)Web服务的商业过程执行语言BPML(BusinessProcessModelingLanguage)商业过程建模语言BPSS(BusinessProcessSpecificationSchema)商业过程规格模式CA(CertificateAuthority)认证机构COM(ComponentObjectModel)组件对象模型CORBA(CommonObjectRequestBrokerArchitecture)公共对象请求代理架构CSS(CascadeStyleSheet)层叠样式表DAP(DirectoryAccessProtocol)目录访问协议DCOM(DistributedComponentObjectModel)分布式组件对象模型DNA(DistributedinterNetApplicationArchitecture)分布式互联网应用体系架构DOM(DocumentObjectModel)文档对象模型DSMI.(DirectoryServicesMarkupLanguage)目录服务置标语言DTD(DocumentTypeDefinition)文档类型定义DTP(DistributedTransactionProcess)分布式事务处理ebXMI.(electronicbusinessXML)电子商务可扩展置标语言EJB(EnterpriseJavaBean)企业JavaBeanHTML(HyperTextMarkupLanguage)超文本置标语言HTTP(HyperTextTransferProtocol)超文本传输协议ICE(TheInformationandContentExchangeProtocol)信息和内容交换协议IDL(InterfaceDefinitionLanguage)接口定义语言ISAPI(InternetServerApplicationProgrammingInterface)互联网服务器应用程序编程接口J2EE(Java2PlatformEnterpriseEdition)Java2平台企业版J2SE(Java"2PlatformStandardEdition)Java2平台标准版JAXP(JavaAPIforXMLParsing)用于XML文档处理的使用JavaAPI免费标准下载网(www.freebz.net)无需注册即可下载标准下载网(www.bzxzw.com) 免费标准下载网(www.freebz.net)GB/Z19669-2005JAXR(JavaAPIforXMLRegistries)用于XML注册的JavaAPIJDOM(JavaDocumentObjectModel)Java文档对象模型JAXB(JavaAPIforXMLDataBinding)支持XMI.数据捆绑的JavaAPIJAXM(JavaAPIforXMI,Messaging)支持XML通信的JavaAPIJCP(JavaCommunityProcess)Java团体过程JDBC(JavaDataBaseConnectivity)Java数据库连接JMS(JavaMessageService)Java消息服务JSP(JavaServerPages)Java服务器页面LDAP(LightweightDirectoryAccessProtocol)轻型目录访问协议MathML(MathematicalMarkupLanguage)数学置标语言OASIS(OrganizationforAdvancementofStructuredInformationStandards)结构化信息标准推进组织ODBC(OpenDataBaseConnectivity)开放数据库连接OMG(ObjectManagementGroup)对象管理组织ORB(ObjectRequestBroker)对象请求代理PKI(PublicKeyInfrastructure)公共密钥架构RPC(RemoteProcedureCall)远程过程调用SAML(SecurityAssertionMarkupLanguage)安全认证置标语言SAX(SimpleAPIforXML)用于XMI,的简单APISGML(StandardGeneralizedMarkupLanguage)标准通用置标语言SMIL(SynchronizedMultimediaIntegrationLanguage)同步多媒体集成语言SOA(ServiceOrientedArchitecture)面向服务的架构SOAP(SimpleObjectAccessProtocol)简单对象访问协议SVG(ScalableVectorGraphics)可扩展矢量图形规范UDDI(UniversalDescription,DiscoveryandIntergration)统一描述查找与集成URI(UniformResourceIdentifier)统一资源标识符URL(UniformResourceLocator)统一资源定位符URN(UniformResourceName)统一资源名称VoiceXML(VoiceeXtensibleMarkupLanguage)语音可扩展置标语言W3C(WorldWideWebConsortium)万维网联盟WDDX(WebDistributedDataeXchange)基于Web的分布式数据交换WfMC(WorkflowManagementCoalition)工作流管理联盟XKMS(XMLKeyManagementSpecification)XML密钥管理规范X-KISS(XMLKeyInformationServiceSpecification)XML密钥信息服务规范X-KRSS(XMLKeyRegistrationServiceSpecification)XML密钥注册服务规范WSCI(WebServiceChoreographyInterface)Web服务互动接口WSDL(WebServiceDescriptionLanguage)Web服务描述语言WSFL(WebServiceFlowLanguage)Web服务流程语言XACML(eXtensibleAccessControlMarkupLanguage)可扩展的访问控制置标语言XHTMI_(eXtensibleHyperTextMarkupLanguage)可扩展的超文本置标语言XLink(XMLLinkLanguage)XMI.链接语言XML(eXtensibleMarkupLanguage)可扩展置标语言XPDL(XMLProcessDefinitionLanguage)XML流程定义语言免费标准下载网(www.freebz.net)无需注册即可下载标准下载网(www.bzxzw.com) 免费标准下载网(www.freebz.net)GB/Z19669-2005XSL(eXtensibleStylesheetLanguage)可扩展的样式语言XSLT(eXtensibleStylesheetLanguageTransformations)可扩展的样式语言转换3电子政务框架3.1电子政务概念电子政务已成为世界各国新一轮公共行政管理改革和衡量国家及城市竞争力水平的重要标志之一。随着我国改革的深人和加入WTO,电子政务建设已成为当前我国信息化建设的首要任务。a)从电子政务的内涵看,电子政务是指运用信息与通信技术,打破行政机关的组织界限,改进政府组织,重组公共管理,实现政府办公自动化、政府业务流程信息化,为公众和企业提供广泛、高效和个性化服务的一个过程;b)从电子政务的对象和职能看,可分为内部和外部两个部分。内部主要是各级政府之间、政府的各部门之间以及各公务员之间的互动,承担政府的决策和管理职能;外部主要是政府与企业、政府与个人之间的互动,承担政府对外服务和监管职能;c)从不同层面电子政务推进的策略上看,由于中央、省(市)、地市(区县)、县市(街镇)各级政府所担负的主要职责不同,因而电子政务在各层面上的实施重点和策略也有所不同。级别越高,内部宏观决策和管理的职能越重,涉密信息越多,实施电子政务应重在领导决策系统建设和政府机构之间的信息资源共享;级别越低,其面向企业和个人的服务和监管职能越多,涉密信息越少,电子政务实施策略应着重于与社会、公众的交互行为,实现政府管理的开放性和透明性;d)从电子政务发展的阶段看,电子政务内部建设一般要经历公文电子化一办公自动化一行政管理网络化一网上协同办公四个阶段;外部建设一般应经历网上简单的信息发布一网上单向互动一网上双向互动一在线事务处理四个阶段。内部建设是对外服务的基础和支撑,而对外服务的深人开展又促进了内部业务管理的整合。国际著名咨询公司GartnerGroup对电子政务外部建设的四个阶段有类似的划分(如表1所示);e)从电子政务建设的政策上来看,可以包含以下几点:谨慎规划、小步快走;合理设置优先级;以政府业务流为主线;尽早实施标准化;分布构建战略性国家信息系统;建立有效的安全管理体系。表1GartnerGroup对电子政务外部建设的四个阶段的划分二扭一免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005表1(续)巨一亩布勺综上所述,电子政务建设是一个动态的发展过程,一个复杂的系统工程,一个长期而艰巨的任务。其实质是通过电子政务的建设,推动政府职能的“强化、弱化、转化”,解决政府在市场经济条件下的“越位、缺位、错位”问题,从而实现政府职能转变、工作方式创新、业务流程再造,以适应我国加人WTO的新形势和由计划经济向市场经济发展的新趋势。3.2电子政务标准技术参考模型图1中是《国家电子政务标准化指南)(第一版)中给出的电子政务标准技术参考模型。皇图1电子政务标准技术参考模型3.2.1网络基础设施层网络基础设施层向各类电子政务应用提供必要的网络基础环境,是具体电子政务应用的承载体,强调的是可用性和可靠性,除了采用冗余的部件之外,该层在很大程度上与管理层密切相关,关于这一层的划分,可参照中共中央办公厅和国务院办公厅联合下发的17号文件。3.2.2应用支撑层应用支撑层主要是由一些不同电子政务应用所需的共享服务所组成,这些共享的服务与特定的业务应用无关,支持多个不同业务应用、独立于单个组织部门业务逻辑,如信息交换、事务处理、流程控制、数据存取等。应用支撑层是电子政务参考模型中非常重要的一个组成部分,使得政府的服务提供呈现出良好的组织结构。没有共享服务,也就缺乏有效服务发布的基础,并且会由于创建重复的服务而浪费财力和物力。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)cB/z19669-2005同样,应用支撑层对于数据存取而言也是非常重要的,建立全局的共享数据,是整个电子政务应用的核心。例如基础数据库可以包括宏观经济数据库、人口基础信息库、法人单位基础信息库、自然资源和空间地理信息基础数据库,其中关于基础数据的数据元管理和维护是核心的基础。建立全局的统一的数据视图,可以从根本上消除不同业务部门、不同数据库之间的信息冗余和冲突,为政府部门整合已有的业务、开展新的业务奠定基础。3.2.3应用层应用层包含了面向不同政府应用领域、不同客户的特定应用,至少存在着几种不同的划分方法:a)按行业来分,例如工商、税务、社保、劳动、公积金等;b)按用户来分,例如个人、企业、社团、政府等;。)按系统类型来分,例如公文处理、业务处理、信息发布、服务等。应用层通过调用底层应用支撑层的共享服务和数据存取,完成特定应用的功能,从而完成通过网络基础设施向不同客户完成政务服务的整个过程,该过程是双向的,既要向客户展示服务完成结果信息,又要从客户收集完成服务所必要的数据。应用层考虑的重点是服务的执行效率、服务的个性化、服务发布的多样性、服务实施的便利性以及如何与政务部门内部已有系统和遗留系统的整合等问题。3.2.4信息安全安全问题是所有国家在电子政务的发展中都十分关心和重视的问题,而电子政务的安全体系必须至少从以下几个环节来加以规范化及实施:a)安全评估;b)安全策略;c)安全防御;d)安全监控;e)安全审计;f)安全响应恢复。在以上所有的环节中,最基础也最重要的是安全策略的制定,包括政府信息系统的安全等级的分类、与安全等级相应的安全措施的要求、对参与系统开发和运行的企业的要求和约束、系统安全的审计、安全问题的报告制度和程序、紧急情况的处理和应急措施等。所以,非常有必要,从国家的层面对上述的环节进行必要的标准化规范工作,从而从整体上提高国内电子政务系统的安全水平和层次。3.2.5管理整个参考模型中所有其他的层次(应用支撑层、应用层、网络基础设施层)构成了整个电子政务的基础结构,它们均需要一个管理结构和管理流程支持以保证各个层次的有效和良好运作。该层次至少包含以下几个部分:a)系统管理:电子政务系统的每个硬件和软件都是政府部门的资产,而系统管理的主要任务也就是如何保证这些资产的可靠性、可用性、性能,具体的功能模块包括资产管理、配置管理、问题管理、变更管理、事件管理、性能管理等内容;b)标准:标准的目的是用来保证不同系统部件之间的互操作性,从而降低支持和开发成本。标准在保证互操作性的同时,也要保证应用层次的灵活性和可选择性;c)策略:策略是各个政府部门需要遵循的规则,一般为指南或建议参考的形式,策略增强了标准在使用系统架构中的可操作性;d)市场化和培训:电子政务应用只有在客户的使用中才能变得非常有效。市场化用来决定客户所需的服务,以及最有效地发布服务的途径。而培训是用来保证IT实施、规划、采购人员正确地理解国家电子政务的架构、策略、标准、指南等内容,从而创建电子政务应用。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-20054XML技术介绍4.1XML概念和核心技术XML概念和核心技术共分为三大部分:XML基本概念、XML相关概念和XML应用层概念和技术。即:a)XML基本概念包括XML,Namespace,XMLBase,XMLInformationSet,CanonicalXML,XMLInclusions等;b)XML相关概念包括DTD,XMLSchema,XLink,XPath,XPointer,DOM,SAX,XSLT,XQuery,CSS,XSL,XForms等;c)XML应用层概念和技术包括XHTML,WML,VoiceXML,ebXML,RDF,Webservice等。国XXMXCMLaMXLnILMnoNfnLoIinaFrcmBmaleluasXtpeioManncLesSet--XMTXXLXDPLoPSTiancDnthkthermaXMLXXDSQASOuLXMeTryXXXCSFLSoS-rLSFmOs图2XML核心技术体系框图4.1.1XML墓本概念XML是一种具有数据描述功能、高度结构性及可验证性的置标语言。XML允许用户自行定义标记和属性,并可依照所定义的标记与属性的语法来开发应用程序;XML可以通过标记来描述数据,或配合属性来辅助描述数据,宜作为对象或标准的描述语言;XML可以借助验证规则来规范一个XML文件的内容和结构,适合用于政府机构之间、政府与企业之间、政府与个人之间和政府与商业机构之间数据交换的格式。SGML是第一个标准化的信息结构化技术,1986年成为ISO标准。HTML对SGML进行了极大地简化,从而成为现在Internet的标准。1998年2月W3C发布了XML1.0规范,是SGML简化的子集,继承了SGML的三个重要特性(可扩展性、结构化、有效性),成为表示结构化信息的一种标准文本格式。XML的特点:a)组织数据结构XML宜用于组织结构性资料。结构性资料包括电子数据表、地址簿、配置参数表、财务交易及技术制图等。XML可为一些文本格式设计规则(指引或规约),这些规则可用来帮助组织资料。XML使计算机很简易地产生及读取资料,并确保数据结构精确,没有二义性。XML避免了一般语言设计的缺漏,是可扩展的、平台独立的、可支持国际化及地区化的格式,并完全适应Unicode标准。b)XML的形式与HTML类似与HTML一样,XML使用标签<tags>(以“<>”括着文字)和属性(以名称“name"=数值“value”的形式)。HTML指定了标签和属性的定义及在浏览器中表现的形式,而XML只使用标签来界定一块数据,这块数据的具体解释完全由应用程序读取时决定。例如某XML文档中的“

",不一定指的是段落,依据上下文的内容,可能是价格“price"、参数“parame-ter"、人“person"等。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)Gs/z19669-2005。)XML是文本格式,宜用于计算机阅读采用文本格式的好处是不需要通过其他程序处理来阅读文本,用户可以使用喜爱的文本处理器来读取它,文本格式也可以让开发员更容易调试应用程序。与HTML一样,XML文档一般是不需要直接阅读,但如果有需要也可以直接阅读。与HTML不太一样的是,XML的规则非常严格,若没有标签或属性漏了引号便使这个XML文档无法使用,而HTML内这些错误却可以接受。d)XML是很冗长的因为XML是文本格式并采用标签来分界不同的数据,所以XML文档比所有二进制格式的文档大。e)XML是一个技术大家族除XMLI.0之外,"XML家族”是一个不断成长的模块集,提供有用服务以配合重要及需求率高的1作。XLink解释了如何加人超链接到一个XML档;XPointer及XFragments是指示一部分XML文档的语法,XPointer类似URL,但不是指向网上文档,而是指向XML文档中的一部分内容。CSS在XML中使用与在HTML中使用没有差别;XSL是表达样式表的高级语言,是以一种用作重新排列、加人或减除标签及属性的转化性语言XSLT为基础;DOM是用来在程序语言中操作XML文档(及HTML文档)的标准函数集;XMLSchemas1和2帮助开发者精确地定义一套基于XML格式的结构;其他种类的模块和工具可供使用或正在开发。f)XML是模块化的XML可通过合并及重用其他格式来制定新的文档格式。两种独立开发的格式可能包含一些具有相同名称的元素或属性,合并时需要解决语义冲突,在这方面应采用XMI,中的命名空间。g)XML没有版权限制且平台独立XML是开放的标准,独立于任何平台。同时,很多组织(包括W3C)对它提供技术支持。XML有三种类型的校验结果:a)无效(Invalid)文档:如果一个文档指定一个DTD,但不符合其在DTD中指定的规则,该文档还是无效的;b)格式正确(Well-Formed)文档:文档符合XML语法规则,但没有制定一个DTD;。)有效(Valid)文档:文档应符合XML语法规则以及其相关验证规则,如DTD所制定的规则。XMLNamespace:XMLNamespace的严格定义是:Namespace是用URI加以区别的,是在XML文件的元素和属性中出现的所有名称的集合。有了Namespace,便可以保证在XML的文件中使用的名称独一无二。Namespace的声明要用到前缀xmlns。声明的Namespace位于指定的URI,它的名字为:Namespace名。Namespace名必须唯一、一致。由它修饰过的元素就默认为由指定URI处的Namespace约束。XSL与XHTML都使用了命名空间。示例:XMLInclusions:XMLInclustions为通用的XML信息集包含机制定义了处理模型与语法。XML信息集包含机制是通过合并许多XML信息集为一个简单合成信息集而实现的一种信息引人机制。XML文档(信息免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005集)的合并与合并过程控制的规范是使用类XML语法(元素、属性、URI引用)的。面向通用用途的XML信息集包含机制所引人的XML文档是well-form的,但不一定是有效(valid)的XML文档。XMLInformationSet:XMLInformationSet的功能在于它提供了一套通用的语法以便于描述某一个XML文档的内容。也就是说,XMLInformationSet定义T一组信息类别,包括文档(document)、元素(element)、属性(at-tribute)、字符(character)、注释(comment)等十五种信息类别。通过这些信息类别来描述XML文档的不同方面。从应用角度来看,任何XML处理器在处理某一XML文件的时候,即是利用XMLInforma-tionSet的信息类别来回传和描述XML文件的内容。W3C的其他很多XML相关技术规范在解释其XML语法的时候都是使用XMLInformationSet作为基本工具来实施语法描述,XMLInformationSet目前已经成为基于XML的技术规范文档中描述语法的标准手段。CanonicalXML;在XML1.0标准的允许下,由于语法形式的可变性,文档的物理表示具有多样性,例如多个空格与单个空格的等价、回车换行的任意性等。该标准就是要描述一种方法,能产生规范形式的XML文档。通过CanonicalXML进行规范化之后,逻辑上等价的多个XML文档应该完全一样。例如数字签名,通过规范化之后实施数字签名(例如XMLSignature),逻辑相同的XML文档将不会出现无法通过签名校验的情况。XMLBase:XMLBase用于指定相对URL的绝对路径,与HTML中的BASE标记功能相似。不同的是,XMLBase是通过元素的xml:base属性指定的,前缀xml用于表示命名空间。XMLBase的作用范围包括其所有后代元素的整个元素,除非在后代元素指定了新的XMLBase。作为XML链接的基础规范,XMLBase是XLink和XPointer的基础。4.1.2XML相关概念与技术4.1.2.1定义XML的结构—DTD,XMLSchemaa)DTD的概念DTD定义的是一类文件的结构,使用正式的语法来定义XML文档的结构和允许值,保存了由设计者添加的、用于扩展XML核心规则的部分,并创建用来描述某些问题或状态的词汇表。其优点是:首先,通过创建DTD,能够正式而精确地定义词汇表。解析器可以利用DTD验证文档实例的有效性;其次,XML创作工具也可以通过类似的方法使用DTD,可以根据DTD中说明的结构规则,允许用户在文档中添加DTD允许的元素或属性。缺点是:首先,DTD使用自己的一套语法,与文档实例的语法截然不同,妨碍了利用DTD验证文档的有效性及将相应领域的信息传达给编程人员。应用程序无法了解DTD中的声明及其结构;其次,解析器没有动态创建DTD,解析器还不能根据情况动态创建DTD;再者,DTD是一种封闭的结构,当需要从其他DTD借用声明或结构时,DTD就有些局限性;另外,在数据类型信息方面也存在一定缺憾,不能将某些值表示为需要的简单类型进行恰当的操作。b)XMLSchema的概念尽管XMLI.0提供了一种机制(即DTD)来规范XML中标签的使用规则,但XML文档处理的自动化却要求有一种更为严格、更为全面的解决方案。这方面的需求包括:如何使一个应用程序的不同模块间能够互相协调及对文档结构、属性、数据类型等的约束等。Schema也是XML的一种应用,是将DTD重新用XML语言规范来定义。充分体现XML自描述性的优点。XMLSchema有下述优点:1)一致性:DTD的书写结构和XML文件的结构不同,后者清晰直观,前者复杂晦涩。Sche-ma建立在XML之上,样子和一般的XML文件完全相同,使XML达到了从内到外的完免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005美统一;另一方面,Schema本身也是一种XML,可以被现有的XML编辑制作工具所编辑、被XML语法分析器所解析、被XML应用系统所利用。2)扩展性:虽然DTD中也定义了一些数据类型,但都是针对属性类型而定义的,且类型非常有限。Schema对DTD进行了扩充,引人了数据类型,很好地解决了这一问题。3)易用性:XMLSchema取代DTD的另一个原因要归结于DOM和SAX。作为一种XMLAPI,DOM和SAX只是对XMI.实例文档有效,对于DTD则无能为力。4)规范性:同DTD一样,Schema也提供了一套完整的机制以约束XML文档中标签的使用。相比之下,Schema基于XML,更具有规范性。Schema利用元素的内容和属性来定义XML文档的整体结构。5)互换性:用户可根据需要设计Schema,可以同其他用户交换Schema;利用Schema,能够书写XML文档,验证文档的合法性;通过映射机制可以将不同的Schema进行转换,以实现更高层次的数据交换。如微软的BizTalkServer对此就有很好的支持。4.1.2.2显示XML—XSL,XSLT样式表(StyleSheet)是一种专门描述结构文档表现方式的文档,既可以描述这些文档如何在屏幕上显示,也可以描述它们的打印效果,声音效果。样式表一般不包含在XML文档内部,而以独立的文档方式存在。与HTML描述数据显示方式的传统方法相比,样式表有许多突出的优点:a)表达效果丰富目前,样式表支持文字和图像的精确定位、三维层技术以及交互操作等,对于文档的表现力远远超过HTML中的标记。样式表的标准规范独立于其他结构文档的规范,当需要实现更丰富的表达效果时,修改样式表规范即可,不会牵涉到原始的XMI,文档内容。b)文档体积小在实际应用中,常常给相同名称标记下的内容定义相同的表现方式,使用传统的方法需要在每个标记中予以描述,造成大量的重复定义。而在样式表中,对于同一个标记只需进行一次描述就足够了,大大缩小了需要传输的文件的体积,可提高传输速度,并节约带宽。c)便于信息检索样式表可以实现非常复杂的显示效果,但由于样式描述与数据描述相分离,显示细节的描述并不影响文档中数据的内在结构。因此,网络搜索引擎对文档进行搜索时,不会被种种显示描述标记所迷惑。d)可读性好样式表对各种标记的显示进行集中定义,定义方式直观易读。特点是易学易用,可读性、可维护性好。同时XML文档相对简洁、清晰,突出对内容本身的描述功能。W3C给出了两种样式表语言的推荐标准,一种是层叠样式表CSS,另一种是可扩展样式表语言XSL。层叠样式表CSS是一种样式描述规则,目前W3C有两个推荐标准,CSS1和CSS2aCSS2是在CSSi的基础上制定的,基本上涵盖了CSS1,并在CSS1的基础上增加了媒体类型、特性选择符、声音样式等功能,并对CSS1原有的一些功能进行了扩充。CSS制定之初的服务对象并不是XMI.,而是针对HTML提出的样式表语言,但同样可以很好地应用于描述XML文档的表现。利用CSS可以定义HTML或XMI一文档中元素的显示效果,包括元素的位置、颜色、背景、边空、字体、排版格式。CSS是一种静态的样式描述格式,不遵从XML的语法规范。而XSL是通过XMI.进行定义的,遵守XML的语法规则,是XMI.的一种具体应用。XSI.本身就是一个XML文档,系统可以使用同一个XML解释器对XML文档及其相关的XSI_文档进行解释处理。XSL由两大部分组成:第一部分描述了如何将一个XML文档转换为可浏览或可输出的格式;第二免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005部分定义了格式对象FO(fomattedobject)。输出时,首先根据XML文档构造源树;然后根据给定的XSL将这个源树转换为可以显示的结果树,这个过程称作树转换;最后再按照FO解释结果树,产生一个可以在屏幕上、纸上、语音设备或其他媒体中输出的结果,这个过程称作格式化。到目前为止,W3C还未能出台一个得到多方认可的FO,但是描述树转换的这一部分协议却日趋成熟,已从XSL中分离出来,另取名为XSLT。与XSLT一同推出的还有其配套标准XPath,这个标准用来描述如何识别、选择、匹配XML文档中的各个构成元件,包括元素、属性、文字内容等。XSLT主要的功能就是转换,它将一个没有形式表现的XMI,内容文档作为一个源树,将其转换为一个有样式信息的结果树。在XSLT文档中定义了与XMI,文档中各个逻辑成分相匹配的模板及匹配转换方式。尽管制定XSLT规范的初衷只是利用它来进行XML文档与可格式化对象之间的转换,但它却表现在可以描述XML文档向任何一个其他格式的文档作转换的方法,例如转换为另一个逻辑结构的XML文档、HTML文档、XHTML文档、VRMI,文档、SVG文档等。4.1。2.3XFormsW3C指出:XForms可以满足目前HTML4WebForm无法实现的、用户提出的各种Form应用的需求,并且兼容各种XML标准,如:XHTML,SVG,SIML等。具体来说,新一代WebForm模型—XForms的主要设计目标为:a)统一显示格式XForms模型将一个传统的Form分解为数据层、逻辑层和表示层(很像三层Web应用模型)。XForms的数据层可以定义表单的数据模型,开发者既可以使用XForms定义好的数据类型,也可以根据XForms内置的数据类型定义自己的数据结构。XForms由逻辑层定义字段的附属关系,例如:在一个计算总和的表单中,要求所有数字类型的字段必须不能为空。此外,对于输人过程中出现的错误,越早发现越好,因此,XForms的逻辑层要有轻量级表达式语法分析,例如:针对不同国家地区的电话号码、通信地址的不同写法要有校验。如果校验规则比较复杂或有额外检验的需要,也可以在逻辑层编写脚本实现。XForms的表示层要包括表单控制标记和其他的HTMI,标记。XForms中的每个字段或域要有自己的控制标记。读取(Getter)和设置(Setter)功能要根据用户的说明设置表示形式,同一字段可能针对不同的显示设备(如:PC和手持设备)有不同的显示控制标记。b)无缝集成XML标记集既然XForms将表单的数据、处理逻辑和表示分开处理,同时又要求能根据不同的显示设备按照不同的格式显示输出,那么XForms就要能兼容多种XML语言,包括:能以Web页面形式显示的XHTML,能以多媒体表单形式显示的SMII.置标语言等。同时,为了既能更好地向下兼容,又能更好地以多种形式显示表单,XForms必须能够兼容CSS和XSL,并且,Css和XSL样式表能起到调整XForms显示形式的作用。此外,XForms还应该能够应用不同的XMI,标记集针对不同的显示输出设备提供丰富的用户界面。c)支持复杂表单的分解/合成对于大型的复杂表单来说,目前有两种解决办法:其一将表单分解为若干子表单,每个子表单对应一个HTML文件,设计显示表单的Web页面,并在页面上放置一按钮,通过按钮的Click事件调用服务器端的CGI程序,将用户填写好的内容记录到临时文件中,然后载人下一页面,直到表单结束;第二种方法是将表单制作成一个单独的HTML文件,在用户选择填写表单时,通过CGI程序将表单分段,逐段显示。这两种方法都用到CGI程序,如果用户在线填写表单的过程中发生网络中断,那么以前所填写的内容将全部丢失,用户只有重新连接Internet,再次填写。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)Gs/z19669-2005针对这种情况,XForm。在处理复杂表单的时候,自动将表单分解表示成为一系列的片段(Sections),某一时刻只显示一个Section,用户可以选择将所有的片段下载到本地,并保存到一个文件中,脱机填写,然后再联机发送出去。分解成片段序列的XForms表单在物理形式上,仍是一个XHTML文件。同时,对于WebForm应用来说,XForms还应该能在一个Web页面中显示多个小表单,或者将一个表单自动分解到多个Web页面中显示。d)支持挂起和恢复在某些应用中,填写表单的过程可能和查找相关信息的过程交替进行,这种情况下,Web表单应该具有自动挂起并在经过一段时间后自动恢复的功能。4.1.2.4文档资源间的链接语言—XLinkXI-ink是描述在资源间进行链接的语言。链接反映了不同资源对象之间的关系,而对象的选择是由定位来描述(这就是XPointe:的职责)。在XML1.0标准中规定的ID和IDREF标号类型属性就是建立简单链接关系的情况,XLink对这种基本功能进行了不同方面的扩展。XI-ink可以声明多个资源之间的关系。资源这个概念对于WWW来说是具有普遍意义的,资源可以是任何信息或服务的可定位的单元,具体的资源例子有文件、图像、文档、程序和查询结果。所以定位资源是非常重要的环节,一般用XPointer进行资源的定位。当一个链接和一个资源的集合相联系,就认为这些资源加人了这个链接的队列。当然XLink可以链接任何资源,而不仅仅是XML文档的一部分。XLink可以明确地将元数据(即资源内容)和链接相结合。XLink所链接的资源可以以不同的形式表示,比如在一个新开的窗口中显示,在链接处嵌入或者是代替开始的文档,用户可以根据具体情况进行设置。XLink提供附加函数,如行外链接(out-of-linelink)等。XLink的一个重要应用是用于超文本链接。简单的超文本情况类似于HTML中的A元素,但XLink中定义的链接远远超出了目前使用的HTML链接。XLink可以有多个链接终点,可以从不同的方向进行遍历,而且还可以将链接存储于独立于引用文档的数据库中。4.1.2.5XML文档定位的语言—XPathXPath是用作XSLT和XPointer的对XML文档各部分进行定位的语言。它给XSLT和XPoint-er(XML文件内部链接语言)提供一个共同、整合的定位语法,用来定位XML文件中各个部位。XPath除了提供一套定位语法之外,还包括一些函数,它们提供基本的数字运算、布尔运算和字符串处理功能。XPath使用一个紧凑的、非XML的语法来方便实现XPath在XML属性值中的使用,它基于XML文档的逻辑结构,并在该结构中进行导航。除了用于定位,XPath自身还有一个子集能进行匹配,它能验证一个节点是否匹配某个模式。XPath把一个XML文档看成一个树或节点的模型。节点的类型可以有多种,包括元素节点、属性节点和文本节点。XPath的基本语法由表达式构成。在计算表达式的值之后产生一个对象,这种对象有以下四种基本类型:节点集合、布尔型、数字型和字符串型。表达式的计算是依据上下文的出现,XSLT和XPointer中分别规定了XPath表达式将在怎样的情况下出现。这些上下文的关系包括:节点、一对正整数(表明位置和大小)、一套变量绑定集合、函数库以及规定表达式范围的名域声明。其中,变量绑定是从标量名称到变量值的映射;变量的值是一个对象,可以是表达式可能得到的各种类型,也可以是其他没有规定的类型;在函数库中,每个函数有零个或多个参数,并返回一个结果。XPath定义了所有支持工具都必须实现的核心函数库。其中函数的参数和结果都是上面涉及的四种基本类型。当然XSLT和XPointer还对XPath的核心函数库进行了扩展,有些函数的参数和返回结果数据类型超出了这四种基本类型。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005XPath基本上和在文件系统中寻找文件类似,如果路径是以“/’开头的,就表明该路径表示的是一个绝对路径,这和在UNIX系统中关于文件路径的定义是一致的。4.1.2.6XML内部结构部分的定位语言—XPointerXPointer支持对XML的内部结构部分的定位。XML中支持两类链接:简单链接和扩展链接。简单链接类似于HTML中的链接,扩展链接允许从某个链接跳转到任意其他链接。这种跳转实际上是从文档树型结构的某个部分转移到另一位置,这种转移基于不同的特性来实现,如元素类型、属性值、相对位置或字符的内容等。实际上,扩展链接的概念就是可以链接的资源不单单只有一个,可以同时链接多个资源。被链接资源的显示由具体实现的应用程序来决定。XPointer还提供了对元素、字符串和其他部分的特定引用方法,XPath通过轴和谓词对XML文档中树型结构各部分进行选择。XPointer的思想也是如此。XPointers还可以表达多个这样的选择,而且依次在前面所选的结果中再次进行选择。对XML文档进行标识的形式有三种:一种完整的XPointer定位形式以及两种简记形式。完整形式以一个大纲的名称开始,然后紧跟一个表达式,该表达式用括号括起。如果该大纲为XPointer,其表达式将根据与XPath兼容的方式来访问XML文档信息集合中的节点。下面的示例表示了从文件的LINK元素到文件http://www.xlinksample.com/xpointer.xml中根元素的链接,其中“xpointer(/child::*[position()=1])”就是用于定位的XPointer,示例:12xmlns:xlink="http://www.w3.org/TR八999/xlink"3xlink:type="simple"4xlink:href="http://www.xlinksample.com/xpointer.xml5#xpointer(/child::,[position()=IT,>6G/LINK>XPath作为XPointer的基石提供了表达定位的语法。XPointer还在之上进行了扩展,XPath提供了对XML文档中的子节点集合进行定位的方法。XPath通过谓词对轴(所谓的轴就是指child,de-scendant,parent,ancestor等关键字,表明查询的范围)进行过滤是根据对节点或节点集的操作来定义的,而XPointer还需要指定另外意义上的文档节点。例如,要选择两个节点中的某一部分,而这两个节点可能处于文档中不同的子树中。为了实现这一点,XPointer把定位定义为XPath的广义节点。4.1.2.7XML处理、查询—XQuery,DOM,SAXa)XML数据查询语言—XQueryXQuery构建在XPath规范之上。事实上,XQuery的一些特性已被公认为是非常基本的,且已合并人XPath2.0规范中,这个规范目前为W3C的XMLQuery和XSL工作组共同拥有。这意味着样式表创建者将很快就能利用像序列、量化和更强有力的类型控制这样的特性。同样,也已将条件表达式和迭代器添加到了XPath语言中,而在以前它们是XSL语言的一部分。这样就可以在样式表中编写更清晰的代码,并且为样式表创建者带来较少的麻烦。尽管依照句法来说,它在数据操作上比XSL要好用得多(它还支持许多XSL不直接支持的操作),但是其底层的引擎还是必须读取每篇文档、解析它,然后使用查询语言对它操作。因此,对于已建立索引的文档资源库(即所谓的XMI,“数据库"),XQuery是快速访问文档具体内容的更好的解决方案,对于未建立索引的文档,它并不是一个好的解决方案。XQuery包含一些用来访问资源库中多个文档的机制。这个文档函数允许以编程方式在同一个查询中访问多个文档。但是对于仍需要装人并解析每个文档的情况,要达到最佳性能,还需使用XML数据库或一些其他形式的索引模型。XQuery适宜处理“混合”文档,即:同时包含叙述流和量化数据的文档。例如,一个医疗免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005记录文档可能包含手术期间外科医生操作的描述,以及手术期间使用的药物、血和其他物品的数量。该文档不适合存储在关系型数据库中,XQuery能直接从该XML文档中抽取出量化信息。如果文档是纯数据,那么将该文档引入到关系型数据库中进行操作会更有意义。b)DOMDOM是HTML和XMI.文档的编程接口规范,与平台和语言无关,可以用各种语言在各种平台上实现。该模型定义了XML和HTML文档在内存中的逻辑结构,提供了访问、存取XML和HTML文档的方法。利用DOM规范,可以实现DOM文档和XML之间的相互转换,遍历、操纵相应的DOM文档的内容。要自由的操纵XML文件,就要用到DOM规范。DOM文档中的逻辑结构可以用结点树的形式进行表述。通过对XML文件的解析处理,XML文件中的元素便转化为DOM文档中的节点对象。DOM的文档结点有Document,Ele-ment,Comment,Type等结点类型。每一个DOM文档必须有一个Document结点,并且为结点树的根节点,可以有子结点,或者叶子结点,如Text结点、Comment结点等。任何格式好的XML文件中的每一个元素均有DOM文档中的一个节点类型与之相对应。利用DOM接口将XML文件转化成DOM文档后,就可以自由的处理XML文件。c)SAX与DOM比较而言,SAX是一种轻量型的方法。在处理DOM的时候,需要读入整个的XML文档,然后在内存中创建DOM树,生成DOM树上的每个结点对象。当文档比较小的时候,不会造成什么问题,但是一旦文档大起来,处理DOM就会变得相当费时费力。特别是对内存的需求,也将是成倍的增长,在某些应用中使用DOM很不合适,一个较好的替代解决方法就是SAX.SAX在概念上与DOM完全不同,不同于DOM的文档驱动,是事件驱动的,也就是说,并不需要读人整个文档,而文档的读入过程也就是SAX的解析过程。所谓事件驱动,是指一种基于回调(callback)机制的程序运行方法。4.1.3XML的一般应用过程要构建一个XML应用,一般分为以下四个步骤:a)选择或编写DTD和Schema确定应用系统中哪些信息需求采用XML来表示。如果是比较简单的数据结构,而且是单个简单的应用,可以采用DTD来定义XML信息的结构;如果数据结构和应用关系复杂,建议采用Schema来定义XML信息的结构。需要确定:文档中有哪些标记、标记可以包含哪些其他标记、标记的数量和次序、标记可以有的属性以及这些属性可有的值。b)生成XML文档将DTD或Schema想象成需要填写的一个模板。对于每个元素,从其所在的位置,如数据查询、全文检索或目录查询中取得数据,然后简单地将其放人模板中。当模板被填满后(所有必需的元素被填入而且文档是有效的),能将其发送给要使用文档的另外一方。c)解释XML文档当接收或读取到XML文档需要处理的命令时,有两种API可以使用,即前面所介绍的DOM和SAX.DOM提供了标准的功能来操作文档中的元素。SAXAPI在解析文档过程中发生一定事件的时候会发生通知事件。在对其响应时,不作保存的数据将会被抛弃。如果文档非常大,推荐使用SAX而不是DOM,因为这样将节省很多内存,尤其在只需要一个大文档中的几个元素时。在另一方面,DOM所提供的丰富的标准功能在SAX中是没免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005有的。d)显示XML文档有多种方式来显示XML文档。如果使用的浏览器能够显示XML,则可以简单地将XML文档送给浏览器,或者使用一个XSL样式表将XML转换成浏览器能处理的格式。一个XSL样式表包含一些模板,定义了在一个XML文档中的元素如何被转换。如果想要进行复杂的排序或重组,这就超出XSL的能力,要使用DOM。方法如下:解析XML文档,然后编写Java代码,可用任何方式来操作DOM树。4.2XML相关的标准和规范4.2.1服务相关语言和协议4.2.1.1SOAPSOAP定义了应用与其他应用之间交换数据的标准通讯协议。SOAP是应用级的协议,所以可以直接工作于传输协议(如TCP)之上。Internet架构上存在着防火墙和代理,仅允许HTTP的通讯,而SOAP可以构建于HTTP协议之上,因此避开了防火墙和代理的限制。如图3所示:粗摆瀚撒麟理麟月~~卜赘滞薰翼然黔赞馥翔目曰...翻..目口愚1嘴~,卜f姗硬跳目目目翻圈目砚域1。,。穿呼-奋{。,,。于口...霖月...日月~~卜犯...陈息口...口....一口.画.峨图3SOAP构建于HTP协议之上SOAP消息是作为HTTP请求或者响应的一部分被发送,因而可在任何允许HTTP通讯的网络上进行通讯。为了达到平台的无关性和最大程度地互操作性,SOAP使用XML来表达客户端和web服务之间的消息,像HTTP一样,XML也是无处不在,可以在任何的计算平台上发现XML分析器。通过使用HT-TP和XML,SOAP提供了在现存的Internet架构下运行于任何平台之上的应用之间通讯。SOAP体系结构的关键在于SOAP是一个非常简单的设计,不同的用户可对该协议加以采纳和实现,SOAP是应用之间通讯的最小标准。例如:SOAP并不包含有关安全或分布式事务的描述,而且SOAP的体系架构是足够灵活的,允许使用SOAP的头进行灵活地扩展。SOAP消息结构是由一个信封构成,它包含一个可选的header以及必须的body,如图4所示,body本身包含了payload(所需发送的数据本身)和/或者错误信息。宣图4SOAP消息结构免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005一个基本的SOAP消息是一个格式完备的XML文档,由属于SOAPenvelope名空间的元素,,3(soapenv:Header>4674fth1E3GpY2cnrSvylSzYtV3HjL8ovFHm91P8910111214<八nvoiceDoc>151617SOAP消息能够有不同的样式,这牵涉到<Body>,M*NXAEPMMEn99.*SPVMACRMEDFm*NxA9mPMLAE*SP}z)AfiC5D!ECt7m*NxtPAlMuOALE*SP)vflADC}CEtaQ7xmlns:d“一“http://puV.org/dc/elements/l.0/">xmlns:dcq="http://purl.org/dc/qualifiers/l.0">n2>000-04-27Createdtce/MEr-f:rdipAfDtNitCTns>critiq:dateDS"Cc2hA0Ve0mAJK0eL-d>0UaI4SEte-OM278M"601FeId)E"7RDC"QMWUA3CLX-IDFAITEFMR"iJ图10英国政府元数据框架图4.2.3工作流相关的语言工作流是一类能够完全或者部分自动执行的经营过程,依据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行。目前基于XML的工作流语言主要有:WSFL,XLANG,BPEL4WS,BPML,工作流管理联盟Wfmc提出的工作流交换格式XPDL,WPDL,以及ebXMLBPSS等。4.2.3.1WSFLWSFL是一个基于XML的语言,关注于描述多个Webservice如何组合成为复杂的工作流,它采用WSDL描述Webservice的接口,可以通过和UDDI集成动态地选择Webservice。它也支持通过调用WS或者Java,CICS、基于EXE/CMD的实现来执行工作流中的活动。WSFL描述的工作流包括两个模型,其中流模型描述了和各个服务提供者相关的工作流,全局模免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005型描述了工作流中的多个Webservice的交互方式,并可以将它们的组合定义成一个新的Webservice,流模型中包括控制流和数据流,控制流描述了工作流中活动之间的变迁,它可以用XPATH描述特定消息上的变迁条件,基于消息的内容可以将工作流定向到不同的活动;数据流可以用XPATH表达式从不同的活动中抽取数据,用XSLT变换它们的形式,并将它们作为其他活动的输人。WSFL使用ServiceProviderType属性确定特定活动的实现者的角色,它定义T一个Webservice的接口,描述了此Webservice支持的操作集合。服务提供者必须正确地实现适当的WS接口,这样它才能作为合适类型的服务提供者来处理工作流中的特定活动。WSFL可以在消息内容中描述变迁条件来处理不同的异常,将工作流定向至不同的活动。但是,WSFL不支持事务、安全、审计,以及业务协定的描述。4.2.3.2XLANGXLANG被用于Microsoft的BizTalkServer中。XLANG将工作流描述成有状态的长周期交互行为,用WSDL描述工作流的各参与者的WS接口,并通过消息交换产生服务之间的交互。一次交互是一个服务的实例,交换的消息不仅需要被传递到正确的目标port,还应该被传递到服务的T确实例。XLANG中,每个消息包括一个。orrelationtoken,correlationtoken的集合是correlationgroup中所有消息共享的一组属性。XLANG规定每个服务的每个correlationgroup必须正好对应每个合作服务的一个correlationgroup,XLANG中采用了基于块结构的方式定义控制流,支持描述串行、并行、条件分支的行为(Action)oAction可以是WSDL操作、等待,以及抛出异常。XLANG不支持行为之间的数据流描述,因此它描述的工作流不能被执行。XLANG提供了一个灵活的、全面的长周期事务模型。和一般的事务不同,长期执行的工作流的每一步操作可能是一个ACID事务,但是整个的工作流事务可能由于业务或者技术的原因失败或者被中止,这时已经完成的部分工作必须被尽可能地撤销。另外,由于不可能将涉及的数据在整个事务中上锁,长周期事务不可能保持孤立性。XLANG中事务可以嵌套任意层次,事务中可能包括一个“补偿块”,当一个事务出现错误时,所有嵌套的子事务中的补偿活动需要被执行。XLANG允许灵活地描述执行补偿活动的顺序,缺省的方式是逆序。XLANG不支持安全和审计信息的描述,但它支持业务协定。XLANG允许将多方之间的契约视为一个结构化的交互图,这指定了两个或者多个WS如何结合在一起来描述多个参与者之间的流程。图11是一个XLANG描述的三方契约的例子:Beh"LaIviorPortPTorrtanMspLao,/prtVEiPaPortIOpMVeratpion买方卖方运货方图11XLANG描述的服务交互过程4.2.3.3BPEL4WSBPEL4WS综合了XLANG和WSFL的优点,既可以通过描述业务交互中参与者的实际行为来得到一个可执行的工作流,也可以仅仅描述各方参与者对外可见的消息交换,而不涉及它们的内部行为,以描述一个抽象的流程。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-20054.2.3.4BPMLBPML的目标是提供一个全面的描述企业内部工作流的方法BPML将流程视为参与者之间XMI,消息的交换,参与者可以是组织、应用程序、雇员、或者其他的流程。参与者可以被静态地分配,也可以在运行时被动态地确定。BPML不仅可以描述一个可执行的流程,也可以描述一个抽象的流程,后者不描述和特定的流程参与者相关的信息。BPML提供了对控制流和数据流的全面支持。BPMI.中的一个流程可以包括简单的或者复杂的活动,简单活动可以是发送或接收一个XML消息、调用一个WS操作、或者抛出一个异常;复杂活动包括一个块结构的控制流,它是其他简单或者复杂活动的串行、并行和条件分支执行。活动可以计划在将来的某个时刻开始执行,也可以指定执行活动的时间约束。BPML通过将消息中的数据赋值给状态变量,或者进行相反的操作来描述活动之间的数据流。BPML提供了两种事务模型:协同事务和扩展事务。协同事务模型基于两段式提交协议,支持事务的ACID属性。另一方面,扩展事务模型放松了对事务的孤立性要求,不再要求一个事务要么完成,要么什么都不做。扩展事务模型中,一个事务可以是嵌套的,和一个复杂活动相关联。如果一个事务被中止,则同一个上下文中的所有补偿活动将按照逆序执行。BPML中的异常处理机制和XLANG的类似。4.2.3.5XPDL和WPDLXPDL是WfMC定义的工作流交换格式规范。它基于一些通用的对象、关系和属性,使不同的工作流语言描述的工作流模型可以被导出成XPDI,的格式,并且也可以导入格式为XPDL的模型,从而为不同的工作流语言提供了一个中间的交换格式,其原理如图12所示:DPRERCAOLDC*A0IERAFAE5SPFtWSPI/EF3JohnSmith4540192445027755676BankoftheInternet704/028910<?xmlversion="1.0"?>1112JohnSmith13141517A23B45C5618192021BankoftheInternet2204/0223244.2.6.3XMLSignatureXML签名与XML加密是密切相关的,与安全证书签名的概念类似,XML签名用来确保XMI一文档的完整性、授权性以及不可否认性。有了一般的加密,对XML文档整体进行数字化签名则不是问题。然而,当需要对文档的不同部分(可能由不同的人)签名,以及需要与选择性的方法一起来这样做时,就会出现困难。也许不可能或者不值得强制不同部分的加密工作由特定人员按特定顺序进行,然而成功地处理文档的不同部分将取决于是否知道这点。此外,由于数字签名断言已经使用了特定专用密钥来认证,所以要小心签名人是以纯文本形式查看文档项的,这可能意味着对由于其他原因而加密的部分内容进行了解密。在另一种情况下,作为更大集合中的一部分,可能对已经加密过的数据进行进一步加密。在牵涉单一XML文档(可能由一些不同的应用程序和不同的用户处理在工作流序列中使用的Web表单或一系列数据)的事务集中考虑的不同可能性越多,就越可能看到巨大的潜在复杂性。另外一个比较重要的概念是XML的规范性(canonicalization):对应用了密码散列算法的消息进行最轻微的更改也会产生不同的值。这为消息完整性方面提供了信任,并适于通常用法,但是也引人了进一步的复杂性—两个XML文档虽然在逻辑上相等,但可能在确切文本比较中不同。象行定界符、空标记、在属性中使用十六进制而不是名称以及在特定情况下存在注释或注释变体这样的事情都可以成为文档的逻辑结构不受影响而实际彼此不同的实例。XML规范描述了一种生成文档的物理表示(也称为范式)方法,该范式解释允许的变体,因此如果两个文档具有同一范式,则认为两个文档在给定应用程序上下文中是逻辑相等的。对于加密,特别是数字签名来说,这尤为重要,因为很明显,逻辑上相同的文本变体不应该表示文档的完整性及其发送方的认证是可疑的。用不同工具(譬如,解析器)生成不同文本(并因而生成不同消息摘要)进行处理时也可能发生这样的事。因此,在生成签名和验证计算期间,免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005应该在范式上进行消息摘要。如果摘要匹配,这将确定:即使文本形式可能不同,它们在其上计算的范式也匹配。DSIG可以是包含被签名的XML对象(enveloping)、被包含于XML对象中(enveloped)、或者与被签名的对象或文档分离。当被签名的对象包含了签名,那么签名本身并不参与签名的计算或验证过程的计算。下面的例子是与对象分离的签名:示例:1345678910j61wx3rvEP04vKtMup4NbeVu8nk=111213MCOCFFrVLtRlk=...14151617

...

.</G>18192021实际签名的信息是位于第2行和第12行之间,即<SignedInfo>元素。在签名的部分中包含用于计算<SignatureValue>元素的算法的引用,而那个元素本身位于签名部分之外(在第13行上)。第4行上的SignatureMethod引用的是将规范的<SignedInfo>转换成<SignatureValue>所用的算法。它是密钥相关的算法和摘要算法(在这里是DSA和SHA-1)的组合,可能还具有像填充这样的操作。没有层次性。在JDOM中,XMI_元素就是Element的实例,XML属性就是Attribute的实例,XML文档本身就是Document的实例。由于在XML中所有这些都代表了不同的概念,因此它们总是作为自己的类型被引用,而不是作为一个含糊的“结点”。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)cB/z19669-2005c)类驱动。创建一个新JDOM对象就如在Java语言中使用new操作符一样容易。JDOM最终将成为Java自身(JSR104)的一部分。4.2.8.6JAXBJAXB是用于XMLBinding的JAVAAPI,XML绑定是使用XML数据作为JAVA应用程序输人的一种办法,JAXB的目标就是把这些XML文档的元素映射到类以及把它们的属性映射到该类的属性中。JAXB的特点就是将用DTD定义好的XML文档映射为Java对象,提供简单、快速的数据操作方式。通过相应对象上的一系列getter和setter方法可以访问XML中的元素和属性。还可以通过mar-shal方法将对象的数据写进XML文件,通过unmarshal方法将XML文件的数据读人对象,通过vali-date方法验证XML文件是否符合DTD的约束。JAXB的缺点就在于只能访问特定的(也就是你用DTD定义的)XML文档。JAXB包括了一个运行类库和一个模式编译器。首先要定义XML的DTD,然后编写一个绑定模式(BindingSchema)aDTD定义了XML文档,绑定模式也是一个XML文件,指出DTD定义的XML文档如何被映射为Java对象。运行编译器,将DTD和绑定模式作为参数传给编译器,编译器就会生成Java代码。编译生成的Java代码,通过这些代码就可以访问XML文档了。4.2.8.7JAXMJAXM的目的是以ebXML为基础为编写和发送消息提供一个高级标准服务。一个JAXM服务提供者把消息映射到一个适当的物理消息系统(如JMSAPI)oJAXM可以使XML的打包、路由和传输以及其他使用HTTP,SMTP,FTP协议进行传输的消息成为可行。这一应用程序接口的未来版本将支持其他消息传输方式,包括由OASIS(结构化信息标准组织)发起的ebXML(电子商务XML)和UN/CEFACT(贸易与电子商务联合国中心)。JAXM是集成XML消息标准(如ebXML消息或者SOAP消息)的规范。这个API是用来推动XML消息处理的,它检测那些预定单的消息格式以及约束。它控制了所有的消息封装机制,用一种直观的方式分割了消息中的信息,如路由信息、发货单。这样,开发人员只需关注消息的有效负载,而不用去担心那些消息的重复处理。目前的开发人员用JAXP来实现JAXM将要提供的功能,JAXM将会提供一套非常具有针对性的API来处理基于XML的消息传送。这将大大简化开发人员的代码,并使它们具有统一的接口。JAXM和JAX/RPC的差别在于处理消息导向的中间件以及远程过程调用有所不同。JAXM注重于消息导向,而JAX/RPC是用来完成远程过程调用的。4.2.8.8JAX-RPCRPC的两个主要标准CORBA和JRMPAPI,不是用于与基于XML的RPC协同工作的。JavaAPIforXML-basedRPC(JAX-RPC)计划将为基于XML的RPC协议提供一个独立于传输的APIo在XML-RPC中,一个过程调用被通过网络作为XML传输,然后作为一个过程调用在其他计算机上发送。JAX-RPC把一个远程过程调用作为一个请求和响应SOAP消息实现,但是一个JAX-RPC用户则看不到此级别的细节情况。JAX-RPC技术规范的目标是开发一个API和在JAVA系统平台上支持基于XML的RPC协议的一组约定。这个API的主要功能是处理参数的汇集/解除汇集,传递和接受调用以及支持可移植的stub和skeletons它还将包含用于映射基于XMI,的RPC调用定义到JAVA接口、类和方法的约定,以及反向进行上述映射的约定。这种向前和向后映射(RPC调用定义到JAVA和JAVA接口,对象和方法到RPC调用)的目的是让用其他语言定义的基于XML的RPC接口映射到JAVA,以及让程序员用JAVA定义API,再把它们映射到基于XML的RPCo免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-20055XML在电子政务应用体系架构中的应用指南5.1XML在电子政务中的应用综述根据电子政务标准技术参考模型(见4.2),电子政务的应用框架划分为:应用支撑层、应用层、管理层和信息安全层等几个层次(网络基础层不在本指导性技术文件应用范围之内,略去)。应用支撑层提供与特定的业务应用无关的各类共享服务,如数据访问、流程控制、事务处理、目录服务、信息交换等,为具体的电子政务应用提供基础支撑环境。应用层构建于应用支撑层之上,以应用支撑层提供的各类共享服务为基础,包含了面向不同政府应用领域、不同客户的各类特定业务应用,如公文处理、具体业务处理、信息采集、信息发布和业务应用服务调用等等。应用层是电子政务系统的具体运行体现。安全管理是电子政务应用的重要方面,它贯穿于电子政务应用的各个方面,与各个层次的服务与应用相结合,为电子政务系统的运行提供安全支撑。系统管理作为电子政务系统必要的组成部分,对系统资源、运行环境等各个方面提供全面的配置、监控和审计功能。XML及构筑其上的各类相关技术,依赖于其本身的技术特点,能有效地运用在电子政务框架体系的各个层次中。同时,在电子政务框架体系的各个层次中,通过对XML技术的恰当运用,能有效解决目前电子政务中面临的资源共享、安全控制、业务协同和业务集成等系列核心问题,并能为与其他领域(如电子商务等)的业务互通、互连提供适当的技术基础。XML是一个标准的大家族,诸项标准融合起来,涵盖了XML技术的各个方面,XML技术在电子政务各个层面的应用,即是各相关标准的应用体现。数据访问在应用支撑的层次上,为各类特定的业务系统提供通用的数据表示存储和数据操纵机制。在这里,数据结构与内容的表示用XMLDTD或SCHEMA进行规范,采用NativeXML数据库或关系数据库机制进行数据的存储。以关系数据库机制进行数据的存储涉及到XML数据与关系数据库之间的转换。在数据的操纵上,应用XSLT,XPath,XPointer,XQuery,XLink等解决数据查询、转换与过滤、多源信息提取以及数据连接等问题。在电子政务中与XML技术相关的信息交换应用可分为三大类:政府部门之间的信息交换、政府部门内部的信息交换、政府与企业和个人的信息交换。XML适合作为信息交换的数据格式技术标准,作为数据中介,实现异构数据的集成和交换。业务流程控制将相互独立的不同的业务部门按照一定的流程关系相互联系在一起。业务流程定义是流程控制的基础。业务流程引擎是进行流程控制的执行体,它是按照业务流程的定义来执行的。XML在流程控制中的主要应用是对业务流程定义的规范,以解决不同的业务流程引擎之间的业务流程之间的相互协调,以及业务流程在更高一级的集成和整合。目前,基于XML的业务流程标准正在不断发展,出现了很多基于XML的业务流程定义语言标准,如WPDL,XPDL,BPML,ebXMLBPSS,WSFL,XLANG,BPEL4WS<和WSCI等,分别侧重于不同的方面,为电子政务领域的业务流程控制提供了广泛的参考标准,可根据具体场景进行恰当运用。在事务处理领域,XML技术可应用于解决政府部门内部信息集成事务问题,政府部门之间异构的事务管理、长事务管理,以遗留系统事务的原子性、一致性、并发性、持久性和隔离性等问题。在这方面,相关的技术标准包括BTP,WS-Coordination和WS-Transaction等。WS-Cordination是为分布式应用的操作协调提供一个协议标准,该协议标准建立在一个可扩展的框架基础上。WS-Transaction描述了在WS-Cordination中使用的事务协作类型。BTP是业务事务协议,是由OASIS的业务事务委员会开发的业务事务协议规范。目录服务是进行网络元素和信息资源的组织、索引、定位与检索。目录服务是在分布式计算环境中,定位和标识用户以及可用的各网络元素和网络资源,并提供搜索功能和权限管理功能的服务机制。目录服务能满足政务系统发布自身的职能和业务协作,以及能够检索并获取其他政务系统的信息和公免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/z19669-2005共的信息资源这两方面要求。DSMI,是基于XML的表述目录信息的描述语言。DSML使用XML表现了LDAP的目录结构以及请求和响应的格式,DSML在LDAP服务的基础上,可以在电子政务领域获得广泛应用。公文处理是电子政务中常见的特定业务领域。公文的处理涉及公文的生成、表示、存储、更新、交换、检索和流程处理控制等。它是在应用支撑层提供的各项支撑服务的基础上,一个涉及比较全面技术领域的综合性的具体业务应用。XML数据访问技术、流程控制技术、事务处理技术、目录服务技术和信息交换技术等,对解决公文处理领域的各类技术问题,提供了比较合适的技术标准。在特定的政务系统中,涉及到各类具体的业务处理。业务处理可分为交互式业务处理和流程式业务处理。在业务处理的业务流程建模、交互信息与业务流信息的传送、业务过程的触发与协同等方面,XML中都提供了相应的技术标准和技术手段,可以灵活地加以运用,如基于XMI.的业务流程建模语言BPML,描述互操作模型的XML模型语言ebXML,BPEL4WS,ebXMLBPSS,以及规范业务流信息格式的XMLDTD/SCHEMA,描述应用系统接口的WSDL等。电子政务应用支撑服务的流程控制、事务处理技术是特定政务领域业务处理的技术基础。信息发布是政府部门对外提供服务的重要形式。信息发布的形式有多种,如将信息编排、组织、转换成特定格式的页面,放在可以公开访问的路径,由访问者主动来取用;主动将信息或信息的链接推送给使用者;间接发布,即将信息的链接放到统一的门户中,访问者通过门户组件来获取信息;以及将信息与用户端工具集成,以用户感觉不到的方式,获取信息、处理信息并呈现给用户。各种信息发布途径各有优势,各有最适宜的使用群体,信息发布机制必须对它们都有所支持。XML技术的出现,为信息发布的实现提供了灵活的技术手段。应用XML,可以使数据内容同显示方式剥离开来,有效地支持不同的信息使用方式、不同的终端设备的信息显示。XML可以用来将数据储存在HTMI,文档中,可以在浏览器中用于页面的“精确刷新”,大大提高动态页面的效率。与信息发布相关的XMI.标准主要有XHTML,RDF和RSS,CSS和XSL、无线置标语言WML,以及隐私参数选择平台(P3P)等等。这些技术为信息发布提供了比较完善的实现体系。信息采集是电子政务系统的重要的组成部分。在以数据为中心的思想中,业务从数据的采集开始,以数据的存储结束,中间贯穿的是对数据的处理和运用。信息采集可分为两大类:交互式的信息采集和集成式的信息采集。交互式的信息采集要支持多种格式的数据采集表单、进行表单的自动化处理、支持联机或脱机填表、支持数字签名和隐私政策、提供过程向导,支持多种采集终端等。基于XML的XForms的出现,很好地满足了交互式信息采集的技术需要。集成方式的信息采集主要包括数据交换、数据传输、数据存储三大过程。在数据交换上,可利用XMLDTD,XMLSCHEMA进行交换数据的格式定义,XMLXSLT进行数据形式的转换,为交换的实现提供共同的数据结构。在数据传输中,通过通用的数据绑定和访问协议(SOAP),与各种传输协议相适应,同时,可运用XMLSECURITY技术,保证数据传输的安全性和不可抵赖性。存储时可能要从XML格式转换为另外一种格式,或者转换后存入数据库,在这里,可利用XSLT,XML2DB,DB2XML等技术。为解决政府部门间业务资源共享互用、政府机构之间相互服务以及政府机构一站式的对外服务问题,引人服务调用机制,进行规范化的服务描述,提供与服务提供者的实现技术无关的、能穿过防火墙、并能通过公网向公众提供服务的消息协议,以及提供服务的发布和发现技术。基于XMI,的Webserv-ices技术提供了比较完善的服务体系结构。Webservice、结构基于三种角色(服务提供者、服务注册中心和服务请求者)之间的交互。交互涉及发布、查找和绑定操作。这些角色和操作一起作用于Webservices构件Webservices软件模块及其描述。在提供web服务的描述方面的语言主要有WSDL,WSCL;服务消息协议应采用基于XML的消息协议:SOAP;在服务的发布与发现上,采用UDDIo电子政务系统的安全问题是电子政务中非常重要的方面。电子政务的安全问题涉及面很广,要确保电子政务系统的安全性,可以从网络、传输层、操作系统、服务或应用等各个层面将各种安全技术与总体安全保护计划结合起来进行综合考虑。单一的安全保护往往效果不理想,而最佳途径就是采用多层免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005安全防护措施对信息系统进行全方位地保护。第一层防御就是连接安全保护;第二层防御是访问控制策略。当前连接安全保护最流行也最广泛使用的三种技术为:基于防火墙的规则、安全套接字层(SSL)和虚拟专用网络(VPN)。传输层安全性(TransportLayerSecurity(TLS))是因特网上安全通信的事实标准。TLS是继著名的安全套接字层(SSL)之后的端到端安全性协议。这是一个非常安全和可靠的协议,它提供了通信双方之间的端到端安全性会话。实现访问控制最常见的技术有加密技术、数字签名技术、身份认证和数字凭证技术等。上述技术结合实施可以得到很好的安全解决方案。XML安全技术无意替换或取代这些技术,相反,它提供了用于这些技术未涵盖的安全性需求的机制。XML从本质上来讲是一种信息表达方式,基本上属于应用层的范畴。除非极端情况,一般只与信息安全有关。目前,在电子政务中,可利用常见的XML安全技术:XML加密(Xenc),XML签名(XML-SIG),XML密钥管理(XKMS)及XML访问控制等进行电子政务安全技术实施。在各个层次的电子政务应用中,各类系统资源构成了一个庞大的运行体系,系统资源的有效配置和监控是保障电子政务系统可靠、稳定、高效、有序运行的关键环节。这正是系统管理所应关注的问题。系统管理涉及系统用户管理、应用管理、日志和审计以及权限管理等。在各个管理层次上,主要涉及管理数据的访问、管理流程的实现等。可综合运用上述的XML数据访问技术、流程控制技术以及事务处理技术等。表4是目前XML及其相关的技术标准在电子政务各个层次中的应用汇总。表4XML技术标准在电子政务中的应用汇总一5.2应用支撑层5.2.1数据访问5.2.1.1典型应用场景统计局统计调查项目数据库是统计数据库系统的基础部分,它控制着统计数据加工和生产的全过程。统计调查项目数据库的使用包括如下几个方面:免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005a)新建:授权用户对统计局拟新建的统计调查制度(调查方案)、统计报表、统计指标、统计填报目录等内容进行在线设计录人;b)编辑:授权用户根据国家统计调查项目的变化进行及时的修改、更新和删除;c)查询:社会公民通过用户查询界面,直观、方便地获知国家统计局统计调查项目的基本情况;d)汇总:授权用户对当年或历年的统计调查项目、统计报表、统计指标、统计填报目录等进行总量和分层次的汇总;e)数据维护:授权用户根据统计局统计调查项目资料的保存要求和使用年限,对其进行归档存放,并建立备份恢复系统机制;f)项目审批登记:根据统计调查项目审批管理的有关规定,对统计调查制度(调查方案)、统计报表、统计指标、统计填报目录等内容拟进行新建或修改时,经有关业务部门(如统计设计管理司)审核同意后进行;g)数据控制与数据关联:统计调查项目数据库通过指标、分组编码的唯一性控制着具体统计调查项目数据、综合进度数据库、宏观经济指标数据库等统计数据库的数据采集、处理、管理。综合进度数据库、宏观经济指标数据库等与统计调查项目数据库相关联,能动态相应元数据定义的改变,并能即时显示元数据的各类指标情况。综合进度数据库,一个中国权威的官方社会经济综合统计数据库,它将国家统计局和其他部委统计部门产生的所有官方社会经济统计数据(月度、季度、年度数据及普查和不定期调查的数据)存储在一个数据库里。其使用主要包括如下几方面:a)数据加载转换:通过数据的加载转换机制,汇总集成不同数据来源、数据格式的专业进度统计信息;b)数据汇总:汇总来源于基层的专业统计数据;c)数据审核:提供数据的审核机制。经审核无误后,才可加载人库;d)查询:主要有以下几种查询方式:1)分类查询:按常用的《中国统计年鉴》的目录分专业,再一级一级确定指标和分组等各项条件进行查询;2)关键字查询:用户可以键入关键字进行查询;3)表号查询:用户可以直接键人表号进行查询;4)固定模式查询:按照预先设定的某种固定模式进行查询。主要有以下三种:—分地区模式:可查到某指标的全国和各省的数据;—概况模式:可查到某个专业的几个主要指标;—关键年模式:可查到指标的某几个特定年份的数据,而不用再具体指定这些年份。5.2.1.2应用需求分析综合上述的场景中和电子政务中所面临的问题,电子政务的数据访问主要涉及以下方面:a)数据的表示与存储:统计调查项目数据与数据元、综合进度数据和宏观经济指标数据,根据其不同的使用特点,相应采用合适的表示与存储机制。b)数据的交叉访问与元数据控制:统计调查项目数据元能控制综合进度数据库、宏观经济指标数据库等的数据采集、处理。在综合进度数据库、宏观经济指标数据库进行数据采集、处理的过程中,能通过统计调查项目数据元来验证数据的有效性、查询数据的属性定义,同时,综合进度数据库、宏观经济指标数据库数据基本指标的改变也能动态地反映到统计调查项目数据元中。c)提供数据的建立、修改和删除等数据基本授权操纵和维护能力。d)不同数据来源、不同数据格式的数据转换和数据加载能力。e)提供多种形式的数据查询能力,并能根据不同的访问用户,对同一内容,提供多种表现形式。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-20055.2.1.3技术方案5.2.1.3.1数据表示业务数据的XML式表示,包括对数据的组织结构、信息内容和数据间的关系进行描述和表现。a)数据结构表示在使用XML表示数据时,首先应该定义和约束这些数据在文档中的组织结构。一般通过DTD或者XMLSchema来定义XML文档的结构。当文档需要被验证有效性时,解析器通过该指令获取DTD,并根据其中定义的规则对文档进行检验。结构符合相应DTD的文档被称为有效文档。对数据结构有严格要求的信息集合应该存放在有效的文档中。所以数据结构可以通过DTD来定义和约束。DTD可以独立于文档,即在文档外部通过一个DTD文件进行声明,也可以在文档内进行定义。DTD通过四种标记定义XML文档中允许出现的内容,即ELEMENT(元素类型声明)、ATTLIST(属性列表声明),ENTITY(可重用的实体说明)和NOTATION(非XML内容的声明和处理)。但DTD语法不是使用XML来描述的,其扩展性差,在将多个文档合并时可能会出现名字冲突,不能表示数据类型信息。另一种描述数据结构的方法—命名空间加上XML模式可以弥补DTD的这种缺陷。XML模式也用来描述文档的结构,较之DTD具有更强的表现能力,而且它允许在定义中使用命名空间。XML模式规范主要分为结构和数据类型两个部分。模式结构主要定义了文档中的元素和属性出现的位置。模式结构中包含以下几部分:通过Schema标记定义的导言、通过datatype标记定义的简单类型元素、通过type标记定义的复杂类型、通过attribute-Group和attribute标记定义的属性组和属性、通过type标记的content属性和group标记定义的内容模型,以及元素的声明(元素的类型和内容通过使用前面定义的各项内容来描述)。一个模式可以在Schema标记中通过命名空间URI引人另一个模式,也可以通过import标记实现引人。命名空间和XML模式的特性使得文档结构的表现变得更为灵活。XML模式易于分解和扩展,而且它采用XML语法来表现结构,允许传统的解析器去读取和处理它。b)数据内容表示以数据结构定义为基础,定义数据的信息内容。数据内容的表达首先要符合XML语法要求,其次要保证文档的有效性。在针对特定电子政务应用环境时,一般应该采用有效的文档。有效的文档首先必须是在"well-formed”的基础上的。它的实际组织结构还应该符合其声明关联的DTD或者模式的定义,即它应该是满足应用要求的结构组成的数据集合。c)数据关系的表示XML为表示元素间关系提供了几种不同的机制。最常用的机制是父一子关系,即父元素包含子元素的方法。这可以用于表示元素之间的一对一或一对多关系。但是,当试图表示多对多关系时,这种机制就不适合了,因为每个元素只有一个父元素。XML中的关系也可以用ID-IDREF(S)属性表示。通过使用这些属性,元素可以引用一个或多个其他元素。这类似于关系数据库的键机制。使用双重IDREF(双重指向)关系能够从两个方向来导航多对多关系。双重指向就是使用两个不同的IDREF一到一ID关系:一个从相关元素指向关系中的非父元素参与者,另一个从关系中的非父元素参与者指向相关元素。这种方法会使解析很困难,也会使文档更大一些。所以我们在建立数据关系时,应该视应用需求而定,尽量抛弃不必要的多对多关系。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-20055.2.1.3.2数据存储由于XML在表现层次化的非结构信息上的优势,促使XMI一与数据库系统成为两种互补的业务数据的存储表示方式。采用XML形式的业务信息的存储,可以以XML文件系统或者数据库系统的方式。由于文件系统在大小、并发性、版本控制和安全等方面的局限性,采用数据库系统管理XML形式的数据存储具有较强的适用性。采用数据库系统管理XMI,形式的数据存储,可以有两种方式:a)NativeXML数据库方式NativeXML数据库是以XMI,格式存储信息的数据库。与传统的数据库一样,NativeXMI.数据库能够对数据创建索引。这些索引与XMI.文档一起存储在NativeXMI,数据库的资源库中,这样就可以实现在资源库中快速搜索包含特定信息的文档。数据在NativeXML数据库的资源库中都是以XML格式存储的,所以如果要被存储的数据已经是XMI.格式,那么可以直接把它添加进资源库。NativeXML数据库很适合面向文档的数据信息(非结构化或半结构化的数据,特别是纯粹层次结构的信息)管理,如公文管理,但对于结构化数据的使用,它们没有什么优势。因此,对通过XML来访问结构化数据,采用在关系数据库系统中存储XML数据比较合适。这涉及到XML与关系型数据库间的转换。b)XML与关系型数据库间的转换将关系型数据库中的内容转换为XML格式就是把结构数据输出到XML文档,首先应该建立相应的文档结构,然后通过调用数据库访问和XML编程接口完成转换输出。用XMI.格式描述结构化数据,特别是数据间的关系,是一件比较复杂的工作。反之,将XML格式信息转换为关系型数据库中的数据,首先要建立数据库结构,然后调用通用的编程接口完成信息导人。关系型数据库对于存储由XML文档提供的数据信息也有一定的局限性,对于结构性强、层次不是很深的文档结构较为适用。1)从数据库建立XML文档结构建立XML文档结构就是对存储在关系型数据库中的复杂数据结构进行XMI,建模。首先要清楚数据库结构,然后使用XMLDTD或XMLSchema建立相应的模型。2)XML文档建立数据库结构将XMI,文档中的数据信息存人关系性数据库,通常可用两种方式来实现:一是将整篇文档作为一个大对象字段(列)存储,这种方式适用于不需要经常更新的整块文档数据;二是采用“对象一关系”存储方式,将XML文档分解,将各部分分别存储在不同的数据库表中,并根据各部分间的关系建立这些表之间的关联结构。3)数据输人输出数据从XML文档到数据库称为数据输入,从数据库到XMI.文档称为数据输出。一般通过XML通用编程接口DOM和SAX,或者开发工具提供的特殊接口来完成数据的输人输出。从数据库到XMI.文档的数据输出,一般多使用DOM实现。先建立到相应数据库的连接(使用标准的ODBC或JDBC接口)并通过SQI一查询得到要输出的数据结果集,然后根据文档的DTD或Schema建立文档树的根。之后,依照树的遍历顺序,依次将数据结果集中的数据作为树枝或树叶,通过createElement)和appendChild)加入到DOM树中,同时将这些新元素输出到XML文档中,一般使用循环和递归操作来实现树的遍历。使用DOM实现XML文档到数据库的输人与输出,同样需要先建立数据库连接,并通过现有文档建立DOM树,然后在遍历DOM树的过程中,依次将文档中需要存储的数据取出,并通过SQL插人语句将数据输入到数据库中。免费标准下载网(www.freebz.net)无需注册即可下载 免费标准下载网(www.freebz.net)GB/Z19669-2005SAX比较适合对大型文档的操作,多用来实现从此类XML文档到数据库的数据输人。首先建立用于处理文档的SAX解析器,然后装人要解析的文档。在解析文档的过程中,发现元素标签就会触发相应的事件并转入相应的处理方法(如startElement())中。如果处理的是行元素标签,就可以建立一个新的SQL插人语句;如果处理的是列元素,就可以在当前插人语句中加人新值;最后在处理行元素的结束标签时(在enElement()方法r})执行插入操作并释放相应资源。另外还可以通过XML应用开发工具和数据库系统提供的特殊接口来完成数据的输人输出。5.2.1.3.3数据操作a)数据转换与过滤XML数据转换主要是指,将原有XML文档通过某种转换机制转换为新的XML文档,新文档的布局格式与旧文档不同,但它保留了原有文档的数据内容,以满足不同形式的访问需要。XML数据过滤指将原有的XML文档经过特定过滤处理后,形成新的XML文档,新文档根据过滤条件,保留授权目标系统或目标用户使用的信息和有用的信息。可以通过使用XPath与XSTL相结合,来实现XML数据转换和过滤。XPath维持了原始文档的层次性和结构,适用于访间XML文档中的独立节点。XSLT则适用于对结果进行处理,包括构建新的元素。因此,XPath与XSTL相结合将允许开发者对数据信息进行自由操作和重组。可以通过行/列匹配的方式从XML文档中过滤提取出需保留或者想要进行进一步处理的数据信息。使用<xsl.for-each/>与XPath表达式相结合可以实现行匹配,一般形式为:示例:1<xsl:copy25结果是得到满足条件的所有行元素(包括其属性和子元素)。列匹配可以采用以下形式实现:示例:1234subItem1257subItem21subItem229subItem2310subltem241112进行如下的查询操作:12(3let$inDoc:=document("statisticList.xml")4for$stitemin($inDoc//statisticList)5let$csi:=count($stitem/subItem)6where($csi>3)7return$stitem/@name8}9查询操作将返回的结果为:12statics2免费标准下载网(www.freebz.net)无需注册即可下载'