科学数据共享工程技术标准SDS/T2221.2—2004中华人民共和国科学技术部发布数据访问服务接口规范——WEB要素服务规范(征求意见稿)(本稿完成日期:2005年5月)SDS/T2221.2—2004I目次目次...............................................................................I前言..............................................................................II引言.............................................................................IIIWEB地物要素实现规范..................................................................11范围.................................................................................12规范性引用文件.......................................................................23术语和约定...........................................................................34基本服务元素.........................................................................55公共元素.............................................................................86DescribeFeatureType操作..............................................................157GetFeature操作......................................................................248LockFeature操作.....................................................................369Transaction操作......................................................................4410GetCapabilities操作..................................................................6011名-值”对编码.....................................................................68附录AXML模式定义(规范性附录).................................................82附录B一致性测试(规范性附录)..................................................104SDS/T2221.2—2004II前言本规范修改采用国际标准“OpenGISWebFeatureServiceImplementationSpecification”。附录A和B是规范性的。本标准为第一次制定。本标准由中华人民共和国科学技术部基础研究司提出。本标准由中华人民共和国科学技术部基础研究司归口。本标准主要起草单位:国家信息中心。本标准主要起草人:徐枫、宦茂盛等。SDS/T2221.2—2004III引言本标准描述了使用HTTP协议通过网络访问要素服务的规范,是数据访问服务接口之一。网络地图服务允许客户端重叠显示来自Internet的多个网络地图服务的地图图像。类似的,WEB要素服务(网络要素服务)允许客户端从多个WEB要素服务(网络要素服务)中取得使用地理标记语言(GML)编码的地理空间数据。实现WEB要素服务(网络要素服务)的必要条件:接口必须用XML定义。GML必须被用来在接口中表达要素。一个最小化的WFS必须可以使用GML表达要素。谓语或过滤语言将使用XML定义。用来存储要素的数据库对客户端应用应该是不透明的,它们对数据的唯一查看方法应通过WFS接口。使用XPath表达式子集引用特性。本文档的目的是描述WEB要素服务(网络要素服务)接口,如图1所示。客户端网络要素服务(WFS)WFS请求WFS响应不透明的要素存储图1WEB要素服务(网络要素服务)本规范是科学数据共享工程从国家863中引入的标准(中间成果)。在科学数据共享工程中的用途:(加图)SDS/T2221.2—20041WEB地物要素实现规范1范围本规范描述了WEB要素服务(网络要素服务)(WFS)操作。WFS操作支持在使用HTTP协议的分布式计算平台上对要素进行插入、更新、删除、查询、发现操作。在科学数据共享工程中,本规范的作用是提供给用户访问数据所需遵循的接口规范,该接口规范规定了的数据访问所使用的语言、参数、命名域,服务响应、数据返回的格式等多方面的内容,指导科学数据共享工程数据访问系统的开发与实现。在本文档的上下文环境中,事务是一个逻辑工作单元,是由一个或多个数据操作组成的。要素以持久存储的方式保存在本文档中没有做陈述,因此,事务的语义,如原子失败,是假设不存在的。在和持久存储要素的数据存储系统的交互中保证数据改变的一致性是WEB要素服务(网络要素服务)的功能。然而,本文也承认许多系统支持标准并发事务语义的事实,因此推荐一些可选的操作,这些操作允许WEB要素服务(网络要素服务)利用这些系统的有利条件(例如基于SQL的关系型数据库)。地理要素本文采纳了地理标记语言(GML)实现规范[2]中解释的地理要素的相同概念,也就是说,地理要素的状态是由一组特性来描述的,每个特性可以被想成(名字,类型,值)对,每个特性的名字和类型由地理要素的类型决定。地理要素至少有一个特性是由几何赋值的。这意味着要素是可以定义为根本没有几何特性的。地理要素的几何特性被限定为简单几何特性。一个简单的几何特性的坐标被定义为二维坐标,并且曲线的描述来自线性内插。在二维空间参考系统中定义的传统的0,1和2维几何要素表现为点、线和面。另外,几何模型允许一个几何(Geometry)本身是其它多个几何(Geometry)的集合,可以是同构的几何,也可以是异构的几何。最后,GML允许要素具有复合或聚集型的特性。处理请求本文的这一部分简要介绍处理WEB要素服务(网络要素服务)请求要遵循的协议,处理请求的过程如下:客户端应用请求WFS的能力文档。这个文档包含对WFS支持的所有操作的描述和它可以提供服务的要素类型列表。客户端应用(可选的)向WEB要素服务(网络要素服务)发出请求,请求得到WFS可以服务的一个或多个要素类型的定义。以要素类型的定义为基础,客户端应用生成本文档指定的请求。请求,提交给Web服务器。WFS被调用,去读取请求并为之提供服务。当WFS完成请求处理,它生成一个状态报告,并把它传回客户端。万一有错误发生,状态报告会将其指出。操作为了支持事务和查询操作,以下操作必须定义:GetCapabilities一个WEB要素服务(网络要素服务)必须可以描述它的能力,特别地,必须指出它可以为那些要素类型提供服务以及每个要素类型支持那些操作。DescribeFeatureTypeWEB要素服务(网络要素服务)必须可以在请求中描述它可以提供服务的任何要素的结构。SDS/T2221.2—20042GetFeatureWEB要素服务(网络要素服务)必须可以为一个获取要素实例的请求提供服务。另外,客户端可以规定获取要素的那些特性,并且可以使用空间和非空间的查询限制条件。TransactionWEB要素服务(网络要素服务)可以为事务请求提供服务。一个事务请求是由修改要素的操作组成的,即对地理要素的创建、修改和删除操作。LockFeatureWEB要素服务(网络要素服务)可以处理在一个事务期间对一个或多个要素类型实例上锁的请求。这就保证了可序列化的事务被支持。基于对以上操作的描述,可以定义两种类型的要素服务:基本WFS基本WFS可以实现GetCapabilities,DescribeFeatureType和GetFeature操作。它被认为是只读的WEB要素服务(网络要素服务)。事务WFS事务WFS可以支持基本WFS要素服务的所有操作,并且它可以实现事务操作。可选地,事务WFS可以实现LockFeature操作。图1是一个简化了的协议图,它描述了为了处理一个典型的事务请求,客户端和WEB要素服务(网络要素服务)间来回传递的数据。网络GetCapabilities请求WFS的Capabilities文档GetCapabilities请求WFS的Capabilities文档DescribeFeatureType请求要素模式定义文档DescribeFeatureType请求要素模式定义文档事务请求WFS事务响应文档事务请求WFS事务响应文档图2协议图2规范性引用文件[1]Bradner,Scott,RFC2119KeywordsforuseinRFCstoIndicateRequirementLevels,March1997,—20043[2]Cox,S.,Cuthbert,A.,Lake,R.,andMartell,R.(eds.),OpenGISImplementationSpecification#02-009:OpenGIS GeographyMarkupLanguage(GML)ImplementationSpecification,version2.1.1,April2002[3]Vretanos,Panagiotis(ed.),OpenGISImplementationSpecification#01-067:FilterEncodingImplementationSpecification,May2001[4]Percivall,George,ed.,“TheOpenGISAbstractSpecification,Topic12:OpenGISServiceArchitecture”,2002[5]Bray,Paoli,Sperberg-McQueen,eds.,ExtensibleMarkupLanguage(XML)1.0,2ndedition,October2000,W3CRecommendation,[6]Beech,David,Maloney,Murry,Mendelson,Noah,Thompson,HarryS.,“XMLSchemaPart1:Structures”,May2001,W3CRecommendation,[7]Bray,Hollander,Layman,eds.,“NamespacesInXML”,January1999,W3CRecommendation,[8]Clark,James,DeRose,Steve,“XMLPathLanguage(XPATH),Version1.0