基于XML的二次开发技术在工程设计中的应用
2019-03-14张旭刘明明赵霏霏邓志光简一帆杨斐田旭峰陈起
张旭,刘明明,赵霏霏,邓志光,简一帆,杨斐,田旭峰,陈起
(核反应堆系统设计技术重点实验室,成都 610213)
1 XML技术及工程应用
XML即可扩展标记语言,与超文本标记语言(HT⁃ML)类似,XML也是一种标签式语言[1]。XML主要解决的问题有两个:其一是在文档格式中引入标准的编码认定机制,规范了多语言情况下的编码转换问题。其二是其语言规则简单,适合机器处理,所以可以有较多的XML分析器存在。XML具有较为严谨的语法规则和相对于软硬件的独立性,这使得XML更加适合数据的存储和传递。很多办公软件或工程软件都可以使用XML进行配置,或将文档、图纸保存为XML形式输出[2]。
XML的设计基于自我描述的原则,标签本身没有预定义,这为用户设计一套适用于自身情况和工序流程的数据传递方案提供了便利,使用XM工技术实现数据信息在工程设计的各个阶段的有效传递,既可以保证数据的安全准确性,又可以在工程的各个阶段应用二次开发技术建立针对性更强的辅助工具,提高工程的效率。
2 XMIL技术在工程设计的各个阶段应用
2.1 工程设计软件配置阶段
诸多的工程设计软件,如Eplan,都是以XML格式存储配置信息的。对于参与人员众多的大型工程,工程软件的系统配置容易出现子项目之间、子系统或不同层级人员之间混乱的情况。针对这一情况,可以使用XML文档导入配置信息,避免了上述混乱情况的产生,也可以在一定程度上实现项目用户之间的标准化要求,降低了因为这种不必要的问题产生的时间和人员精力成本的损失。
在工程软件Eplan中,配置文件分为“公司”、“工作站”、“用户”三个层面,分别在从大到小的三个层级对软件的使用配置进行从整体到细节的说明,例如同一工作站的不同用户之间的“工作站”配置文档是相同的,而“用户”配置文档是不同的。这有利于配置管理员对于整个项目乃至公司的配置文件的管理与发放工作顺利进行。
图1是一种基于“公司-项目-用户”结构的配置文档管理模型。公司文档配置管理员承担XML配置文件的制作、判定其是否属于公司级配置文件的工作;项目配置管理员承担其所在项目的配置文件筛选、错误分配纠正的工作;用户自身作为用户级配置文件管理员,承担筛选符合自身需要的配置文件以及错误纠正工作。多级串联的模型保证了每一份配置文件都能被有效识别,不会被忽略。
图1 基于XML的公司-项目-用户配置文档管理模型
图2 Eplan配置对话框
图2是Eplan软件的配置对话框,在这里可以通过导入XML文档的方式对属性进行配置。在XML文档中,部分标签及属性的结构关系如图3所示。对比两图可以找的配置文件与勾选及下拉条结合的配置方式的对应关系。例如,在“导线制备”选项中的“CadCa⁃bel”选项卡分别对应XML文档的
其他配置文档道理类似,通过XML格式严谨的结构式语言,将所要配置的信息分门别类导入工程软件中,按照需要规范项目或团队之间配置数据一致,从源头实现设计的标准化要求。
2.2 工程图纸绘制阶段
图3 XML文档中公司项配置文档结构
一些常见的工程绘图软件如MS Visio等,其图纸也可以通过XML格式进行储存,这样也有利于后期进行图中的元件属性的查询、统计等操作[3],MS Visio的层级关系是,以VisioDocumet为根标记,以下是Sheet(表)、Section(节)、Row(行)、Cell(单元格)等组成的层级关系树状结构。一级子节点中最重要的包括“StyleSheets”、“Pages”、“Masters”等,分别用来定义文档的主体样式、页面属性、主控形状等属性。对于绘图中最重要的组成,即元件,由Shape节点进行描述。这些节点在另一种常见的MS Visio的二次开发途径“Shapesheet”中,都能找的对应的属性。例如,XML文档中的标签“Line”、“Fill”分别对应 ShapeSheet中的“Line Format Section”、“Fill Format Section”分别表示线性和填充的属性;ShapeSheet中的“Shape Transform Section”、“Text Transform Section”,分别对应 XML 文档中的“XForm”、“TextXForm”。另外,MS Visio 还具有单元格级节点中的属性基本上都以公式形式来定义的特点,这使得开发者可以比较清楚地看到单元格之间的关系,在定义新变量时可以依据它与当前的各个量的关系,定义其公式。
2.3 工程文件质量检查阶段
(1)文件表观质量
Word作为Microsoft Office的成员之一,在底层层面上,可以看作是基于XML的数据信息存储方式、MS Word自定义标签的解析方式与VBA的开发平台等部分的结合。在工程设计过程中,MS Word一般用于规范、文件手册、技术方案说明等以文字为主的文件的编写过程。此类文件作为工程项目的基础性文件,其格式的规范性一般称为文件的表观质量。较高的表观质量也关系到工程项目的严肃性和严谨性。建立一套基于XML的文档质量检查系统,对于提升文件的表观质量具有很大的帮助。
(2)MS Word的XML形式
MS Word的XML文档存储方式由一系列标签构成树状结构构成体系,图4中体现了其中的部分标签处于整个体系中的位置。
图4 XML文档的树状结构(部分)
(3)文件表观质量检查系统的构建
应用VBA、C#、Python等语言可以对XML文档进行解析,通过其中对于文件格式样式描述的标签,对文件的表观质量进行检查。通过正则语句的方式,可以对文件内容进行更加智能的检查。例如数字“0”和英文字母“O”的区分等较为常见而人工检查又不易发现的问题。
解析MS Word的XML文件的关键在于父子节点关系的梳理[4]。以C#语言为例,需添加引用using Sys⁃tem Xml;
创建类型声明节点:
XmlDocument xml= new XmlDocumen();
XML文档的载人方法如下:
xmlLoad("…xml);
定义XmlElement类:
XmlElement xmlElement= xml.DccumentElement;
获取顶层节点的列表:
XmlNodelist nodeList=xmlElement.ChildNodes遍历所有子节点的方法:foreach(XmlNode item in nodeList){…}
遍历某个元素的属性:
for(int i=0;i {…} 通过对XML文档的解析,可以获得MS Word的格式样式信息。与标准格式配置库进行比较,可以找到文档中表观质量不合格之处,并予以记录[5]。其具体过程如图2所示。Word文档编写后,通过自动化工具,由Word文档生成XML文档,并进行容错性检查[6]。如果通过容错性检查,再由自动化工具进行XML树状结构的解析。检查分为两个部分,即页面基本信息检查和正则匹配检查。其中,页面基本信息检查内容包括最基本的页面设置、字体设置、行间距设置,等等,正则匹配检查内容较为复杂,而且可以随时在库中添加,包括: (1)该公司或该项目常见的英文缩写检查; (2)数学单位用去错误,例如“4-20mA电流信号”应写作“4mA-20mA电流信号”、以km为单位时,数值达到十万以上,等等; (3)通过上下文语境,进行英文字母“o”、“l”与数字“0”、“1”的误用情况检查,等等; 两种检查方式还可以通过人工的方式进行复查,复查的方式可以是排查,也可以是抽查。对于发现的“误动作”和“拒动作”,如果属于基本页面信息检查,则应该详细排查错误产生的原因;如果属于正则表达式判断方式,则应该修正正则表达式的集合。两种错误都应该记入错误记录,并提醒编写人员注意修改。同时,出现频率最高的几种错误,应记入常见错误记录,形成手册,并注意对文档编写人员宣贯。进行页面信息检查的依据来自标准Word样式库的XML格式库,其依据是文档质保人员编写的标准Word样式库,以确保评判正确与否的标准的唯一性[7]。 大数据挖掘技术与人工智能技术在工程中的应用是现今的研究热点和未来的发展趋势。Python语言是数据挖掘、人工智能算法中最常用的语言之一。大数据积累和挖掘的基础包括数据采集和可供分析的高质量的数据存储方式两方面。通过工业过程的数字化程度的提高以及传感器技术的发展,对于数据的采集问题将逐步得到解决。如前文所述,大量的各阶段的工程数据以XML格式储存,这种标准格式化的存储方式为数据挖掘带来了便利,XML文件中的数据,在用Py⁃thon语言解析之后可以用于设计过程的优化、数据规律的挖掘等。Python具有多种解析XML的方法,包括SAX(Simple API for XML)、DOM(Document Objet Mod⁃el)、ElementTree等方法。这几种方法适用的情况需要使用者在具体的项目中具体实践,以寻求最佳的方案。 (1)SAX方法 SAX是一种用于处理XML事件驱动的模型,Py⁃thon的标准库中就有SAX的解析器。当文件较大时,由于SAX采用扫描与解析同时进行的方式,可以减少对系统内存的要求,SAX方法将具有更大的优势。 (2)DOM 方法 DOM(文件对象模型)是一种标准的处理可扩展编程语言的接口。Python语言中的xml.dom.minidom可以便捷地解析XML文件。利用DOM建立的树状结构,Python可以通过对树状结构中的节点与节点间的关系,进行信息的查询。 (3)ElementTree方法 ElementTree方法与DOM方法类似,使用Element⁃Tree类代表XML文档,使用Element类表示XML结构中的一个节点。该方法是Python处理XML的方法中相对简单的方法。 建立一套基于XML的数据信息传递和处理体系,有助于建立从工程设计项目的起始阶段到设计过程终了,乃至未来数据挖掘阶段的数字化管理过程。在最初的项目文件配置与配置文档分发阶段,利用XML技术,能够提高文档配置的准确性并提高效率。在文件表观质量检查阶段,利用XML技术能够读取文档格式属性,并与可实时更新的标准样式库进行比较,发现文档的格式错误。在积累了大量数据之后的数据挖掘阶段,利用XML技术,结合Python语言编写的读取分析数据的程序与智能算法程序,可以对整个项目的结构、薄弱之处进行优化,给出改进的建议,以此进一步实现项目的数字化管理,当然XML的使用也有一定的缺点,XML的解析使信息密度低,同样的信息量需要的文本长度更长,可读性降低,因此在使用过程中也要综合考虑以后按需使用。2.4 工程大数据积累与数据挖掘
3 结语