本系列由上下两篇组成,第 1 篇从用户易用性角度上分析目前很多的开发框架、软件产品易用性方面存在的问题, 然后从易用性角度提出”基于 XSD 模式和 Schematron 规则的 XML 校验插件”,第 2 篇介绍该插件的使用方法,设计架构,使用的各种技术标准以及用户如何对其进行扩展。
目前,很多的开发框架、软件产品为了提供高度参数化和最大可重用性的特点和优点,采用了 XML 文件定义配置其系统环境, 有时系统应用交易相关的数据模型,业务工作流程,格式转换配置,调用方式等也都采用 XML 的方式定义。这种编程开发模式给客户带来了极大的可重用性和灵活性,最大程度满足了客户的各种需求。
但是这种高度的灵活性,也同时带来了一定的易用性问题,即带来了大量的 XML 配置文件和 XML 配置的规则。用户需要对该产品比较熟悉,才能够自如的掌握该产品的各种使用配置方法,发挥出架构灵活性的优点。如此大量的配置对产品开发工具、运行平台的 易用性提出了新的要求:即要使用某一软件产品、开发框架需要做大量配置工作。同时由于 XML 的灵活性导致其中隐含大量陷阱,导致配置往往不能达到用户预期。
对于 XML 陷阱来讲,主要体现在下面两个方面:
- 配置文件的管理问题
即当用户需要配置多个配置文件的时候,如何处理这多个配置文件,怎样对他们进行有效的管理,如何指导用户在多个配置文件中正确的进行配置,是件非常复杂的工作。总而言之,配置也好,调整也罢,系统需要告诉客户都要做那几步配置,在哪里配置,怎么配置。
目前,大部分软件产品, 开发框架也都有告知配置的步骤, 如何配置, 具体配置位置, 一般出错的情况等,但大多采用文档的方式,但对于软件框架此类的产品而言, 采用文档的设计方法,是一种低效的用户可用性设计, 原因有二:
- 软件产品, 开发框架本身就已很复杂, 其知识点很多,配套文档一般都会非常多, 关于各个配置文件的描述更是散落于各处,如果用户需要任何操作都对照文档, 学习文档才能进行开发, 就会增加用户的负担,降低开发的效率。
- 通过文档来配置的方法可视性很差,用户的配置操作应该显而易见, 从系统中体现。 通过文档的方式, 只能是系统无法实现的基础上的一种补充, 而不能作为主要手段。 而且人的记忆力有限,今天查阅文档知道配置方法, 不能保证有长期记忆, 如果每次都查阅文档才能正确使用该软件产品, 开发框架, 就会给用户带来很大的不便。
- 配置文件的校验问题
即用户知道如何配置配置文件后,由于各种原因,不可避免会出现配置错误,这里面最常见的就是拼写错误,而拼写错误又是最难以肉眼检查和给运行时环境 带来最多困扰的问题来源。配置文件的校验,要对用户的配置动作,做出及时有效的验证,并及时提供校验结果以及相关信息反馈给用户。反馈信息必须以可视的信 息提示用户,并最好附带建议的修正办法,对于容易出现逻辑问题的动作,更是要给予加倍的提示。否则,配置完一系列的文件后,仍然不能正常使用软件产品或者 开发框架,而让用户去手工去找错,看trace信息,去发现这些语法等错误,容易给用户造成很大的挫折感。即便用户不把这个问题归于产品功能缺陷,也会给 用户造成该产品难用,需要高级别的技术人员才能使用好等不良信息。同时也会让用户浪费很多不必要的时间和精力。
![]() ![]() |
![]()
|
基于 XSD 模式和 Schematron 规则的 XML 校验插件的提出
针对目前软件产品、开发框架易用性不完善之处, 本文运用了以下两条易用性设计原则, 提出了”基于 XSD 模式和 Schematron 规则的 XML 校验插件”。
- 可视性原则
即用户是可以通过系统的各种可视化提示来使用产品, 而不需要对照说明书, 按部就班使用产品进行开发。 应用此原则设计的” 基于 XSD 模式和 Schematron 规则的 XML 校验插件”, 对用户错误操作提供了丰富有效的界面显示效果和信息, 它支持对用户修改操作的充分提示。 提供了错误行定位标志,支持正确输入位置,支持根据错误列表定位相应配置文件以及相应错误位置,支持自动光标移动等等。这样用户就可以很方便的进行开发, 对各种 XML 配置文件进行有效的编辑和配置。
- 反馈原则
反馈是控制科学和信息理论中的一个常用的概念, 其含义为: 向用户提供信息, 使用户知道其某一操作是否已经完成以及操作产生的结果。
举一个例子,我们在打电话时, 按键都会产生提示音, 并且在液晶显示屏上会提示用户输入的数字, 这就是一个典型的应用反馈原则设计的产品。 如果用户的每一个电话按键的输入, 完全没有反馈, 只有到电话拨通后, 或者较长时间后才能知道结果, 那可想如此的电话系统必不受用户欢迎。 应用此原则设计的” 基于 XSD 模式和 Schematron 规则的 XML 校验插件”, 对用户的每一步配置操作进行实时验证, 并让用户实时看到验证的错误列表, 错误信息, 错误位置, 并把这些信息以友好的方式显示给客户。
基于校验插件, 用户就可以不需要对照说明书去纠正使用开发框架过程中碰到的一系列错误, 不用去检查某一个元素是否是必需的, 是否缺少了某一个属性, 各个数据之间的引用是否正确, 是否存在笔误等等。
该插件支持很强的灵活性,用户只需要很少的配置就可以把该插件用于很多产品的 XML 配置文件校验。下面是一张该验证插件的效果图:
图 1. 验证效果图

