首页 / 专利库 / 软件 / 逻辑文件 / 一种基于GDOM及其持久化的GML解析方法

一种基于GDOM及其持久化的GML解析方法

阅读:759发布:2023-12-30

专利汇可以提供一种基于GDOM及其持久化的GML解析方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于GDOM及其持久化的GML解析方法,其步骤分为GDOM对象模型设计、GDOM语义解析 接口 设计、持久化处理方法以及GDOM数据的解析流程。本发明方法,针对面向GML文本解析接口不够丰富、缺乏规范以及效率低下等方法弊端,设计了具有丰富的GML对象表达和语义操纵接口的文档对象模型(GDOM)。为提高GML解析的效率,设计了面向GDOM对象的持久化存储方法、定义了存储GDOM语义树结构信息的结构元数据和存储GDOM语义树 节点 内容信息的内容元数据。在此 基础 上,基于SAX的方法实现了GDOM持久化文件的生成,基于DOM方法实现了GDOM持久化文件的解析。为高效、灵活地处理GML或其它半结构化空间数据资源提供了解决办法。,下面是一种基于GDOM及其持久化的GML解析方法专利的具体信息内容。

1.一种基于GDOM及其持久化的GML解析方法,其步骤是:
A、GDOM对象模型设计
GDOM对象模型包含基本对象类型和扩展对象类型两部分;其中基本对象类型有7种:要素节点(FeatureNode)、要素特性节点(FeaturePropertyNode)、要素成员节点(FeatureMemberNode)、几何特性节点(GeometryPropertyNode),几何节点(GeometryObjectNode),空间闭包节点(BoundingShapeNode)和GML文档节点(DocumentNode);
要素节点、要素特性节点、要素成员节点、几何特性节点,几何节点,空间闭包节点,均由BaseNode继承而来,它提供GDOM节点对象的基本操作;DocumentNode指向GML实例文档的根节点,提供文档数据最初的访问入口。其他GDOM对象提供ownerDocument属性,用于关联其所属的GML文档节点;FeatureNode对应GML文档中的要素,提供要素名称、要素几何类型、要素空间闭包的访问;FeatureNode包含要素特性对象、几何特性对象、几何对象和空间闭包对象;FeaturePropertyNode用于支持要素之间的嵌套;FeatureMemberNode用于创建要素集合,该节点对象提供相应的属性字段,返回成员所属的要素集;FeatureNode通过GeometryPropertyNode实现对几何对象的引用,记录了几何特性(GeometryProperty)在应用模式中的名称、几何特性所包含的几何对象的维度;GeometryObjectNode代表几何单形、几何复形、几何组合和几何聚合,它提供针对几何的基本操作,包括提取参考系、提取几何类型、计算空间闭包以及提取坐标信息;BoundingShapeNode用于确定要素的矩形边界范围,一般包含边界范围的左上与右下角两个坐标值;
B、GDOM语义解析接口设计
GDOM语义解析接口直接针对GDOM,基本对象包含7类,其中DocumentNode有10个解析接口,FeatureNode包含13个解析接口,FeaturePropertyNode包含2个接口,FeatureMenberNode包括2个接口,GeometryObjectNode包括13个接口,GeometryPropertyNode包含2个接口,BoundingShape包含2个接口;扩展对象包含26类对象,辅助对象有7类,每类对象都包相应的解析接口;
C、持久化处理
GDOM持久化处理是把GML数据文件及模式文件中的部分信息,按照GDOM要求的模式进行组织,并将其组织成GDOM元数据文件的过程;存储GDOM对象信息的描述文件称为GDOM元数据文件,具体分为两种:结构元数据文件和内容元数据文件。前者存储GDOM语义树结构信息,后者存储GDOM语义树节点内容信息;
(1)GDOM持久化数据结构
GDOM结构元数据保存GDOM对象的嵌套结构信息,不记录具体的数据内容;GDOM对象被定义成GDOM结构元数据中的复杂元素类型;对象之间的嵌套关系转换为元素类型之间的引用关系;GDOM结构元数据利用XML文档的层次嵌套结构,描述GDOM对象间的嵌套关系,把基于GDOM树GML语义级别的文档遍历操作;
GDOM内容元数据,同样使用XML复杂元素类型表示GDOM对象;内容元数据中的复杂元素仅包含简单类型的子元素,不存在复杂元素之间的嵌套关系;GDOM内容元数据记录与GML文档内容的映射关系,保证GDOM管理引擎在提供接口操作时能够找到相应的记录信息;
GDOM对象的属性值与GML数据文件的内容之间通过映射实现关联,具体的映射关系包括元素名映射方式、元素值映射方式和属性值映射方式三种:
元素值映射方式,GDOM对象的属性值是GML文档中某个元素的文本值,它所提取的属性值是与其关联的XML元素的元素值;属性值映射方式,GDOM对象的属性值是GML文档中某个元素的属性值,它所提取的属性值是与其关联的XML元素的id属性值;多元素值映射方式,对象的属性值由数据文件中多个简单元素节点的值组合而成,它所提取的内容是多边形所有内环节点的坐标值;结构元数据与内容元数据之间通过GDOM对象编码相关联;GDOM对象编码包含两部分,前3位为GDOM对象类型编码,后六位为索引号,由对象类型编码与索引号组合而成;索引号与对象在GDOM树中的出现的顺序有关,每一类GDOM对象使用单独的索引号,按照GDOM树的深度优先顺序依次增加;
(2)GDOM持久化过程
GDOM的持久化过程首先是读入GML应用模式文件,建立应用模式标签和核心模式标签的映射;然后读入GML数据文档,对GML文档进行基于数据流的遍历,通过判断GML标签建立相应的GDOM对象,并把GML数据文档中的数据写入GDOM对象,同时建立GDOM对象的堆栈,建立对象之间的逻辑包含关系,形成GDOM实例;最终把内存中的GDOM对象序列化为结构元数据文件和内容元数据文件;
D、基于GDOM持久化的解析
基于GDOM对GML解析的过程是对结构文件和内容文件内容的读取,并通过GDOM对象的接口实现调用;在GML解析过程中,外部模调用解析函数,解析函数通过访问器访问GDOM对象,GDOM对象按照解析接口的要求开始遍历持久化文件,首先遍历结构元数据文件,如果找到满足解析接口的数据,则返回该数据,否则根据结构元数据文件和内容数据元文件的映射关系遍历内容元数据文件,如果找到满足要求的数据,返回该数据,否则需要根据内容元文件记录的编码对GML值文件进行查找,直至发现满足解析接口的数据。

