Xml文件的校验方法和装置的制作方法

文档序号:6332363阅读:253来源:国知局
专利名称:Xml文件的校验方法和装置的制作方法
技术领域
本发明涉及文件校验领域,特别涉及一种XML文件的校验方法和装置。
背景技术
XML(Extensible Markup Language,可扩展标记语言)是一种通用标记语言,其通过一系列简单且便于建立的标记对数据进行描述,易于掌握和使用。在hternet环境中, XML已成为当前处理结构化文件信息的有力工具。随着XML的广泛应用,如何对XML文件进行校验,从而确保XML文件的正确性也逐步受到重视。现有技术中,通过在XML文件中嵌入具有校验规则的校验逻辑代码,实现对XML文件的校验。该代码作为XML文件的一部分存在于XML文件中,在XML文件运行的同时即实现了对XML文件的校验。在实现本发明的过程中,发明人发现现有技术至少存在以下问题在XML文件中嵌入具有校验逻辑功能的程序代码,虽然可以对的文件内容进行校验,但是如果需要更新校验规则,则需要进入XML文件,更改该具有校验逻辑功能的程序代码,这对于对整个XML文件并不了解的程序员来说,是极为复杂、难以实现的;并且,如果 XML文件已经发布,通过进入XML文件从而修改校验规则是不可接受的,从而没办法更新校验规则。

发明内容
为了实现无需修改XML文件,即可实现对XML文件的校验,本发明实施例提供了一 种XML文件的校验方法,所述方法包括获取用户设置的待校验XML文件的校验规则;生成所述校验规则对应的XSL校验文件;获取所述待校验的XML文件;根据所述XSL校验文件对所述待校验的XML文件进行校验,输出校验结果。所述获取用户设置的所述校验规则之后还包括判断所述校验规则是否为XML格式,如果不是,则将所述校验规则转换成XML格式。所述生成所述校验规则对应的XSL校验文件具体包括;根据所述校验规则,生成Xpath匹配查询文件;根据所述校验规则,生成XSLT转换文件;根据所述Xpath匹配查询文件和所述XSLT转换文件生成XSL校验文件。所述根据所述XSL校验文件对所述待校验的XML文件进行校验,输出校验结果具体包括根据所述XSL校验文件中的所述Xpath匹配查询文件在所述待校验XML文件中查寻与所述校验规则匹配的部分;
根据XSL校验文件中的所述XSLT转换文件对所述匹配部分进行转换,得到转换结果;根据转换结果输出校验结果。本发明实施例提供了一种XML文件的校验装置法,所述装置包括校验规则获取模块,用于获取用户设置的待校验XML文件的校验规则;XSL校验文件生成模块,用于生成所述校验规则对应的XSL校验文件;待校验的XML文件获取模块,用于获取所述待校验的XML文件;校验结果输出模块,用于根据所述XSL校验文件对所述待校验的XML文件进行校验,输出校验结果。所述装置还包括格式转换模块,用于判断所述校验规则是否为XML格式,如果不是,则将所述校验规则转换成XML格式。所述XSL校验文件生成模块具体包括;Xpath匹配查询文件生成单元,用于根据所述校验规则,生成Xpath匹配查询文件;XSLT转换文件生成单元,用于根据所述校验规则,生成XSLT转换文件;XSL校验文件生成单元,用于根据所述Xpath匹配查询文件和所述XSLT转换文件生成XSL校验文件。所述校验结果输出模块具体包括规则匹配单元,用于根据所述XSL校验文件中的所述Xpath匹配查询文件在所述待校验XML文件中查寻与所述校验规则匹配的部分;匹配转换单元,用于根据XSL校验文件中的所述XSLT转换文件对所述匹配部分进行转换,得到转换结果;校验结果输出单元,用于根据转换结果输出校验结果。本发明实施例提供的技术方案带来的有益效果是本发明实施例通过生成所述校验规则对应的XSL校验文件,根据所述XSL校验文件对所述待校验的XML文件进行校验,实现了无需修改XML文件内容,只修改用户校验规则即可对XML文件内容的进行校验,从而使用户只需关注校验规则的书写,不用担心XML文件逻辑会改变。


