Altova XMLSpy 2023 Professional Edition

在XML Schema 1.1中,可以为复杂类型(使用xs:assert元素)和简单类型(使用xs:assertion元素)定义断言。

 

如果在定义断言的同时提供对断言的解释,这是非常有用的,这样在验证XML实例文档时,如果断言没有得到满足,就可以显示一个适当的消息。由于XML Schema规范未对这类消息作出规定,因此XMLSpy允许Altova xml-schema-extensions命名空间https://www.altova.com/zh/xml-schema-extensions(或任何其他命名空间)中的消息与断言的定义一起提供,并用于XML实例文档的验证。例如:

 

<xs:assert test="count(//MyNode) ge 1" altova:message="There must be at least one MyNode element"/> or

<xs:assertion test="count(//MyNode) ge 1" altova:message="There must be at least one MyNode element"/>

 

如果断言中指定的限制没有得到满足,则XMLSpy的验证引擎将显示与该断言相关的消息作为提示,同时还显示验证错误消息。验证器将报告assert/@message特性或assertion/@message特性的值,而不考虑message特性所在的命名空间。然而,在Schema视图中,您仅可以编辑Altova xml-schema-extension命名空间中的message特性。要编辑其他命名空间中的message特性,请使用文本视图。

 

 

编辑xs:assert消息

在Schema视图中,xs:assert元素(用于复杂类型)可以在相关复杂类型的特性/断言/标识约束(AAIDC)窗格“详细信息”输入助手中创建和编辑。下方截图显示了复杂类型orderType的断言。该断言(在本例中为xs:assert),与断言消息一起在(Schema概览的)“断言”选项卡中定义。

AssertMessageXSD01

如果选择了在图表中显示断言选项,则还可以在内容模型视图中创建和编辑复杂类型的断言。要添加或编辑断言消息,请选择断言并在“详细信息”输入助手(参见下方截图)中输入断言消息。

AssertMessageXSD02

请注意,以这种方式创建的断言消息位于Altova xml-schema-extensions命名空间https://www.altova.com/zh/xml-schema-extensions中。当您通过AAIDC窗格“详细信息”输入助手在XML Schema文档中添加第一个断言消息时,Altova xml-schema-extensions命名空间将自动在xs:schema元素上声明。

 

如果验证了XML文件,而断言测试没有得到满足,则为该断言定义的消息将与错误消息一起显示(参见下方截图)。

AssertMessageXML

 

编辑xs:assertion消息

在Schema视图中,xs:assertion元素(用于简单类型)可以在相关简单类型的“方面”输入助手中创建和编辑。要编辑断言消息,请右键单击“方面”输入助手(参见下方截图)中的断言,在弹出的菜单中单击详细信息,然后在“断言详细信息”窗格(参见下方截图)中编辑消息。请注意,以这种方式创建的断言消息位于Altova xml-schema-extensions命名空间https://www.altova.com/zh/xml-schema-extensions中。当您通过“断言详细信息”窗口在XML Schema文档中添加第一个断言消息时,命名空间将自动在xs:schema元素上声明。

AssertionMessageXSD

如果验证了XML文件,而断言测试没有得到满足,则为该断言定义的消息将与错误消息一起显示(参见下方截图)。

AssertionMessageXML

 

© 2017-2023 Altova GmbH