将XML Schema文档转换为XSL文档的方法技术

技术编号:20820043 阅读:31 留言:0更新日期:2019-04-10 05:57
本发明专利技术公开了一种将XML Schema文档转换为XSL文档的方法,包括以下步骤:先确定XML Schema标准定义中需要关注的元素,然后确定XML Schema标准定义的元素和XSL标准定义的元素之间的映射关系;对XML Schema文档进行解析,获取schema标准中需要关注的第一个元素,并添加到XSL文档中;按照深度优先原则依次对XML Schema文档中的

【技术实现步骤摘要】
将XMLSchema文档转换为XSL文档的方法
本专利技术涉及一种计算机文档转换方法,尤其涉及一种将XMLSchema文档转换为XSL文档的方法。
技术介绍
XML是一种数据描述和交换的通用格式,得到了广泛的应用,具有通用性和可交换性。XMLSchema用来描述XML文档结构,对XML文档进行约束和验证,其本身也是使用XML文档结构,是基于XML的DTD替代者。XMLschema定义了XML文档的如下参数:可出现在XML文档中的元素、属性;哪个元素是子元素;子元素出现的次序、子元素的数目;元素是否为空、是否可包含文本;元素和属性的数据类型;元素和属性的默认值以及固定值。XSL(eXtensibleStylesheetLanguage)是可扩展样式表语言,是一种用于以可读格式呈现XML数据的语言。通俗的讲就是XML文件可以通过引用XSL样式表呈现不同格式,即XSL可以将XML文档转化为XHTML/HTML文档或者是其他XML文档。目前,通常采用将XMLschema文档手动编辑为XSL文档或者用商业软件将XMLschema文档自动生成XSL文档的方式实现将XMLSchema文档转换为XSL文档的目的。但前者复杂度高,费时费力;后者通常需要大量的修改才能应用于XML中。并且这两种方式都存在一个严重的问题:一旦对XML文档进行了修改,都需要对XSL文档进行重新编辑。
技术实现思路
本专利技术的目的就在于为了解决上述问题而提供一种将XMLSchema文档转换为XSL文档的方法。本专利技术通过以下技术方案来实现上述目的:一种将XMLSchema文档转换为XSL文档的方法,其特征在于:包括以下步骤:步骤1:先确定XMLSchema标准定义中需要关注的元素,然后确定XMLSchema标准定义的元素和XSL标准定义的元素之间的映射关系;步骤2:对XMLSchema文档进行解析,获取schema标准中需要关注的第一个元素,并添加到XSL文档中;步骤3:按照深度优先原则依次对XMLSchema文档中的<schema>的子节点中的<element>元素进行解析,查找XMLSchema中需要关注的元素并添加到XSL文档中,直到完成整个XMLSchema文档的转换。作为优选,所述步骤1具体包括以下步骤:步骤(1.1):确定XMLSchema标准定义中需要关注的元素包括但不限于以下元素:<xs:elment>元素及其name、type和ref属性;<xs:group>元素;<xs:attribute>元素及其ref属性;<xs:complexType>元素;步骤(1.2):确定XMLSchema标准定义的元素和XSL标准定义的元素之间的映射关系,具体为:<xs:elment>映射为<xsl:template>,并使用match属性关联XML元素和模板;/element/element之间的父子关系映射为template/apply-templates,并使用<apply-templates>的select属性,表示仅处理匹配该属性的值的子元素;<xs:attribute>映射为<xsl:value-of>,用于提取某个选定节点的值;/element/attribute映射为/template/value-of。所述步骤2具体包括以下步骤:步骤(2.1):创建XSL文档,并添加域名和版本信息;步骤(2.2):读取XMLSchema文档,获取document对象和根节点;步骤(2.3):对根节点的子节点进行遍历,获取当前的子节点;步骤(2.4):如果子节点的名称是element,那么解析节点的type、name和ref属性;步骤(2.5):根据type、name和ref的值,确定需要关注的第一个元素的名称,并将该元素添加到XSL文档中。所述步骤3具体包括以下步骤:步骤(3.1):根据子节点的name、type、Ref属性值,确定新的要解析的element元素、element元素的路径Xpath、以及element元素节点名称;步骤(3.2):获取该element元素节点迭代器;步骤(3.3):根据element元素节点的名称参数,设置当前正在解析的element元素elementTemplate、以及正在解析的element元素节点的名称;步骤(3.4):判断该element元素是否是叶子节点,如果是,则转到步骤(3.5);如果不是叶子节点,则转到步骤(3.8);步骤(3.5):判断element元素节点的名称是否是element,如果是,则转到步骤(3.6);如果不是element,则转到步骤(3.7);步骤(3.6):获取element元素节点的name、type属性值,并根据name和type的值是否为空,判断是否给elementTemplate元素添加子节点value-of;步骤(3.7):对节点的ref属性值不为空的元素进行处理,确定新的要解析的element元素、element元素的路径Xpath、以及element元素节点名称;转到步骤(3.2);步骤(3.8):对该元素的子节点进行遍历,获取元素节点element、元素节点名称、设置节点的Xpath,如果子节点名称是element,则转到步骤(3.9);如果子节点名称是attribute,则转到步骤(3.10);步骤(3.9):对子节点名称为element的元素进行处理,根据子节点的name、type、ref属性值,确定新的要解析的element元素、element元素的路径Xpath、以及element元素节点名称;将当前的element元素添加到XSL文档中,节点的标签是<apply-templates>,父节点是elementTemplate;转到步骤(3.2);步骤(3.10):对子节点名称为attributet的元素进行处理,并添加到XSL文档中,节点的标签是<value-of>,父节点是elementTemplate;转到步骤(3.2)。本专利技术的有益效果在于:本专利技术通过分析XMLSchema文档和XSL文档之间的关系,确定XMLSchema文档中需要关注的元素并映射到XSL文档中,从而生成XSL文档的模板,用户只需要依据呈现的不同格式,在生成的XSL文档模板中添加一些html标签,就可以完成XSL文档的编辑,从而降低了XSL文档编辑的复杂度,并提高编辑的效率,并且生成的XSL文档支持基于该XMLSchema生成的所有xml文档,通过引用该的XSL文档可以使XML文件呈现不同格式,使得XML文档易于阅读。具体实施方式下面结合实施例对本专利技术作进一步说明:实施例:一种将XMLSchema文档转换为XSL文档的方法,包括以下步骤:步骤1:先确定XMLSchema标准定义中需要关注的元素,然后确定XMLSchema标准定义的元素和XSL标准定义的元素之间的映射关系;本步骤具体包括以下步骤:步骤(1.1):确定XMLSchema标准定义中需要关注的元素包括但不限于以下元素:<xs:elment>元素及其na本文档来自技高网...

