文档修复方法、系统、可读存储介质及计算机设备与流程

文档序号:13207139阅读:169来源:国知局
文档修复方法、系统、可读存储介质及计算机设备与流程

本发明涉及数据交换技术领域,特别涉及一种文档修复方法、系统、可读存储介质及计算机设备。



背景技术:

当今社会不断提倡数据共享,而各行业内使用的业务系统不统一,导致各数据间的形式存在差异,限制了数据共享的发展,为此数据交换就孕育而生。xml(extensiblemarkuplanguage,可扩展标记语言)结构是数据交换领域常见的文档结构,现如今通用的数据交换基本都基于xml结构文档,而xsd(xmlschemadefinition,可扩展标记语言模式定义)作为描述xml结构的描述文档,作为交换的规范,实现了各家软件开发商的数据能够满足行业的规范,进而达到数据共享的目的。

在xsd文件中使用import可以导入其它xsd文件中的数据(如类型名称)进行引用,然而在导入的过程当中,可能将导入的数据信息书写错误(需要导入的数据信息本身存在且正确),例如在导入时将被导入文件名称书写错误,导致导入信息后的xsd文件在后续加载(如自动生成代码或根据xsd验证xml有效性)的过程当中将出现错误。

现有技术当中,目前在遇到上述情况时,没有一个好的解决方案,通常只能作数据错误处理或者重新再次对每个导入信息进行导入,造成极大的不便。



技术实现要素:

基于此,本发明的目的是提供一种文档修复方法、系统、可读存储介质及计算机设备,以对xsd文件中错误的导入信息进行修复。

根据本发明实施例的一种文档修复方法,包括:

判断当前选中文件目录下的所有xsd文档内是否包含错误的引用信息;

若是,则根据与所述错误的引用信息相关的关联引用信息查找对应的被引入xsd文档;

将所述错误的引用信息与对应的所述被引入xsd文档内的对应信息修改成一致。

另外,根据本发明上述实施例的一种文档修复方法,还可以具有如下附加的技术特征:

进一步地,所述错误的引用信息包括错误的引入文档名称,所述判断当前选中文件目录下的所有xsd文档内是否包含错误的引用信息的步骤包括:

遍历所有的所述xsd文档,以提取出每个所述xsd文档的引入文档名称;

判断是否存在所述错误的引入文档名称,所述错误的引入文档名称为对应的文档不存在的所述引入文档名称。

进一步地,在所述遍历所有的所述xsd文档的步骤当中还提取出每个所述xsd文档的定义信息,且还提取出与每个所述引入文档名称关联的所述关联引用信息,所述定义信息包括命名名称、默认名字空间及定义类型名称,所述关联引用信息包括引入名字空间和引入类型名称,所述根据与所述错误的引用信息相关的关联引用信息查找对应的被引入xsd文档的步骤包括:

将每个所述错误的引入文档名称关联的所述引入名字空间依次与所有的所述默认名字空间进行匹配,以得到与当前匹配的目标引入名字空间一致的目标默认名字空间;

判断所述目标默认名字空间对应的目标定义类型名称是否包括所述目标引入名字空间对应的目标引入类型名称;

若是,则将包括所述目标引入类型名称的所述目标定义类型名称对应的目标xsd文档作为所述目标引入类型名称对应的所述被引入xsd文档。

进一步地,所述将所述错误的引用信息与对应的所述被引入xsd文档内的对应信息修改成一致的步骤包括:

将所述错误的引入文档名称和对应的所述被引入xsd文档的所述命名名称修改成一致。

进一步地,在所述遍历所有的所述xsd文档的步骤之后,还包括:

将每个所述xsd文档的所述命名名称、所述定义类型名称及所述默认名字空间建立定义信息映射表;

将每个所述xsd文档的所述引入文档名称及对应关联的所述引入名字空间和所述引入类型名称建立引入信息映射表。

根据本发明实施例的一种文档修复系统,包括:

引用信息判断模块,用于判断当前选中文件目录下的所有xsd文档内是否包含错误的引用信息;

关联信息查找模块,用于当判断到所述xsd文档内包含所述错误的引用信息时,根据与所述错误的引用信息相关的关联引用信息查找对应的被引入xsd文档;

信息修改模块,用于将所述错误的引用信息与对应的所述被引入xsd文档内的对应信息修改成一致。

