Altova XMLSpy 2023 Professional Edition

在特性/断言/标识约束(AAIDC)窗格的“特性”选项卡(参见下方截图)中,您可以:

 

在选定的复杂类型上局部声明特性

引用特性组以用于选定的复杂类型

在选定的复杂类型上定义特性通配符

 

提示:如果您选择了在图表中(而不是在AAIDC窗格中)显示特性的选项(Schema设计 | 配置视图),则可以在图表和“详细信息”输入助手中编辑特性、特性组引用和特性通配符的属性。

 

icAttributesToggle

在图表中显示特性:在内容模型视图中启用。在图表(已打开)和“特性”选项卡之间切换显示特性。

 

Attributes

在特性/断言/标识约束(AAIDC)窗格的“特性”选项卡(参见下方截图)中,您可以声明元素和复杂类型的局部特性,以及构成特性组的特性。

AttributesAAIDC01

要创建特性,请执行以下操作:

 

1.在Schema概览中,选择要创建特性的复杂类型或特性组。

2.在“特性”选项卡中,单击左上角的追加插入图标,然后选择特性

3.在为特性创建的行中,输入特性的详细信息(名称、类型、用途、默认值或固定值)。其中,name属性是必需的,use的默认值为optional。数据类型和默认/固定值属性都是可选的。

 

请注意:特性只能在Schema概览中被添加到特性组,但在Schema概览内容模型视图中都可以添加到复杂类型。

 

注意:如果特性具有类型定义,则单击其上下文菜单命令转至类型定义会将您带到该类型定义。对于内置简单类型,将出现一个消息框,其中包含有关简单类型的信息。

 

默认值和固定值

默认值或固定值在特性声明中定义,并在实例文档中不存在该特性时应用于文档。可以指定默认值或固定值,但不能同时指定(参见上方截图)。默认值或固定值必须根据特性的数据类型有效。如果use被设为required,则既不允许使用默认值,也不允许使用固定值。

 

请注意以下几点:

 

默认值:仅当特性缺失时才插入默认值。当特性存在且具有有效值时,则不会插入默认值。当实例文档中的值无效时,会引发错误。

固定值:不仅当特性缺失时,而且当实例文档中的值与特性声明中指定的固定值不匹配时,将应用固定值。

 

提示:可以在局部特性和全局特性上指定默认值和固定值。对于局部特性,可以在AAIDC窗格的“特性”选项卡(参见上方截图)和“详细信息”输入助手中定义它们。对于全局特性,可以在“详细信息”输入助手中指定它们。

 

特性组引用

如果已声明全局特性组,则可以在复杂类型的定义中添加对该特性组的引用。为此,在Schema概览或内容模型视图中选择复杂类型组件,然后单击AAIDC窗格的“特性”选项卡左上角的追加插入图标并选择特性组。在创建的特性组行中,输入要引用的特性组的名称(参见下方截图,其中有两个特性组引用)。您可以添加多个特性组。

AttributesAAIDCAttGrp

在“特性”选项卡中选择特性组时,还可以在“详细信息”输入助手中编辑其属性。

 

特性通配符:anyAttribute

可以向复杂类型添加特性通配符以允许在元素上使用任何特性。特性通配符由单个anyAttribute元素定义。它允许来自指定命名空间的任意数量的的特性出现在实例文档中的元素上。

 

要添加特性通配符,请在Schema概览或内容模型视图中选择复杂类型组件,然后单击AAIDC窗格的“特性”选项卡左上角的追加插入图标并选择Any Attribute。这将为特性通配符anyAttribute创建一行(参见下方截图)。

AttributesAAIDCAny

在“特性”选项卡中,您可以设置anyAttributenamespace属性。在“特性”选项卡中选择特性通配符后,您可以在“详细信息”输入助手(参见上方截图)中设置其他属性。请注意,notNamespacenotQName属性是XSD 1.1中的功能,因此在XSD 1.0模式下不可用。

 

特性和特性组排序

您可以通过单击“特性”选项卡工具栏中的排序图标来对选项卡中的特性和特性组进行排序。在弹出的“组件排序”对话框(参见下方截图)中,您可以选择对选定的单个组件及其同级,或多个选定的组件进行排序。您可以使用Shift+单击以选择一个范围,然后使用 Ctrl+单击以将其他组件添加到选定的范围中。  

AttributesSortComponentsDlg

选择范围后,您可以选择按字母顺序对整个特性和特性组的范围进行排序(名称在种类之前),或先按字母顺序对特性排序,再按字母顺序对特性组排序。

 

排序顺序将立即在Schema文档的文本中实现;它不仅仅是一个界面掩码。

 

请注意:特性通配符不会包括在要排序的范围内,因为它们必须总是出现在复杂类型声明的末尾,并且每个复杂类型声明仅允许使用一个特性通配符。

 

© 2017-2023 Altova GmbH