【技术保护点】
1.一种将XML Schema文档转换为XSL文档的方法,其特征在于:包括以下步骤:步骤1:先确定XML Schema标准定义中需要关注的元素,然后确定XML Schema标准定义的元素和XSL标准定义的元素之间的映射关系;步骤2:对XML Schema文档进行解析,获取schema标准中需要关注的第一个元素,并添加到XSL文档中;步骤3:按照深度优先原则依次对XML Schema文档中的

【技术特征摘要】
1.一种将XMLSchema文档转换为XSL文档的方法,其特征在于:包括以下步骤:步骤1:先确定XMLSchema标准定义中需要关注的元素,然后确定XMLSchema标准定义的元素和XSL标准定义的元素之间的映射关系;步骤2:对XMLSchema文档进行解析,获取schema标准中需要关注的第一个元素,并添加到XSL文档中;步骤3:按照深度优先原则依次对XMLSchema文档中的<schema>的子节点中的<element>元素进行解析,查找XMLSchema中需要关注的元素并添加到XSL文档中,直到完成整个XMLSchema文档的转换。2.根据权利要求1所述的将XMLSchema文档转换为XSL文档的方法,其特征在于:所述步骤1具体包括以下步骤:步骤(1.1):确定XMLSchema标准定义中需要关注的元素包括但不限于以下元素:<xs:elment>元素及其name、type和ref属性;<xs:group>元素;<xs:attribute>元素及其ref属性;<xs:complexType>元素;步骤(1.2):确定XMLSchema标准定义的元素和XSL标准定义的元素之间的映射关系,具体为:<xs:elment>映射为<xsl:template>,并使用match属性关联XML元素和模板;/element/element之间的父子关系映射为template/apply-templates,并使用<apply-templates>的select属性,表示仅处理匹配该属性的值的子元素;<xs:attribute>映射为<xsl:value-of>,用于提取某个选定节点的值;/element/attribute映射为/template/value-of。3.根据权利要求1所述的将XMLSchema文档转换为XSL文档的方法,其特征在于:所述步骤2具体包括以下步骤:步骤(2.1):创建XSL文档,并添加域名和版本信息;步骤(2.2):读取XMLSchema文档,获取document对象和根节点;步骤(2.3):对根节点的子节点进行遍历,获取当前的子节点;步骤(2.4):如果子节点的名称是element,那么解析节点的type、name和ref属性;步骤(2.5...

【专利技术属性】
技术研发人员:马永起张民彭小静蒙立荣谢家俊程铮吴家菊朱行林刘振吉成勋
申请(专利权)人:中国工程物理研究院计算机应用研究所四川中锐信息技术有限公司
类型:发明
国别省市:四川,51

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

1