说明书全文

技术领域:

发明涉及一种面向符合GML国际/国家标准的GML文档的解析技术,具体说是一种基于GML操作模型GDOM并在其持久化基础上的GML解析方法。

背景技术:

地理编码语言(Geography Markup Language,GML)自2000年由开放地理信息系统联盟(Open GIS Consortium,OGC)提出以来,就受到了地理信息系统领域专家学者、软件厂商和应用开发人员的关注。凭借其开放和自我描述的格式体系、完善丰富的空间数据表达技术、灵活多变的应用模式生成方法等众多优点,GML迅速在空间数据的表达与建模、传输与交换、集成与共享等诸多GIS研究与应用方向中产生着积极的影响。特别是随着GML国际标准(ISO19136)和中国国家标准《地理信息地理标记语言(GML)》(GB/T 23708-2009)的实施,可以预见:GML还将在国内外更多新的GIS研究和应用领域发挥重要作用。

基于传统XML解析的概念及方法,GML解析则是按照GML标准中核心模式的一般规则和基本模式组件的内容特点,遵循一定的接口标准,通过软件实现,判断GML文档中元素的类型,提取元素间的语义含义。它和GML查询有着本质的不同,后者更强调面向元素值的操作,如提取或修改。作为我们理解GML应用模式和数据的基础,GML解析已经成为GML存储、GML索引、GML查询等其他GML数据资源处理工作的支撑技术。

目前,XML解析主要有两种主流的解析规范和技术方法:一个是W3C制定的面向文档的对象式解析(Document Object Model,DOM);另一个是由DavidMegginson制定和维护的基于事件驱动的推动式解析(Simple API for XML,SAX)。基于DOM和SAX,众多主流的软件厂商开发了不同特点的XML解析器,如IBM的XML4J,Microsoft的MSXML,SUN的Project X,Oracle的XML Parser等。这些解析器虽然可以直接适用于GML的解析,但也存在很多缺陷:1)DOM和SAX中没有面向GML对象的接口描述,这使得开发人员必须在现有解析器的基础上扩展面向GML解析的众多接口,这明显限制了GML解析的范围;2)由于DOM和SAX的模型没有针对GML核心模式中一般规则和GML对象的声明与描述,这使得解析器在解析GML文档时需要不断地匹配庞大的、多达近30个的GML核心模式内容体系,以提取文档中元素的具体GML对象含义,这直接导致了GML解析效率的低下;3)基于DOM的解析器需要把GML文档一次性载入计算机内存进行处理,这对于具有庞大空间信息的GML文档来讲,显然是不可能的。基于SAX的解析器虽然可以通过事件驱动的方式提高GML解析的效率,但其不能在GML文档的元素间自由的进行循环遍历,这为GML元素间关系的判断带来新的难题。