另外,根据本发明上述实施例的一种文档修复系统,还可以具有如下附加的技术特征:

进一步地,所述错误的引用信息包括错误的引入文档名称,所述引用信息判断模块包括:

遍历单元,用于遍历所有的所述xsd文档,以提取出每个所述xsd文档的引入文档名称;

第一判断单元,用于判断是否存在所述错误的引入文档名称,所述错误的引入文档名称为对应的文档不存在的所述引入文档名称。

进一步地,在所述遍历所有的所述xsd文档的过程当中还提取出每个所述xsd文档的定义信息,且还提取出与每个所述引入文档名称关联的所述关联引用信息,所述定义信息包括命名名称、默认名字空间及定义类型名称,所述关联引用信息包括引入名字空间和引入类型名称,所述关联信息查找模块包括:

匹配单元,用于将每个所述错误的引入文档名称关联的所述引入名字空间依次与所有的所述默认名字空间进行匹配,以得到与当前匹配的目标引入名字空间一致的目标默认名字空间;

第二判断单元,用于判断所述目标默认名字空间对应的目标定义类型名称是否包括所述目标引入名字空间对应的目标引入类型名称;

处理单元,用于当判断到所述目标默认名字空间对应的目标定义类型名称是包括所述目标引入名字空间对应的目标引入类型名称时,将包括所述目标引入类型名称的所述目标定义类型名称对应的目标xsd文档作为所述目标引入类型名称对应的所述被引入xsd文档。

本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的文档修复方法。

本发明还提出一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的文档修复方法。

上述文档修复方法、系统、可读存储介质及计算机设备,由于引入信息的关联性,当判断到所述xsd文档内包含错误的引用信息时,能够自动根据与所述错误的引用信息相关的关联引用信息查找到对应的被引入xsd文档,而所述被引入xsd文档将包含与所述错误的引用信息对应的正确信息,然后将所述错误的引用信息与对应的所述被引入xsd文档内的对应信息修改成一致,即可实现对所述错误的引用信息进行修改,修复完成之后,包含所述错误的引用信息的所述xsd文档即可正常加载。

附图说明

图1为本发明第一实施例中的文档修复方法的流程图。

图2为本发明第二实施例中的文档修复方法的流程图。

图3为本发明第三实施例中的文档修复系统的结构示意图。

主要元件符号说明:

以下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。

需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

请参阅图1,所示为本发明第一实施例中的文档修复方法,包括步骤s01至步骤s03。

步骤s01,判断当前选中文件目录下的所有xsd文档内是否包含错误的引用信息。

需要指出的是,一个xsd文档(a文档)可以引用另一个xsd文档(b文档)的数据,通常引用的数据为b文档当中定义的类型名称,且当a文档引用b文档当中定义的类型名称时,同时还将b文档的文档名称及默认名字空间引入进来,并与引入的类型名称建立关联。因此,xsd文档的引用信息包括引入命名空间、引入文档名称及引入类型名称,故错误的引用信息可以为错误的引入命名空间、错误的引入文档名称或错误的引入类型名称。

可以理解的,判断所述xsd文档内是否包含错误的引用信息的步骤可以按照以下两种方式进行具体实施:将所述xsd文档进行加载(如自动生成代码或根据xsd验证xml有效性),然后判断所述xsd文档在加载的过程当中是否出现无法引用或引用错误的提示;或

将所述xsd文档内的引用信息提取出来,然后查找包括该引用信息的被引入文档,然后判断所述被引入文档内的相应信息是否与该引用信息一致。

当所述步骤s01判断到所述xsd文档内包含所述错误的引用信息时,代表在所述当前选中文件目录下存在需要修复的所述xsd文档,此时则执行步骤s02至步骤s03。

步骤s02,根据与所述错误的引用信息相关的关联引用信息查找对应的被引入xsd文档。

可以理解的,由于xsd文档在进行数据引用时,将所引入的信息对应的建立了关联,故当检测到任一错误的引用信息时,均可查询出与其关联的关联引用信息。

