自动检查Addin程序中XML格式命令表语法

2019-08-08  本文已影响0人  板栗_1c34

转自(中国优先社区)

我们大家可能都知道,开发MicroStation平台上的应用程序主要有MDL(C++)、Addin(C#或其他.NET语言)和MVBA三种方法。MDL的命令表通过特定的.r文件定义,在项目编译阶段由Bentley专门提供的rcomp.exe程序来检查其语法。而Addin程序的命令表是XML格式的文件,该文件会被嵌入到最终的DLL中,但其语法却没有被任何程序检查,只有在我们装载这个DLL时才会检查其正确性。如果有错误则直接抛出异常,导致程序无法运行。
【注】:MVBA比较适合写一些小工具,不太适合开发商业应用程序,不支持命令表的定义,在此不进行展开讨论。

那么,我们在编辑Addin程序的XML格式命令表文件时是否有手段检查其语法的正确性呢?答案是肯定的。

在MSV8i时代,SDK中提供有一个UstnXOM.exe的可执行程序,该程序能够对最终生成的DLL程序集执行完整性检验,包括了对XML命令表格式的检验。可惜的是,到了MSCE时代,这个UstnXOM.exe反而没有了。
  对于MSCE下的XML命令表文件,本文介绍一种新的检查其语法的方法。

我们知道,XML系统中XML格式的文件用于保存数据,而XSD格式的文件用于保存某种特定的XML数据的语法定义。XSD就是XML Schemas Definition的缩写。因此,我们如果能找到MS中Addin所用的命令表文件的XSD定义文件就好办了。如下KeyinTree.XSD文件是我在MSV8i下用UstnXOM.exe程序提取得到的。具体的提取过程不在此赘述。
https://communities.bentley.com/cfs-file/__key/communityserver-blogs-components-weblogfiles/00-00-05-22-97/KeyinTree.xsd
 按照如下步骤,我们可以在Visual Studio中直接进行XML命令表的语法检查。
 1. 下载以上所列的KeyinTree.xsd文件到任意本地磁盘文件夹;
 2. 启动VS并打开我们的Commands.xml文件;
 3. 选VS菜单XML > Schemas...打开添加Schema的对话框;(抱歉,我使用的VS为英文版,大家可对照位置在中文版VS中找到相应菜单)
 4. 在XML Schemas对话框中点击右上角的Add按钮添加在步骤1中保存的KeyinTree.xsd。添加后的效果如下图所示:

图片.png

5. 此时仔细看您的XML命令表文件,如果有语法错误,将会有蓝色波浪线存在。比如,我将其中的一个Keyword关键字改写成小写的keyword,则会出现如下图所示的蓝色波浪线:

图片.png
上一篇 下一篇

猜你喜欢

热点阅读