可扩展标记语言元素和类型的全局命名方法技术

技术编号:3520575 阅读:211 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种可扩展标记语言元素和类型的全局命名方法,包括下述步骤:10)将全局元素命名为“{element}{+目标名称空间+}+元素的名称属性值”;20)将全局复杂类型命名为“{type}{+目标名称空间+}+复杂类型的名称属性值”;30)将局部元素命名为“包含该局部元素的复杂类型的全局名字+“/”+该局部元素的名称属性值”;40)将局部复杂类型命名为该局部复杂类型的父元素的全局名字;50)将简单类型命名为其基础类型的全局名字。可以很方便的区分Schema不同的名称空间中定义的相同名字的元素和类型,同时在Schema引用别的Schema导致多个名字空间在同一XML文档中出现的情况下,也可以通过全局名字来唯一区分该元素和类型。

【技术实现步骤摘要】

本专利技术涉及可扩展标记语言领域,尤指一种对可扩展标记语言文件中的各级父子关系的元素和类型进行全局命名的。
技术介绍
随着Internet的迅猛发展,XML(可扩展标记语言)作为Internet上数据表示的新标准,以其具有的自描述性、灵活性、扩展性和平台无关性等优势,正在被广泛的应用于Web上的数据传输和数据存储过程中。W3C(万维网联盟,XML标准组织)推出了一系列的XML相关的技术和标准,其中可以通过XPath(XML路径表达方式标准)来对某个具体的XML文件中的元素及其子元素和属性进行定位,支持XPath的解析器可以迅速的根据XPath分析出XML文档中的某个具体元素。使用XPath这种处理方式时必须根据具体的XML文档结构来书写其特定的路径,如果对于大量结构不同但又具有相似元素或类型的XML文档,我们只能针对每个文档使用对应的XPath来找到这个元素,在这种情况下这种处理方式是很繁琐的,同时效率也是很低的。如何对XML文档中的元素和类型进行命名,使得能够通过唯一名字来找到不同XML文档中相同定义的元素,这一直是业界关注的问题,目前还没有解决方案。
技术实现思路
本专利技术要解决的问题是提供一种能够对XML文档中的元素和类型进行全局命名的。为了解决上述问题,本专利技术的技术方案包括下述步骤10)将全局元素命名为“{element}{+目标名称空间+}+元素的名称属性值”;20)将全局复杂类型命名为“{type}{+目标名称空间+}+复杂类型的名称属性值”;30)将局部元素命名为“包含该局部元素的复杂类型的全局名字+“/”+该局部元素的名称属性值”;40)将局部复杂类型命名为该局部复杂类型的父元素的全局名字;50)将简单类型命名为其基础类型的全局名字。所述步骤10)前还包括下述步骤1)获取可扩展标记语言模式文件定义的目标名称空间; 2)读取模式文件中的全局元素的名称属性值。所述步骤10)和步骤20)之间还包括以下步骤11)获取可扩展标记语言模式文件定义的目标名称空间;12)读取模式文件中的全局复杂类型的名称属性值。所述步骤20)和步骤30)之间还包括以下步骤21)获取包含局部元素的复杂类型的全局名字;22)读取该局部元素的名称属性值。所述步骤30)和步骤40)之间还包括步骤获取包含局部复杂类型的父元素的全局名字。所述步骤40)和步骤50)之间还包括以下步骤获取简单类型的基础类型的全局名字。与现有技术相比,本专利技术的有益效果由于对XML的元素和类型进行全局命名,将全局元素命名为“{element}{+目标名称空间+}+元素的名称属性值”、将全局复杂类型命名为“{type}{+目标名称空间+}+复杂类型的名称属性值”、将局部元素命名为“包含该局部元素的复杂类型的全局名字+“/”+该局部元素的名称属性值”、将局部复杂类型命名为该局部类型的父元素的全局名字以及将简单类型命名为其基础类型的全局名字。这样不仅可以很快地标识出Schema中未显式给出名称的匿名类型和不同类型中定义的名字可能相同的局部元素,也可以很方便的区分Schema不同的名称空间中定义的相同名字的元素和类型,同时在Schema引用别的Schema导致多个名称空间在同一XML文档中出现的情况下,也可以通过全局名字来唯一区分该元素和类型,还可以很方便的根据Schema定义的复杂类型来处理相同的XML元素,统一集中的处理这些信息,省去分析大量XML文档所带来的额外开销。附图说明图1是本专利技术的流程图。具体实施例方式如图1所示,本专利技术包括下述步骤10)将全局元素命名为“{element}{+目标名称空间+}+元素的名称属性值”;20)将全局复杂类型命名为“{type}{+目标名称空间+}+复杂类型的名称属性值”;30)将局部复杂类型命名为该局部复杂类型的父元素的全局名字;40)将局部元素命名为“包含该局部元素的复杂类型的全局名字+“/”+该局部元素的名称属性值”;50)将简单类型命名为其基础类型的全局名字。使用目标名称空间作为全局元素的全局名字的一部分,这样能够将处在不同schema中的具有相同名称属性值的全局元素区分开;至于全局复杂类型的命名同理;由于局部复杂类型对所属元素是不可见,所以它的名字可以忽略,故在对局部复杂类型进行命名时获取引用它的父元素的全局名字,并把这个名称作为该匿名类型的全局名字;当局部元素是由一个局部类型所定义时,或者一个局部类型被一个局部元素所引用时,局部类型和局部元素的命名是相互递归的,顺序是从外到里;对于简单类型使用其基础类型的全局名字作为其全局名字。所述步骤10)前还包括下述步骤1)获取可扩展标记语言模式(Schema)文件定义的目标名称空间(TargetNameSpace);2)读取模式文件中的全局元素(element)的名称属性(name)值。可通过XML解析工具来获取schema文件定义的目标名称空间以及读取所述名称属性值。所述步骤10)和步骤20)之间还包括以下步骤11)获取可扩展标记语言模式文件定义的目标名称空间;12)读取模式文件中的全局复杂类型(complexType)的名称属性(name)值。可通过XML解析工具来获取schema文件定义的目标名称空间以及读取所述名称属性值。所述步骤20)和步骤30)之间还包括以下步骤21)获取包含局部元素的复杂类型的全局名字;22)读取该局部元素的名称属性值。可通过XML解析工具来获取schema文件定义的目标名称空间以及读取所述名称属性值。所述步骤30)和步骤40)之间还包括步骤获取包含局部类型的父元素的全局名字。可通过XML解析工具来获取schema文件定义的包含局部类型的父元素的全局名字。所述步骤40)和步骤50)之间还包括步骤获取简单类型的基础类型的全局名字。可通过XML解析工具来获取schema文件定义的简单类型的基础类型的全局名字。对于xml文档中包含的类型及元素可分为全局元素、局部元素、全局复杂类型、局部复杂类型和简单类型。下面介绍三个schema文件,采用本专利技术的技术方案对其元素和类型进行命名的过程。Schema一address.xsd<?xml version=″1.0″encoding=″UTF-8″?> <xsschema targetNamespace=http//org.xmldb.addressxmlns=″http//org.xmldb.address″xmlnsxs=http//www.w3.org/2001/XMLSchemaelementFormDefault=″qualified″attributeFormDefault=″unqualified″> ;Schema所定义的全局元素address<xselement name=″address″> ;Schema所定义的局部复杂类型<xscomplexType> <xssequence> ;Schema所定义的局部复杂类型中定义的局部元素<xselement name=″tel″type=″xsstring″/&g本文档来自技高网...

【技术保护点】
一种可扩展标记语言元素和类型的全局命名方法,其特征在于,包括下述步骤:10)将全局元素命名为“{element}{+目标名称空间+}+元素的名称属性值”;20)将全局复杂类型命名为“{type}{+目标名称空间+}+复杂类型 的名称属性值”;30)将局部元素命名为“包含该局部元素的复杂类型的全局名字+“/”+该局部元素的名称属性值”;40)将局部复杂类型命名为该局部复杂类型的父元素的全局名字;50)将简单类型命名为其基础类型的全局名字。

【技术特征摘要】

【专利技术属性】
技术研发人员:李安渝严兵傅朝霞秦良娟丁蔚耿建光秦怀平董胜涛
申请(专利权)人:中国科学院软件研究所神州数码软件有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利