XML Schema 1.1 的新特性有哪些?

自 XML Schema 1.0 问世以来,该标准已被广泛采用。多年来,开发人员提出了许多改进建议,其中最重要的是能够指定和验证更细致的业务规则,以及允许灵活的模式演进。该标准在以下方面进行了诸多改进和增强: XML Schema 1.1 规范建议 旨在解决这些问题。

让我们来看看 XML Schema 1.1 中一些最值得关注的新功能,以及一些学习资源,帮助您更深入地了解它,或者立即开始使用。

了解 XML Schema 1.1 的新特性

我们在免费的资料中,对 XML Schema 1.1 中新增和改进的功能进行了全面的解释 在线 XML 模式培训课程, 您可以随时访问并按照自己的节奏完成课程。如果您是一位经验丰富的模式开发人员,并且只是想了解XSD 1.1版本的新增和改进内容,可以直接跳到第9章。本课程是学习XML Schema 1.1的绝佳方式,可以帮助您快速了解新功能,并相应地调整您的模式。

本文将介绍一些主要功能,并向您展示如何使用 XMLSpy 来实现这些新功能。XMLSpy 2014 及更高版本提供了对 XML Schema 1.1 的完整支持,包括基于 XML Schema 1.1 的 XSD 和 XML 实例文件的验证,以及图形界面中的智能 XSD 1.1 编辑工具 XML Schema 1.1 编辑器.

断言

XML Schema 1.1 中的断言(也称为约束条件)允许基于规则地验证涉及多个元素的业务策略。这些规则使用 XPath 表达式进行定义。例如,您可以使用新的 元素来测试费用是否小于或等于允许的金额,日期是否在特定时间范围内,等等。在这个例子中,断言指定会议的结束时间必须大于开始时间。您可以在 XML Schema 的设计视图中看到以下表示:

而在相应的代码中:

使用“全局”视图可以轻松查看 XML Schema 1.1 文档中定义的各种断言。该视图提供了一个“断言”选项卡,您可以在这里添加新的断言,并选择 XPath 的默认命名空间。

或者,您可以在内容模型视图中定义这些约束。方法是,在内容模型视图中右键单击一个元素,然后选择“添加子约束”。您可以通过“详细信息”辅助窗口,直接在内容模型中定义 XPath 测试。

这种定义和验证业务规则的能力是 XML Schema 1.1 的一个重要优势,而这种图形化视图可以帮助您更好地理解和完成这个过程。

条件句的替代表达方式

条件类型替代方案是另一个旨在增强XSD功能的特性,它通过增加内置的灵活性来实现。这些方案允许根据XML实例文档中的属性值,动态地将特定类型分配给一个元素。xs:alternative元素有两个属性:typetest。以下是一个使用我们之前使用的“会议”模式的示例。

如果会议结束时间在中午之前,则会议类型为“上午会议”(MorningMeeting)。如果会议结束时间在中午之后,则为“下午会议”(AfternoonMeeting)。为了在...中定义这一点, XML 模式设计器, 我们只需右键单击“会议”元素,然后选择“添加子元素/备选元素”。使用“详细信息”输入辅助工具,输入一个 XPath 表达式,然后从下拉菜单中选择一个类型,该类型将动态地分配给该元素。

现在,在 XML 实例中,任何“会议”(Meeting)元素,如果其结束时间在 12:00:00 之后,将使用“下午会议”(AfternoonMeeting)类型。使用图形化的 XSD 编辑器 可以轻松地可视化和配置这些关系。

整个模式的属性

XML Schema 1.1 允许您定义一组默认属性,这些属性会自动应用于 schema 中所有复杂类型。例如,在我们的“会议”schema 中,将属性 startTime 和 endTime 应用于所有元素,而无需手动添加,这非常有用。手动添加既繁琐,而且容易出错,尤其是在包含大量元素的 schema 中。XML Schema 1.1 中的 xs:schema 元素包含一个可选的 defaultAttributes 元素,用于标识一个属性组。 (如果您希望在某些特定元素中不应用默认属性,可以使用 defaultAttributesApply="false" 来指定。) 您可以在 XML Schema 编辑器的“全局”视图中轻松添加一个属性组,并在其中定义默认属性。

然后,通过“模式设计”菜单访问“模式设置”对话框,从中选择您刚刚创建的属性组,将其作为默认属性。您可以通过下拉列表进行选择。

以下是一些XML Schema 1.1版本所提供的主要更新。其他更新包括可继承的属性、增强的替换组功能、以及xs:error数据类型等。这些内容都将在本书的第九章中详细介绍,并附有实际应用示例文件 XML 模式在线培训 课程。

更多资源和工具:

XML Schema 1.1 Recommendation XMLSpy XML Schema 1.1 Editor and validator RaptorXML XML Schema 1.1 Validation Server Free Online XML Schema 1.1 Training