故,所述根据与所述错误的引用信息相关的关联引用信息查找对应的被引入xsd文档的步骤可以按照以下方式进行具体实施:首先根据所述错误的引用信息提取出与之相关的关联引用信息,然后将所述关联引用信息与其它文档进行匹配,以得到包含所述关联引用信息的被引入文档。例如,当上述a文档引入b文档的数据之后,若在引用的过程当中,导致引入文档名称出错,即a文档的引入文档名称与b文档的文档名称不一致,a文档中的引入文档名称为错误的引用信息,此时根据a文档中的引入文档名称即可提取出与之相关的关联引用信息(引入命名空间及引入类型名称),然后根据该关联引用信息与其它文档进行匹配,即可得到包含该关联引用信息的被引入文档,即为b文档。

步骤s03,将所述错误的引用信息与对应的所述被引入xsd文档内的对应信息修改成一致。

可以理解的,上述a文档引入的信息与b文档被引入的信息必然存在对应关系,当a文档引入的信息出现错误时,根据这种对应关系,即可找到位于b文档内的对应的被引入的正确信息,然后对应修改即可完成引入信息的修复。

可以理解的,所述将所述错误的引用信息与对应的所述被引入xsd文档内的对应信息修改成一致的步骤可以按照以下两种方式进行具体实施:将所述错误的引用信息修改成与对应的所述被引入xsd文档内的对应信息一致,例如将a文档的引入文档名称修改成与b文档的文档名称一致;或

将所述被引入xsd文档内的对应信息修改成与对应的所述错误的引用信息,例如将b文档的文档名称修改成与a文档的引入文档名称一致。

综上,本发明上述实施例当中的文档修复方法,由于引入信息的关联性,当判断到所述xsd文档内包含错误的引用信息时,能够自动根据与所述错误的引用信息相关的关联引用信息查找到对应的被引入xsd文档,而所述被引入xsd文档将包含与所述错误的引用信息对应的正确信息,然后将所述错误的引用信息与对应的所述被引入xsd文档内的对应信息修改成一致,即可实现对所述错误的引用信息进行修改,修复完成之后,包含所述错误的引用信息的所述xsd文档即可正常加载。

请参阅图2,所示为本发明第二实施例中的文档修复方法,包括步骤s11至步骤s18。

步骤s11,遍历当前选中文件目录下的所有xsd文档,以提取出每个所述xsd文档的命名名称、默认名字空间、定义类型名称、引入文档名称及与所述引入文档名称关联的引入名字空间和引入类型名称。

需要指出的是,所述xsd文档的命名名称为所述xsd文档的文档名称。

步骤s12,将每个所述xsd文档的所述命名名称、所述定义类型名称及所述默认名字空间建立定义信息映射表。

需要指出的是,建立所述定义信息映射表的方式可以为:将每个所述xsd文档的所述命名名称、所述定义类型名称及所述默认名字空间按照预设的表格建立方式建立所述定义信息映射表;或按照预设的表格写入方式将每个所述xsd文档的所述命名名称、所述定义类型名称及所述默认名字空间写入到预先存储的表格内,而所述预先存储的表格可以进行预设。

步骤s13,将每个所述xsd文档的所述引入文档名称及对应关联的所述引入名字空间和所述引入类型名称建立引入信息映射表。

其中,所述引入文档名称和所述引入类型名称为对应的所述引入名字空间的关联引用信息。

可以理解的,建立所述定义信息映射表和所述引入信息映射表的好处在于便于后续的关联信息及对应信息的提取和查询。

步骤s14,判断是否存在错误的引入文档名称,所述错误的引入文档名称为对应的文档不存在的所述引入文档名称。

其中,所述错误的引入文档名称为错误的引用信息,所述判断是否存在错误的引入文档名称的步骤可以按照以下方式进行具体实施:首先判断每个所述引入文档名称对应的文档是否存在,若不存在,则当前的所述引入文档名称即为所述错误的引入文档名称。

当所述步骤s14判断到存在所述错误的引入文档名称时,则执行步骤s15至步骤s16,当所述步骤s14判断到不存在所述错误的引入文档名称时,则不动作。

步骤s15,将每个所述错误的引入文档名称关联的所述引入名字空间依次与所有的所述默认名字空间进行匹配,以得到与当前匹配的目标引入名字空间一致的目标默认名字空间。

其中,所述错误的引入文档名称关联的所述引入名字空间可以从对应的所述引入信息映射表中进行提取。

步骤s16,判断所述目标默认名字空间对应的目标定义类型名称是否包括所述目标引入名字空间对应的目标引入类型名称。