该界面中包含了以下几个部分:
- 项目导航视图 (Project Navigator)
这个就是传统的 eclipse java 的项目导航视图, 如果被被验证的 XML 配置文件存在错误, 那么在项目导航视图中, 会标志出该出错的配置文件, 比如这个图标, 表示该配置文件存在配置错误。 这样非常方便开发人员定位出错的配置文件, 便于及时发现改正该文件的配置错误。
- XML 编辑器 (XML Editor)
这是 Eclipse XML 文件编辑器, 所有的 XML 配置文件都可以利用该配置文件进行配置。当对 XML 配置文件进行校验时,如果该配置文件存在配置错误,则出错的地方将会被标志出来,如上图所示:错误发生的行,错误发生的字符串都会被很清晰的标志出来。这 样方便开发人员定位配置文件出错的具体位置,便于及时修正该错误。
- 错误属性视图 (Problems Property View)
错误属性视图位于上图的右下角部分。 该视图包括所有配置文件的验证错误和警告。 并且提供了充足的信息, 方便用户诊断和修改这些错误和警告。 错误属性视图中的每一行代表一个错误或警告, 每一行中包含错误文件名,错误信息,错误文件路径,错误行等信息。 当用户双击该行, 相应的发生该错误的配置文件就会打开, 并且光标会自动定位到相应的错误发生的行, 错误的字符串会被选中并高亮显示。 所有的这些特性都方便用户能够更好的定位、修改XML配置文件发生的错误。
![]() ![]() |
![]()
|
“基于 XSD 模式和 Schematron 规则的 XML 校验插件”支持四种类型的验证功能:XML格式验证、XSD 模式验证、Schematron 规则验证、类路径 (Classpath) 验证,下面分别对这几种验证进行详细介绍,并描述其应用场景。
XML 格式验证是一种语法验证规则.对于基于 XML 格式的配置文件,第一步要做的验证就是验证该 XML 文件是否符合 XML 格式定义,即是否是一个合法的 XML 文件。如果一些不是合法的 XML 格式文件,那么”基于 XSD 模式和 Schematron 规则的 XML 校验插件” 将验证出该错误,并且定位、报告详细的错误发生的位置,详细的错误的信息。
应用场景:
如果一个配置文件不是一个合法的 XML 文件格式, 如下图所示:
图 2. 不合法的 XML 文件
本文转自IBM Developerworks中国