Altova XMLSpy 2023 Enterprise Edition

XMLSpy提供了两个重要的功能来检查XML文档:

 

格式检查

验证检查

 

ic_well_formed

检查格式

ic_validate

验证XML

 

由于默认情况下编辑时验证功能处于开启状态,因此在编辑期间出现的任何验证错误都将被立即标记,相应的错误消息将显示在“消息”窗口中。如果您不想进行后台验证,可以在“选项”对话框的“验证”设置中关闭编辑时验证功能。请注意,您可以随时通过调用“XML”菜单中的相关命令来执行格式检查和验证检查。本教程的这一部分将向您展示如何执行这些检查。

 

检查格式

在XML文档中,如果开始标记与结束标记匹配,元素被正确嵌套,并且没有错位或缺失的字符(例如,不带分号分隔符的实体),则该文档就是格式正确的。您可以在任何编辑视图中执行格式检查。让我们按以下方式检查您的文档:

 

1.选择文本视图。

2.选择菜单选项XML | 检查格式或按F7键(或者单击工具栏中该命令的图标)。在主窗口底部的“消息”窗口中,您会收到一条消息,显示该文档的格式正确。

WellFormed

 

请注意,“消息”窗口有九个输出选项卡,操作的结果始终显示在活动选项卡中。因此,您可以在选项卡1中检查格式,然后切换到选项卡2进行验证检查。如果不切换选项卡,新结果将覆盖活动选项卡中之前的结果。

 

备注:格式检查不会检查XML文档是否符合Schema。验证检查时会检查这一点。

 

检查有效性

如果XML文档符合其Schema中指定的文档结构和内容,则它根据Schema是有效的。您可以在任何编辑视图中执行有效性检查。让我们按以下方式验证您的文档:

 

1.选择网格视图

2.选择菜单选项XML | 验证或按F8键(或者单击工具栏中该命令的图标)。“消息”窗口中会出现一条错误消息,显示该文件无效。Address中的City元素之后需要添加必需元素。如果您检查您的Schema,您将看到US-Address复杂类型(您已通过其xsi:type特性将此Address元素设置为该类型)具有一个内容模型,其中City元素必须后跟一个Zip元素和一个State元素。

 

修复无效文档

使文档无效的点会被突出显示为红色,并带有错误标记和智能修复图标。在本例中,无效元素是Address元素。当您单击智能修复图标时,您将看到以下弹出消息:添加缺失的元素<Zip>和示例内容。如果您检查Schema,您会发现Address/City元素后面必须跟有必需的Zip元素。要验证这一点,请选择City元素并查看“同级”输入助手。您会注意到Zip元素前面有一个感叹号,表示该元素在当前上下文中是必需的。

tut_44a

现在单击智能修复(参见上方截图)。这将添加Zip元素,其中包含使元素有效的示例内容。输入正确的Zip编码(例如,Dallas的邮政编码为04812)。再次查看“同级”输入助手。您现在可以看到State元素是必需的(它前面有一个感叹号)。当您选择State元素时,将启用对其可用的输入助手选项(参见下方截图)。这些操作可以在主窗口中当前选定的元素(即City)之后插入State元素,或在City的所有同级元素之后追加State

tut_44b

由于在本例中这两种操作的效果相同,因此请选择任意一种操作。这将在City之后添加State元素。双击State的内容字段并输入州名Texas参见下方截图)。请注意,“同级”输入助手现在仅包含灰色的元素,这表示没有其他必须添加的元素。

tut_45a

 

完成文档并重新验证

现在让我们在重新验证之前完成该文档(通过输入第一个Person元素的剩余数据)。

 

为此,请执行以下操作:

 

1.单击First元素的值字段,然后输入名字(例如,Fred)。然后按Enter键。

tut_45b

2.用相同的方式为Person的所有子元素输入数据,即LastPhoneExt以及Email。您可以使用Tab键在单元格中移动。请注意,PhoneExt的值必须是一个不超过99的整数(因为这是您在Schema中定义的PhoneExt值的有效范围)。然后,您的XML文档在网格视图中应如下所示:

tut_46a

3.再次单击ic_validate,检查该文档是否有效。“消息”窗口中会出现一条消息,显示该文档有效。XML文档现在根据其Schema是有效的。

file_is_valid

4.使用文件 | 保存保存文件。

 

备注:即使XML文档无效,也可以保存它。保存无效文档时会出现一个提示,警告您即将保存一个无效文档。如果您希望保存当前处于无效状态的文档,您可以选择仍要保存

 

© 2017-2023 Altova GmbH