一种大型scl文件的快速处理方法

文档序号:6336051阅读:492来源:国知局
专利名称:一种大型scl文件的快速处理方法
技术领域
本发明涉及与智能电子设备有关的变电站内通信配置描述语言,具体地说是一种 处理大型SCL文件的方法。
背景技术
SCL文件是采用变电站内通信配置描述语言(SCL)来编写的文件,而SCL是以I做 为元语言的。因此,对SCL文件的处理在底层的基本操作上与处理Xl有着非常密切的联系。目前在Microsoft. Net平台下访问并操作XML文件主要有两种模型流模型和 D0M(文档对象模型)。流模型通过XMLTextReader类来实现。该类提供Xml文件读取的功 能并可以验证文档是否格式良好。但其不足之处在于只能以只读、向前的方式访问文件,不 能在文件中执行向后导航操作。DOM通过XMLDocument实现。它允许编辑和更新XML文档, 可以随机访问文档中的数据。但缺陷在于需要一次性加载整个文档到内存中,对于大型的 文档,存在资源消耗高和效率低下等问题。SCL文件共有4种类型,其中从系统配置工具到智能电子设备配置工具的数据交 换文件(SCD文件)包含了全部智能电子设备、通信配置和变电站描述等段落内容,其文件 体积常达到几十兆且文件中包含数量极多的的XML节点。在对这类文件进行处理时,DOM的 性能问题使得利用它来实现的SCL配置工具完全不适用于处理S⑶文件。

发明内容
本发明所要解决的技术问题是克服上述现有技术存在的缺陷,提供了一种新的 SCL文件处理方法,其以高效、可导航、可操作的方式来处理SCL文件。为此,本发明采用的技术方案为首先将SCL文件全部读入计算机内存,在读入文 件的同时,对文件中所包含的节点信息进行分析,由于该分析并不把节点元素当作对象处 理,分析的主要工作是找出文件中的节点元素存储其在文件中的相对位置以及节点中数据 的信息,其目的是保证文件在读入后可导航。因此整个过程计算机资源消耗少,软件可以对 预处理分析后的SCL文件进行方便地导航浏览和查询。在对变电站进行配置的过程中,设备的添加、更新、删除等操作涉及改变SCL文件 的内容时,通过SCL缓存控制来实现。缓存控制在内存或磁盘上暂存所有对SCL文件的编 辑操作,这些操作在用户保存SCL文件时被写入到原始的SCL文件中。本发明通过对SCL文件进行预处理和缓存控制,使得文件处理既具有流模型处理 文件快速、资源开销小的优点,又拥有DOM方式可导航可编辑的优势,提升了对大型SCL文 件的处理效率,为IEC61850标准在电力系统中的推广起了重要作用。下面结合说明书附图和具体实施方式
对本发明作进一步说明。


图1为本发明的架构图。
图2-4为本发明缓存控制的原理图。图5为本发明SCL文件的封装原理图及其与缓存之间的关系图。
具体实施例方式在对变电站进行配置的过程中,设备的添加、更新、删除等操作涉及改变SCL文件 的内容时,本发明通过SCL缓存控制来实现(如图1所示),具体的SCL缓存控制步骤如下1.如图2所示,将原始的XML格式的SCL文件载入内存,根据XML节点的信息生成 SCL文件的索引,并将索引保存在内存中,定义新的SCL文件对象,将包含索引信息的XML文 件封装到新的SCL文件中。2.当用户对SCL文件进行操作时,判断操作类型,针对读取和修改采用不同的操 作方式。对于读取操作,首先判断是否存在缓存文件。如果存在,则将缓存和内存中的SCL 文件合并读取。如果不存在缓存文件,则只需读取内存中的XML文件,如图3所示。对于修改操作,如果是第一次操作,则需要首先生成缓存文件。如不是第一次修 改,则缓存文件已经存在。此时应在缓存中查询是否存在待修改的节点,若存在,则直接修 改缓存中的节点内容;若不存在,则在缓存文件中添加新的节点内容,其中保存修改后的节 点内容,如图4所示。
权利要求
一种大型SCL文件的快速处理方法,其特征在于首先将SCL文件全部读入计算机内存,在读入文件的同时,对文件中所包含的节点信息进行分析,找出文件中的节点元素存储其在文件中的相对位置以及节点中数据的信息;在对变电站进行配置的过程中,当设备的添加、更新、删除操作涉及改变SCL文件的内容时,通过SCL缓存控制来实现,缓存控制在内存或磁盘上暂存所有对SCL文件的编辑操作,这些操作在用户保存SCL文件时被写入到原始的SCL文件中。
2.根据权利要求1所述的大型SCL文件的快速处理方法,其特征在于所述的SCL缓存 控制包括载入SCL文件、读取SCL文件和修改SCL文件,载入SCL文件的具体流程如下将 原始XML格式的文件载入内存,生成SCL文件的索引,将XML文件封装到SCL文件中;读取 SCL文件的具体流程如下读取SCL文件,首先判断是否存在缓存文件,如果存在,则将缓存 和内存中的SCL文件合并读取,如果不存在缓存文件,则只需读取内存中的SCL文件内容; 修改SCL文件的具体流程如下如果是第一次修改,则需要首先生成缓存文件,如不是第一 次修改,则缓存文件已经存在,此时在缓存中查询是否存在待修改的节点,若存在,则直接 修改缓存中的节点内容;若不存在,则在缓存文件中添加新的节点内容,保存修改后的节点 内容。
全文摘要
本发明公开了一种处理大型SCL文件的方法。文档对象模型DOM的性能问题使得利用它来实现的SCL配置工具完全不适用于处理SCD文件。本发明的特征在于首先将SCL文件全部读入计算机内存,在读入文件的同时,对文件中所包含的节点信息进行分析,找出文件中的节点元素存储其在文件中的相对位置以及节点中数据的信息;在对变电站进行配置的过程中,当设备的添加、更新、删除操作涉及改变SCL文件的内容时,通过SCL缓存控制来实现,缓存控制在内存或磁盘上暂存所有对SCL文件的编辑操作,这些操作在用户保存SCL文件时被写入到原始的SCL文件中。本发明使处理过程计算机资源消耗少,也提升了对大型SCL文件的处理效率。
文档编号G06F17/30GK101996251SQ20101054730
公开日2011年3月30日 申请日期2010年11月17日 优先权日2010年11月17日
发明者吴俊 , 楼伯良, 王松, 董毅, 阮黎翔, 陆承宇, 黄晓明 申请人:浙江省电力试验研究院;浙江省电力试验研究院技术服务中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1