此外,一些面向GML开发的软件厂商也纷纷推出了自己的GML解析产品,典型的如,GALDOS历经三个版本的GML SDK,SNOWFLAKE公司的GML Viewer、ESRI公司的GML互操作插件、SAFE公司的GML读取工具等,这些软件虽然增加了针对GML对象的提取接口,但由于其仍然基于DOM或SAX规范,因此在面向GML解析时,还存在上述的诸多缺陷。一些GML研究者也提出了自己的解析方法,如,兰小机提出的“GML3.0通用解析引擎”,高晓黎提出的“基于语法语义库的通用GML模式解析”。这些方法虽具有一定的创新性,但都面向数据量较小的GML应用模式文件,且解析接口有限,这同面向大数据量的GML文档解析有着本质的区别。

发明内容:

针对现有技术存在的GML对象和解析接口不够丰富等情况以及GML解析存在效率较低的缺陷,本发明提出了一种基于GDOM及其持久化的GML解析方法,面向GML文档解析的GML文档对象模型(GML Document Object Model,GDOM),制定了不同对象的解析接口,设计了面向GDOM的持久化方法,有效地减少了GML解析所需要的数据内容,实现了GDOM持久化文件的解析。

本发明一种基于GDOM及其持久化的GML解析方法,其步骤分为GDOM对象模型设计、GDOM语义解析接口设计、持久化处理方法以及GDOM数据的解析流程:

1、GDOM对象模型设计

GDOM对象模型包含基本对象类型和扩展对象类型两部分。其中基本对象类型有7种:要素节点(FeatureNode)、要素特性节点(FeaturePropertyNode)、要素成员节点(FeatureMemberNode)、几何特性节点(GeometryPropertyNode),几何节点(GeometryObjectNode),空间闭包节点(BoundingShapeNode)和GML文档(根)节点(DocumentNode)。

GDOM中所有节点对象(除DocumentNode),均由BaseNode继承而来,它提供GDOM节点对象的基本操作;DocumentNode与XML DOM规范中的Document类型类似,指向GML实例文档的根节点,提供文档数据最初(或最顶层)的访问入口。其他GDOM对象提供ownerDocument属性,用于关联其所属的GML文档节点;FeatureNode对应GML文档中的要素,提供要素名称、要素几何类型、要素空间闭包等要素基本信息的访问。FeatureNode可以包含要素特性对象、几何特性对象、几何对象和空间闭包对象;FeaturePropertyNode主要用于支持要素之间的嵌套。GML应用模式中可以直接使用核心模式中提供的FeatureProperty进行要素间的嵌套。但通常情况下,GML应用模式会构建包含语义特征的要素特性节点,要素特性节点的节点名称与应用模式相关;FeatureMemberNode用于创建要素集合,该节点对象提供相应的属性字段,返回成员所属的要素集;FeatureNode通过GeometryPropertyNode实现对几何对象的引用。它记录了几何特性(GeometryProperty)在应用模式中的名称、几何特性所包含的几何对象的维度等信息;GeometryObjectNode可以代表几何单形、几何复形、几何组合和几何聚合,它提供针对几何的基本操作,包括提取参考系、提取几何类型、计算空间闭包以及提取坐标信息等;BoundingShapeNode用于确定要素的矩形边界范围,一般包含边界范围的左上与右下角两个坐标值。

GDOM基本对象能够表达使用GML要素模型与几何模型构建的GML应用模式,是对GML文档的高层语义描述。其中GeometryObjectNode是对GML几何模型中各种几何类型的抽象,如果需要构建更为详细的几何节点对象则需要对GeometryObjectNode进行扩展。

