计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

基于扩展XQuery引擎的空间数据流查询方法研究((2)

2014-06-09 01:13
导读:import schema namespace GML="http://schemas.opengis.net/gml/" at" geometry.xsd"; 引入GML的schema后,可以将GML进行描述的空间变量定义为schema限制的element变量作为参数进行传

  import schema namespace GML="http://schemas.opengis.net/gml/"
  at" geometry.xsd";
  引入GML的schema后,可以将GML进行描述的空间变量定义为schema限制的element变量作为参数进行传递,定义如下:
  Let$p=doc(′test.xml′)/schema-element(GML:linestring)
  2.2空间功能的扩展
  定义了空间数据的表达方式后,对空间运算功能的实现在外部方法中进行。参照文献[6]中定义的空间方法,本文定义了SPATIAL类封装,实现了部分空间方法。由于Saxon的XQuery 实现中,支持对Java类的静态方法调用以及实例化对象方法调用,但对于需要实例化对象的方法调用相对复杂。为了方便调用,所有空间方法均定义为SPATIAL类的静态成员方法。定义如下:
  public class SPATIAL{
  public static boolean WithIn(Document a, Document b){…}
  public static boolean Toughes(Document a, Document b){…}
  public static boolean Crosses(Document a, Document b){…}
  ……}
  实现了上述定义空间方法后,通过该类就可以扩展Saxon的XQuery引擎。扩展方法很简单,只需在XQuery语句中声明该空间类的名称空间,在查询语句中需要空间运算的地方调用该类的各种方法即可。比如要使用空间包含的方法,先声明名称空间:declare namespace SPATIAL=“java:myclass.SPATIAL”;然后只需在调用方法前加入名称空间即可,如SPATIAL:Disjoin(…)。
  另外需要注意的是,如果扩展的方法返回值不是简单数据类型则需要进一步处理。本文方法只是返回空间的包含相交等关系是否为真,是简单的布尔类型,不需要进一步处理。 共2页: 1 [2] 下一页 论文出处(作者):
基于WF-net的工作流恢复网模型的研究
基于结构化P2P的分布式数据流系统的查询处理模型
上一篇:人工智能 下一篇:没有了