图1是是本发明实施例1中提供的XML文件校验方法的流程图;图2是是本发明实施例2中提供的XML文件校验方法的流程图;图3是是本发明实施例3中提供的XML文件校验装置的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例1
如图1所示,本实施例提供了一种XML文件的校验方法,该方法包括SlOl 获取用户设置的待校验XML文件的校验规则;S102 生成所述校验规则对应的XSL校验文件;S103 获取所述待校验的XML文件;S104 根据所述XSL校验文件对所述待校验的XML文件进行校验,输出校验结果。本实施例通过生成所述校验规则对应的XSL校验文件,根据所述XSL校验文件对所述待校验的XML文件进行校验,实现了无需修改XML文件内容,只修改用户校验规则即可对XML文件内容的进行校验,从而使用户只需关注校验规则的书写,不用担心XML文件逻辑会改变。实施例2如图2所示,本实施例提供了一种XML文件的校验方法,该方法包括S201 用户设置待校验XML文件的校验规则;其中,所述校验规则可以采用任何现有的程序语言进行编写,优选的,用户可采用 XML或Xpath编写该校验规则。其中,Xpath是一门在XML文件中查找信息的语言。XPath用于在XML文件中通过元素和属性进行导航。S202 获取用户设置的校验规则;具体的,获取用户为待校验的XML文件编写的校验规则。其中,XML文件由标记、 元素、属性组成,例1为一XML文件,以例1为例,该文件中标记、元素、属性为标记左尖括号“〈”和右尖括号“〉”之间的文本。标记分为开始标记,如<Name> 和结束标记,如</Name> ;元素开始标记和结束标记之间的所有的内容。如即<Name>和</Name>包含两个子兀素:<FirstName> 禾口 <LastName> ;属性一个元素的开始标记中的“名称——值”对。如City是标记User中元素的属性。例 1 〈User City=" Beijing" ><Name><FirstName>Xiao</FirstName><LastName>Ming</LastName></Name><Sex>Male</Sex><Age>22</Age></User>针对例1所示的XML文件,其校验规则可以为标记Name的父标记是her,且父标记User的属性为City = “ Beijing"S203 判断所述校验规则是否为XML文件格式的文件,如果不是,则将所述校验规则转换成XML文件格式的文件;具体的,通过设置语言转换数据库,将该校验规则转换成XML文件格式的文件。
其中,判断所述校验规则是否为XML文件格式的文件,不是XML文件格式的校验规则转换XML文件格式的文件现有技术,本领域技术人员很容易实现,具体方法此处不再赘述。本实施例对校验规则的编写语言不进行限制,可使不同程序语言领域的技术人员通过本是实施例提供的XML文件的校验方法,编写XML文件的校验规则对XML文件的进行校验,扩大了本实施例所提供XML文件校验方法的使用范围。S204 根据所述校验规则,生成Xpath匹配查询文件;具体的,根据该校验规则,生成Xpath匹配查询文件的xsl template匹配文件以及xsl: if测试条件。xsl:template匹配文件中的match属性对应于XML规则文件中的 rule的context属性值;xsl if测试条件用于匹配待校验文件的每个元素,对应于xml规则文件中的import的test属性值。其中,该校验规则的Xpath文件,用于在待校验的XML文档中导航,查找XML文档中与该校验规则匹配的部分,即与xsktemplate匹配模块以及xsl if测试条件匹配的部分。现有技术中,XSL样式表由一个或多套被称为模板template的规则组成。每个模板含有当某个指定的节点被匹配时所应用的规则。<xsl:template〉元素用于构建模板。 match属性用于关联XML元素和模板。match属性也可用来为整个文档定义模板。match属性的值是XPath表达式现有技术中,本领域技术人员根据该校验规则,可很容易生成该校验规则对应的 xsl: template匹配模块以及xsl if测试条件,并由所述校验规则对应的xsl template匹配模块和xsl if测试条件生成该校验规则的Xpath文件,具体方法此处不再赘述。S205 根据所述校验规则,生成所述XSL校验文件中的XSLT转换文件;具体的,根据所述XSL校验文件中的所述Xpath匹配查询文件在所述待校验XML 文件中查寻与所述校验规则匹配的部分;根据XSL校验文件中的所述XSLT转换文件对所述匹配部分进行转换,得到转换结^ ο其中,校验规则的XSLT文件,用于通过Xpath文件在待校验的XML文件中导航查找到的,待校验XML文件中与该校验规则匹配的部分转换输出。现有技术中,本领域技术人员可很容易根据所述校验规则,生成所述校验规则的 XSLT文件,具体方法此处不再赘述。S206 根据Xpath匹配查询文件和XSLT转换文件生成XSL校验文件。现有技术中,本领域技术人员可很容易根据Xpath匹配查询文件和XSLT转换文件生成XSL校验文件,具体方法此处不再赘述。S207 根据所述XSL校验文件中的所述Xpath匹配查询文件在所述待校验XML文件中查寻与所述校验规则匹配的部分;具体的,从所述待校验XML文件的根节点开始遍历所述待校验XML文件,通过该校验规则的Xpath文件,在待校验的XML文件中导航,查找待校验XML文件中与Xpath文件中 xsl template匹配模块以及xsl if测试条件匹配的部分,当所述待校验XML文件中存在与 Xpath文件中的xsl template匹配模块以及xsl if测试条件匹配的部分时,XSLT文件输出所述待校验XML文件中与所述Xpath文件匹配的部分,提示用户该部分与其设置的校验规则匹配。S208 根据XSL校验文件中的所述XSLT转换文件对所述匹配部分进行转换,得到转换结果;具体的,XSLT转换文件将待校验XML文件中与Xpath文件匹配的部分转换为XML 格式转换结果。优选的,该转换结果中记录着匹配部分的位置,该位置指明匹配部分在待校验XML 文件中的位置。现有技术中,当待校验XML文件中存在与Xpath文件匹配的部分时,通过XSLT文件输出该匹配部分是现有技术,本领域技术人员可很容易根据XSLT文件输出所述XML文件中与所述Xpath文件匹配的部分具体方法此处不再赘述。S209 根据转换结果输出校验结果。具体的,提取转换结果中用户关注的信息,如错误级别,提示文字等,同时根据转换结果中记录的匹配部分的位置,在待校验文档相应位置显示校验结果,提示用户该部分为符合其设置的校验规则。现有技术中,当待校验XML文件中存在与Xpath文件匹配的部分时,通过XSLT文件输出该匹配部分是现有技术,本领域技术人员可很容易根据XSLT文件输出所述XML文件中与所述Xpath文件匹配的部分具体方法此处不再赘述。现以例2为例,对根据本实施例提供方法实现对例2所示XML文件进行校验做简要描述例 2 用户设置的校验规则为用于校验layout:panel的closable属性只适用于外层容器layouttabLayout由上述校验规则生成的校验XSL文件片段,该片段为XSL文件中的描述校验规则的Xpath文件部分<rule context =〃 layout:panel" ><variable name = " ancestor " >ancestor:: layout:tabLayout[1]</ variable)<report test = " Oclosable and not($ancestor)" ><href></href><severity>warning</severity)<message>…</message>〈/report〉</rule>待校验XML文件片段<w:page title=" Insert title here" ><layout: tabLayoutXlayout:panel closable = " true " />
7
</layouttabLayout><layoutborderLayout><layout:panelonactivate =" tabl “ /></layout:borderLayout></w:page>根据上述XSL校验文件对该待校验XML文件进行校验的校验结果为Layoutipanel 的 onactivate 属性只适用于夕卜层容器 tablayouto本实施例通过生成所述校验规则对应的XSL校验文件,根据所述XSL校验文件对所述待校验的XML文件进行校验,实现了无需修改XML文件内容,只修改用户校验规则即可对XML文件内容的进行校验,从而使用户只需关注校验规则的书写,不用担心XML文件逻辑会改变。实施例3如图3所示,本实施例提供了一种XML文件的校验装置,该装置包括校验规则获取模块301,用于获取用户设置的待校验XML文件的校验规则;XSL校验文件生成模块302,用于生成该校验规则对应的XSL校验文件;待校验的XML文件获取模块303,用于获取该待校验的XML文件;校验结果输出模块304,用于根据该XSL校验文件对该待校验的XML文件进行校验,输出校验结果。格式转换模块305,用于判断该校验规则是否为XML格式,如果不是,则将该校验规则转换成XML格式。
文件;
XSL校验文件生成模块302具体包括;
Xpath匹配查询文件生成单元3021,用于根据所述校验规则,生成Xpath匹配查询
XSLT转换文件生成单元3022,用于根据所述校验规则,生成XSLT转换文件; XSL校验文件生成单元3023,用于根据所述Xpath匹配查询文件和所述XSLT转换文件生成XSL校验文件。校验结果输出模块304具体包括规则匹配单元3041,用于根据该XSL校验文件中的该Xpath匹配查询文件在该待校验XML文件中查寻与该校验规则匹配的部分;匹配转换单元3042,用于根据XSL校验文件中的该XSLT转换文件对该匹配部分进行转换,得到转换结果;校验结果输出单元3043,用于根据转换结果输出校验结果。本实施例通过生成所述校验规则对应的XSL校验文件,根据所述XSL校验文件对所述待校验的XML文件进行校验,实现了无需修改XML文件内容,只修改用户校验规则即可对XML文件内容的进行校验,从而使用户只需关注校验规则的书写,不用担心XML文件逻辑会改变。以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如计算机中的硬盘、光盘或软盘。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种XML文件的校验方法,其特征在于,所述方法包括 获取用户设置的待校验XML文件的校验规则;生成所述校验规则对应的XSL校验文件; 获取所述待校验的XML文件;根据所述XSL校验文件对所述待校验的XML文件进行校验,输出校验结果。
2.根据权利要求1所述方法,其特征在于,所述获取用户设置的所述校验规则之后还包括判断所述校验规则是否为XML格式,如果不是,则将所述校验规则转换成XML格式。
3.根据权利要求1或2所述方法,其特征在于,所述生成所述校验规则对应的XSL校验文件具体包括;根据所述校验规则,生成Xpath匹配查询文件; 根据所述校验规则,生成XSLT转换文件;根据所述Xpath匹配查询文件和所述XSLT转换文件生成XSL校验文件。
4.根据权利要求3所述方法,其特征在于,所述根据所述XSL校验文件对所述待校验的 XML文件进行校验,输出校验结果具体包括根据所述XSL校验文件中的所述Xpath匹配查询文件在所述待校验XML文件中查寻与所述校验规则匹配的部分;根据XSL校验文件中的所述XSLT转换文件对所述匹配部分进行转换,得到转换结果; 根据转换结果输出校验结果。
5.一种XML文件的校验装置,其特征在于,所述装置包括校验规则获取模块,用于获取用户设置的待校验XML文件的校验规则; XSL校验文件生成模块,用于生成所述校验规则对应的XSL校验文件; 待校验的XML文件获取模块,用于获取所述待校验的XML文件; 校验结果输出模块,用于根据所述XSL校验文件对所述待校验的XML文件进行校验,输出校验结果。
6.根据权利要求5所述装置,其特征在于,所述装置还包括格式转换模块,用于判断所述校验规则是否为XML格式,如果不是,则将所述校验规则转换成XML格式。
7.根据权利要求5或6所述装置,其特征在于,所述XSL校验文件生成模块具体包括; Xpath匹配查询文件生成单元,用于根据所述校验规则,生成Xpath匹配查询文件; XSLT转换文件生成单元,用于根据所述校验规则,生成XSLT转换文件;XSL校验文件生成单元,用于根据所述Xpath匹配查询文件和述XSLT转换文件生成 XSL校验文件。
8.根据权利要求7所述装置,其特征在于,所述校验结果输出模块具体包括规则匹配单元,用于根据所述XSL校验文件中的所述Xpath匹配查询文件在所述待校验XML文件中查寻与所述校验规则匹配的部分;匹配转换单元,用于根据XSL校验文件中的所述XSLT转换文件对所述匹配部分进行转换,得到转换结果;校验结果输出单元,用于根据转换结果输出校验结果。
全文摘要
本发明公开了一种XML文件的校验方法,包括获取用户设置的待校验XML文件的校验规则;生成所述校验规则对应的XSL校验文件;获取所述待校验的XML文件;根据所述XSL校验文件对所述待校验的XML文件进行校验,输出校验结果。一种XML文件的校验装置,包括校验规则获取模块;XSL校验文件生成模块;待校验的XML文件获取模块;校验结果输出模块。本发明通过生成所述校验规则对应的XSL校验文件,根据所述XSL校验文件对所述待校验的XML文件进行校验,实现了无需修改XML文件内容,只修改用户校验规则即可对XML文件内容的进行校验,从而使用户只需关注校验规则的书写,不用担心XML文件逻辑会改变。
文档编号G06F17/30GK102402556SQ20101028714
公开日2012年4月4日 申请日期2010年9月16日 优先权日2010年9月16日
发明者柳容涛 申请人:深圳市金蝶中间件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1