GDOM的扩展对象类型是GML核心模式中对象(基本对象)的定义,扩展对象类型通过继承建立与基本对象类型的关系。例如,通过分析GML的核心几何模式文件,在GDOM基本对象类型的基础上,对GDOM几何GeometryObjectNode进行扩展。为了表达各种GML几何对象之间的联系,GDOM还定义一些用于节点对象继承与引用的辅助节点,如BaseSurfaceNode(PrimitiveSurfaceNode、PolygonNode、OrientableSurfaceNode的父类)、BaseCurveNode(PrimitveCurveNode、LineStringNode、OrientableCurveNode的父类)、BaseRingNode(RingNode、LinearRingNode的父类)。

2、GDOM语义解析接口设计

GDOM语义解析接口方法直接针对GDOM,基本对象包含44个接口函数,扩展对象包含47个接口函数,辅助对象包含16个接口函数。基本对象包含7类,其中DocumentNode有10个解析接口,FeatureNode包含13个解析接口,FeaturePropertyNode包含2个接口,FeatureMenberNode包括2个接口,GeometryObjectNode包括13个接口,GeometryPropertyNode包含2个接口,BoundingShape包含2个接口;扩展对象包含26类对象,辅助对象有7类,每类对象都包相应的解析接口(详见表1、2、3)。

3、持久化处理

GDOM持久化的过程实际上是把GML数据文件及模式文件中的部分信息,按照GDOM要求的模式进行组织,并将其组织成GDOM元数据文件的过程。存储GDOM对象信息的描述文件称为GDOM元数据文件,具体分为两种:结构元数据文件和内容元数据文件。前者存储GDOM语义树结构信息,后者存储GDOM语义树节点内容信息。

(1)GDOM持久化数据结构

GDOM结构元数据保存GDOM对象的嵌套结构信息,不记录具体的数据内容。GDOM对象被定义成GDOM结构元数据中的复杂元素类型。对象之间的嵌套关系转换为元素类型之间的引用关系。GDOM结构元数据利用XML文档的层次嵌套结构,描述GDOM对象间的嵌套关系,把基于GDOM树GML语义级别的文档遍历操作,诸如下一几何节点、前一要素节点等,转换为对GDOM结构元数据的路径查询。

GDOM内容元数据与结构元数据类似,同样使用XML复杂元素类型表示GDOM对象。GDOM对象的属性值,表现为复杂元素类型中子元素的值。因此,内容元数据中的复杂元素仅包含简单类型的子元素,不存在复杂元素之间的嵌套关系。GDOM内容元数据记录与GML文档内容的映射关系,保证GDOM管理引擎在提供接口操作时能够找到相应的记录信息。

GDOM对象的属性值与GML数据文件的内容之间通过映射实现关联,具体的映射关系包括元素名映射方式、元素值映射方式和属性值映射方式三种。

元素名映射方式,GDOM对象的属性值是GML文档中某个元素的名称,如FeaturePropertyNode的getPropertyName操作,它提取的属性值是与其关联的XML元素的元素名称。元素值映射方式,GDOM对象的属性值是GML文档中某个元素的文本值,如PolygonNode的getExteriorCoords操作,它所提取的属性值是与其关联的XML元素的元素值。属性值映射方式,GDOM对象的属性值是GML文档中某个元素的属性值,如FeatureNode的getgmlid操作,它所提取的属性值是与其关联的XML元素的id属性值。多元素值映射方式,对象的属性值由数据文件中多个简单元素节点的值组合而成,如PolygonNode的getInteriorCoords操作,它所提取的内容是多边形所有内环节点的坐标值。结构元数据与内容元数据之间通过GDOM对象编码相关联。GDOM对象编码是GDOM对象在GDOM语义树上的唯一标识,它的编码包含两部分,前3位为GDOM对象类型编码,后六位为索引号,由对象类型编码与索引号组合而成。索引号与对象在GDOM树中的出现的顺序有关,每一类GDOM对象使用单独的索引号,按照GDOM树的深度优先顺序依次增加。如GDOM对象编码为002000002,表示按照深度优先的顺序,该对象是GDOM语义树中第二个GDOM要素对象(图1)。

(2)GDOM持久化过程

GDOM的持久化过程首先是读入GML应用模式文件,建立应用模式标签和核心模式标签的映射;然后读入GML数据文档,对GML文档进行基于数据流的遍历,通过判断GML标签建立相应的GDOM对象,并把GML数据文档中的数据写入GDOM对象,同时建立GDOM对象的堆栈,建立对象之间的逻辑包含关系,形成GDOM实例;最终把内存中的GDOM对象序列化为结构元数据文件和内容元数据文件,其过程如图2所示。以School.xml为例(图3),通过本方法可以形成GDOM实例(图4)及两个持久化文件(图5、6)。