其中,所述目标默认名字空间对应的所述目标定义类型名称可以从对应的所述定义信息映射表中提取,且所述目标引入名字空间对应的所述目标引入类型名称可以从对应的所述引入信息映射表中提取。

此外,可以理解的,所述步骤s15及所述步骤s16是查找对应的被引入xsd文档的过程,查找的方式为:先根据错误的引入文档名称关联的目标引入名字空间去查找一致的默认名字空间,假若c文档和d文档中的默认名字空间与该目标引入名字空间一致,那么,该错误的引入文档名称对应的被引入文档即为c文档和d文档当中的一个,此时所述步骤s16将进行判断,判断c文档和d文档中的定义类型名称是否包含该错误的引入文档名称关联的目标引入类型名称,假若c文档包含该目标引入类型名称,则c文档即为对应的被引入文档。

当所述步骤s16判断到所述目标定义类型名称包括所述目标引入类型名称时,则执行步骤s17至步骤s18。

步骤s17,将包括所述目标引入类型名称的所述目标定义类型名称对应的目标xsd文档作为所述目标引入类型名称对应的所述被引入xsd文档。

步骤s18,将所述错误的引入文档名称和对应的所述被引入xsd文档的所述命名名称修改成一致。

可以理解的,在完成整个修复过程之后,还需要将对应修复的xsd文档进行保存。

综上,本发明上述实施例当中的文档修复方法,当当前选中文件目录下的所述xsd文档存在错误的引入文档名称时,通过找到对应的所述被引入xsd文档的方式,并将所述错误的引入文档名称和对应的所述被引入xsd文档的所述命名名称修改成一致,即可完成所述xsd文档的修复,确保当前选中文件目录下的所有所述xsd文档均能正确加载。

本发明另一方面还提供一种文档修复系统,请查阅图3,所示为本发明第三实施例中的文档修复系统包括:

引用信息判断模块11,用于判断当前选中文件目录下的所有xsd文档内是否包含错误的引用信息;

关联信息查找模块12,用于当判断到所述xsd文档内包含所述错误的引用信息时,根据与所述错误的引用信息相关的关联引用信息查找对应的被引入xsd文档;

信息修改模块13,将所述错误的引用信息与对应的所述被引入xsd文档内的对应信息修改成一致。

进一步地,所述错误的引用信息包括错误的引入文档名称,所述引用信息判断模块11包括:

遍历单元111,用于遍历所有的所述xsd文档,以提取出每个所述xsd文档的引入文档名称;

第一判断单元112,用于判断是否存在所述错误的引入文档名称,所述错误的引入文档名称为对应的文档不存在的所述引入文档名称。

进一步地,在所述遍历所有的所述xsd文档的过程当中还提取出每个所述xsd文档的定义信息,且还提取出与每个所述引入文档名称关联的所述关联引用信息,所述定义信息包括命名名称、默认名字空间及定义类型名称,所述关联引用信息包括引入名字空间和引入类型名称,所述关联信息查找模块12包括:

匹配单元121,用于将每个所述错误的引入文档名称关联的所述引入名字空间依次与所有的所述默认名字空间进行匹配,以得到与当前匹配的目标引入名字空间一致的目标默认名字空间;

第二判断单元122,用于判断所述目标默认名字空间对应的目标定义类型名称是否包括所述目标引入名字空间对应的目标引入类型名称;

处理单元123,用于当判断到所述目标默认名字空间对应的目标定义类型名称是包括所述目标引入名字空间对应的目标引入类型名称时,将包括所述目标引入类型名称的所述目标定义类型名称对应的目标xsd文档作为所述目标引入类型名称对应的所述被引入xsd文档。

进一步地,所述信息修改模块13包括:

信息修改单元131,用于将所述错误的引入文档名称和对应的所述被引入xsd文档的所述命名名称修改成一致。

进一步地,所述文档修复系统还包括:

第一映射表建立模块14,用于将每个所述xsd文档的所述命名名称、所述定义类型名称及所述默认名字空间建立定义信息映射表;

第二映射表建立模块15,用于将每个所述xsd文档的所述引入文档名称及对应关联的所述引入名字空间和所述引入类型名称建立引入信息映射表。

本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的文档修复方法。

本发明还提出一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述的文档修复方法。

本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1