解析器生成的制作方法_6

文档序号:9769170阅读:来源:国知局
)可W被 实施为数据结构或者符合在数据库中存储的数据模型的其它组织的数据。
[0138] 虽然使用数据流图上述方法被视为正在被实施,但是应该注意到可W使用任何适 当的编程语言来实施该方法。也就是说,方法并不限于在数据流图环境中使用。
[0139] 在一些示例中,上述编译树包括额外类型的节点,W便处理标准中的特殊情形和 异常。在一些示例中,编译树包括四种不同类型的特殊节点:根节点、矢量容器节点、空标签 节点和仅扇出(fan-out-only)节点。根节点(上面提到的)表示编译树的起始状态。矢量容 器节点(也是上面提到的)被用于处理编译树的循环。空标签节点用来表示无法识别的标 签。空标签节点可W与例如存在扩展标记的符号的ASN.1标准联合使用,其中无法识别的标 签被忽略。仅扇出节点用来表示与标签相关联的容器,但是它所有的子元素(即,成员)是可 选的。也就是说,可W进入并且然后退出容器,而不执行任何数据操作。仅扇出节点可W例 如与ASN.1标准联合使用,其中ASN.1标准包括必需的容器但是具有完全可选的内容。仅扇 出节点被插入作为容器内的节点,使得可W直接W容器的扇出为目标。
[0140] 在一些示例中,ASN.1标准中的扩展标记需要特殊处理。考虑W下两个序列: Tops巧::=SEQUENCE《 seq BottomSeq, }
[0141] BottomSeq ::二化QUENCE { Strl [0] IA巧t曲喉 str2 川 IASString OPTIONAL, }
[0142] 因为标签[1]可W是TopSeq中的被忽略标签,由于TopSeq中的扩展标记(即, 所W在BottomSeq中从Strl到str2的转换是模糊的。为了处理运种情形,在模糊求 解过程中,强制使从Strl到str2的转换模糊,使得它也WTopSeq中的扩展标记(即) 为目标。
[0143] 该软件可W被提供在诸如CD-ROM或其他计算机可读介质之类的有形永久存储介 质(例如可W被通用或专用计算机系统或装置读取的介质)上,或者通过网络的通信介质递 送(例如编码成传送信号)到执行该软件的计算机系统的有形永久介质处。一些或全部处理 可W在专用计算机上执行,或者使用诸如协处理器或现场可编程口阵列(FPGA)或专用集成 电路(ASIC)之类的专用硬件来执行。该处理可W W分布方式实施,在该分布方式中,由该软 件指定的不同的计算部分由不同的计算元件执行。每个运样的计算机程序被优选地存储在 或下载到可由通用或专用可编程计算机读取的存储设备的计算机可读存储介质(例如,固 态存储器或介质、或者磁或光介质),用于在计算机读取该存储介质或设备时配置和操作该 计算机,W执行此处所描述的处理。也可W考虑将本发明的系统实施为有形永久存储介质, 其配置有计算机程序,其中,如此配置的存储介质使得计算机W特定和预定义的方式操作 W执行此处所描述的一个或多个处理步骤。
[0144] 已经对本发明的多个实施例进行了描述。然而,应当理解,前面的描述旨在说明而 非约束本发明的范围,本发明的范围由W下权利要求书的范围来限定。因此,其它实施例也 落在W下权利要求书的范围内。例如,在不脱离本发明的范围的情况下可进行各种修改。此 夕h上述的一些步骤可W是无顺序关联的,因此可W W不同于所述的顺序来执行。
【主权项】
1. 一种生成数据解析器的方法,所述数据解析器用于解析数据对象的输入流,所述方 法包括: 接收表示限定以层级组织的多个对象的分层数据格式的信息,所述对象包括表示数据 对象的一个或多个模式对象、以及每个与一个或多个模式对象相关联的一个或多个容器对 象;以及 处理所接收到的信息以形成所述数据解析器,所述处理包括: 至少部分基于表示所述分层数据格式的所述信息,确定所述输入流中连续数据对象之 间的容许转换; 将一个或多个数据操作与每个所确定的容许转换相关联;以及 存储规范,该规范用于将处理器配置为执行所述数据解析器以:(1)识别所述输入流中 的第一数据对象与第二数据对象之间的转换,以及(2)至少部分基于与一个或多个之前所 识别的转换相关联的背景来对所述第二数据对象内的数据值执行与所识别的转换相关联 的数据操作。2. 根据权利要求1所述的方法,其中表示所述分层数据格式的所述信息包括表示所述 分层数据格式的树,该树包括由多个边缘互连的多个节点,多个节点中的每个表示由所述 分层数据格式限定的多个对象中的一个。3. 根据权利要求2所述的方法,其中与一个或多个之前所识别的转换相关联的所述背 景对应于表示所述分层数据格式的所述树中的位置。4. 根据任一项前述权利要求所述的方法,其中所述模式对象中的至少一个包括由该模 式对象表示的对应数据对象所包含的标签。5. 根据任一项前述权利要求所述的方法,其中所述容器对象包括至少一个容器对象表 示下述至少一个:在所述输入流内所包含的数据对象的序列、在所述输入流内所包含的数 据对象的集合、或者在多个可能数据对象中对所述输入流内所包含的一个数据对象的选 择。6. 根据任一项前述权利要求所述的方法,其中至少一些容器对象被规定为表示所述输 入流内数据对象的一系列多个容器。7. 根据任一项前述权利要求所述的方法,其中所述多个对象中的至少一些对象在所述 分层数据格式中被指定为可选的。8. 根据任一项前述权利要求所述的方法,其中确定所述输入流中所述分层数据格式的 所述对象之间的容许转换包括: 生成所述分层数据格式的编译树表示,所述编译树表示包括由多个边缘互连的多个节 点,所述多个节点中的至少一些表示由所述分层数据格式限定的所述多个对象中的一个并 且所述多个节点中的至少一些表示编译特定对象。9. 根据权利要求8所述的方法,其中表示编译特定对象的所述节点包括矢量容器节点、 根节点、空标签节点、以及仅扇出节点中的一个或多个。10. 根据权利要求8或9所述的方法,其中确定所述输入流中所述分层数据格式的所述 对象之间的容许转换包括处理所述编译树表示以确定所述编译树表示的所述节点之间的 所有容许转换。11. 根据权利要求10所述的方法,其中处理所述编译树表示以确定所述编译树表示的 所述节点之间的所有容许转换包括对于所述编译树表示的每个节点,确定到该节点具有转 换的所有节点以及确定该节点到其具有至少一个转换的所有节点。12. 根据权利要求10或11所述的方法,其中处理所述编译树表示以确定所述编译树表 示的所述节点之间的所有容许转换包括合并所述节点之间的重复转换以及消除所述节点 之间的不完备转换。13. 根据权利要求10、11或12所述的方法,还包括为所识别的每个容许转换生成精细边 缘,所述精细边缘包括与所述转换相关联的源节点、与所述转换相关联的目的节点、与所述 转换相关联的容器节点、以及与所述转换相关联的循环行为。14. 根据权利要求13所述的方法,其中将一个或多个数据操作与每个所识别的转换相 关联包括分析每个精细边缘以确定所述一个或多个数据操作。15. 根据任一项前述权利要求所述的方法,其中一个或多个数据操作包括推送至容器 对象的范围的操作、弹出容器对象的范围的操作、以及读取数据对象的值的操作。16. 根据任一项前述权利要求所述的方法,其中确定所述输入流中所述分层数据格式 的所述对象之间的容许转换包括生成输出包括下述至少一个:所述分层数据格式不包括任 何模糊定义的指示、所述分层数据格式确定包括一个或多个模糊定义的指示、或者包含在 所述分层数据格式中任何模糊定义的一个或多个可能求解。17. 根据任一项前述权利要求所述的方法,其中使用下述至少一个来指定表示所述分 层数据格式的数据:ASN. 1符号、XML符号、SWIFT符号、X12符号和HL7符号。18. -个数据解析器,根据任一项前述权利要求所述的方法而生成。19. 一种生成数据解析器的系统,所述数据解析器用于解析根据分层数据格式所格式 化的输入流,所述系统包括: 输入装置或端口,被配置为接收表示限定以层级组织的多个对象的分层数据格式的信 息,所述对象包括表示数据对象的一个或多个模式对象、以及每个与一个或多个模式对象 相关联的一个或多个容器对象;以及 至少一个处理器,被配置为处理所接收到的信息以形成所述数据解析器,所述处理包 括: 至少部分基于表示所述分层数据格式的所述信息,确定所述输入流中连续数据对象之 间的容许转换; 将一个或多个数据操作与每个所确定的容许转换相关联;以及 存储规范,该规范用于将处理器配置为执行所述数据解析器以:(1)识别所述输入流中 的第一数据对象与第二数据对象之间的转换,以及(2)至少部分基于与一个或多个之前所 识别的转换相关联的背景来对所述第二数据对象内的数据值执行与所识别的转换相关联 的数据操作。20. -种生成数据解析器的系统,所述数据解析器用于解析根据分层数据格式所格式 化的输入流,所述系统包括: 用于接收表示限定以层级组织的多个对象的分层数据格式的信息的装置,所述对象包 括表示数据对象的一个或多个模式对象、以及每个与一个或多个模式对象相关联的一个或 多个容器对象;以及 用于处理所接收到的信息以形成所述数据解析器的装置,所述处理包括: 至少部分基于表示所述分层数据格式的所述信息,确定所述输入流中连续数据对象之 间的容许转换; 将一个或多个数据操作与每个所确定的容许转换相关联;以及 存储规范,该规范用于将处理器配置为执行所述数据解析器以:(1)识别所述输入流中 的第一数据对象与第二数据对象之间的转换,以及(2)至少部分基于与一个或多个之前所 识别的转换相关联的背景来对所述第二数据对象内的数据值执行与所识别的转换相关联 的数据操作。21. -种存储在计算机可读介质上的软件,用于生成数据解析器,所述数据解析器用于 解析数据对象的输入流,所述软件包括指令用于使得计算系统执行: 接收表示限定以层级组织的多个对象的分层数据格式的信息,所述对象包括表示数据 对象的一个或多个模式对象、以及每个与一个或多个模式对象相关联的一个或多个容器对 象;以及 处理所接收到的信息以形成所述数据解析器,所述处理包括: 至少部分基于表示所述分层数据格式的所述信息,确定所述输入流中连续数据对象之 间的容许转换; 将一个或多个数据操作与每个所确定的容许转换相关联;以及 存储规范,该规范用于将处理器配置为执行所述数据解析器以:(1)识别所述输入流中 的第一数据对象与第二数据对象之间的转换,以及(2)至少部分基于与一个或多个之前所 识别的转换相关联的背景来对所述第二数据对象内的数据值执行与所识别的转换相关联 的数据操作。
【专利摘要】生成用于解析数据对象的输入流(504)的数据解析器(418)包括:接收表示限定以层级组织的多个对象的分层数据格式(105,205)的信息(502),所述对象包括表示数据对象的一个或多个模式对象、以及每个与一个或多个模式对象相关联的一个或多个容器对象;以及处理所接收到的信息以形成所述数据解析器。所述处理包括:确定所述输入流中连续数据对象之间的容许转换;将一个或多个数据操作与每个所确定的容许转换相关联;以及存储用于配置处理器以执行所述数据解析器的规范。
【IPC分类】G06F17/27, G06F9/44, G06F17/22
【公开号】CN105531672
【申请号】CN201480050603
【发明人】M·E·塞内斯基, A·舒尔曼
【申请人】起元科技有限公司
【公开日】2016年4月27日
【申请日】2014年6月30日
【公告号】CA2917824A1, EP3019954A1, US20150019576, WO2015006075A1
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1