4、基于GDOM持久化的解析

由于GDOM对象已经持久化为GDOM结构文件和内容文件,因此,基于GDOM对GML解析的过程实际上是对结构文件和内容文件内容的读取。并通过GDOM对象的接口实现调用。在GML解析过程中,外部模调用解析函数,解析函数通过访问器访问GDOM对象,GDOM对象按照解析接口的要求开始遍历持久化文件,首先遍历结构元数据文件,如果找到满足解析接口的数据,则返回该数据,否则根据结构元数据文件和内容数据元文件的映射关系遍历内容元数据文件,如果找到满足要求的数据,返回该数据,否则需要根据内容元文件记录的编码对GML值文件进行查找,直至发现满足解析接口的数据(图7)。

本发明方法,针对面向GML文本解析接口不够丰富、缺乏规范以及效率低下等方法弊端,设计了具有丰富的GML对象表达和语义操纵接口的文档对象模型(GDOM)。为提高GML解析的效率,设计了面向GDOM对象的持久化存储方法、定义了存储GDOM语义树结构信息的结构元数据和存储GDOM语义树节点内容信息的内容元数据。在此基础上,基于SAX的方法实现了GDOM持久化文件的生成,基于DOM方法实现了GDOM持久化文件的解析。为高效、灵活地处理GML或其它半结构化空间数据资源提供了解决办法。

附图说明:

图1GDOM持久化后数据的索引号;

图2GDOM数据持久化过程;

图3示例实例数据文档schools.xml;

图4Schools.xml的GDOM树结构;

图5Schools.xml的结构元数据文件;

图6Schools.xml的内容元数据文件;

图7基于GDOM数据持久化的解析流程;

图8基于GDOM及其持久化的GML解析方法在GML空间查询中的应用。

具体实施方式

下面结合具体实施例,对本发明做详细说明。
以GML数据的空间查询为例,GDOM对象由构建到向应用程序提供解析操作步骤如下(图8):
GDOM元数据文件的构建:
GDOM元数据文档的生成依赖于GML语义解析过程。GDOM管理引擎将GML数据解析中遇到的XML对象类型翻译为相应的GDOM对象类型,并按照GDOM元数据的模式文件创建GDOM元数据文件。该过程首先是DOM对象类型与GDOM对象类型的映射过程。GML数据文件中有两种类型的元素可以映射为GDOM对象,一类是GML核心模式中的元素类型,另一类是应用模式中由GML核心元素类型扩展而来元素类型,它们各自使用不同的映射方式:
(1)GML核心模式定义的元素类型。此种的映射相对简单,使用静态映射文件记录表中所定义的GML核心元素类型与GDOM对象类型之间映射关系即可。
(2)GML应用模式定义的扩展元素类型。扩展元素类型对应的GDOM对象类型即为其父类型对应的GDOM对象类型。因此,可以通过对应用模式的解析,构建动态映射文件,记录扩展元素类型与GDOM对象类型之间的映射。由于扩展元素类型通常使用与应用相关的名称来定义,导致记录这种映射关系的映射文件会根据应用模式的不同发生变化。
GDOM对象的构建与GML解析:
GDOM对象构建器从GDOM内容元数据中提取对象属性的值及其映射方式初始化GDOM Objects。初始状态的GDOM Objects中属性信息分为两类:一类属性的映射方式为SimpleType的属性,它们的值从GDOM内容数据文件中直接提取;另一类属性的值需要根据映射方式,动态从GML文档中提取。因此,对于第二类属性,初始时GDOM Objects只记录与属性信息相关联的节点编码及其值的映射方式。GDOM Objects不支持直接通过类成员的方式提取信息。属性值的获取全部通过Get访问器。Get访问器实现了具体的GML解析操作,按照指定的映射方式调用本原GML数据库系统底层相应的查询接口,向应用程序返回真实的属性值。
GML查询对解析接口的引用:
以GML的空间查询为例,首先需要对输入的查询语句进行分析,找出空间算子连接的对象,然后引入解析接口,判断连接的对象是否为GeometryObjectNode,如果是则进行下一步运算,并返回查询结果,否则退出空间查询,并提示错误信息。
表1GDOM基本对象及其接口函数集



表2GDOM扩展对象及其接口函数集




表3GDOM辅助对象及其接口函数集
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