Altova XMLSpy 2023 Enterprise Edition

在Schema视图中,您可以选择根据XML Schema 1.0规范(XSD 1.0)或XML Schema 1.1规范(XSD 1.1)对XML Schema(XSD)进行编辑和验证。用于编辑文件的XSD模式基于两种设置:一种在应用程序中,另一种在XSD文档中。

 

选择XSD模式

Schema视图中的活动文档可以使用哪些编辑和验证功能取决于XSD模式(XSD 1.0或1.1)。您可以:(i) 为整个应用程序进行设置,在这种情况下,Schema视图中的所有XSD文档都将在选定的模式下进行编辑,或者(ii) 您可以在XSD文档中保存XSD版本号,以便应用程序根据此信息自动选择XSD模式。

 

应用程序范围模式

应用程序范围的设置是在“选项”对话框(工具|选项参见下方截图)的“文件”部分中进行的。如果选择了V1.0V1.1单选按钮,则选定的模式将成为应用程序范围模式。在Schema视图中打开的所有XML Schema文档都将在此模式下进行编辑。(如果您选择如果<xs:schema vc:minVersion="1.1",则为v1.1,否则为v1.0设置,则将根据文档中的信息选择模式,并且该模式不会在应用程序范围内使用。有关更多信息,请参见文档特定模式和下面的其他部分。)

XMLSchemaVersion

您可以通过在“选项”对话框的“XML Schema版本”设置(参见上方截图)中选择所需的选项随时在两种应用程序范围模式(V1.0V1.1)之间切换。

 

提示:如果当前设置是应用程序范围的设置,然后您使用“Schema设计”工具栏中的XSD 1.0XSD 1.1按钮(参见下一部分)来切换模式,则该模式切换将是暂时的,并且在重新加载文档时,模式将还原到应用程序范围模式。每次更改视图或刷新Schema视图时都会发生重新加载(通过文件 | 重新加载)。

 

文档特定模式

您还可以选择将XSD模式信息保存在XSD文档本身中。这会在加载文档时自动将Schema视图切换到文档的XSD模式。您可以通过单击“Schema设计”工具栏(参见下方截图)中的XSD 1.0XSD 1.1按钮将XSD模式信息添加到XSD文档中。执行此操作时,所选模式将保存在顶级xs:schema元素的vc:minVersion特性中。(也可以在文本视图中手动添加vc:minVersion的值。)

ToolbarSchemaDesign
注意:vc:minVersion特性(如果存在)必须位于命名空间http://www.w3.org/2007/XMLSchema-versioning中。在这种情况下,XML Schema文档必须有一个命名空间声明,将vc:命名空间前缀绑定到该命名空间。如果您使用XSD 1.1工具栏按钮(参见上方截图),则会自动添加命名空间。如果文档中没有其他节点名称在此命名空间中,则单击XSD 1.0工具栏按钮将删除此命名空间声明。

 

要激活文档特定模式并指定文档的XSD模式,请执行以下操作:

 

1.激活文档特定模式:在“选项”对话框(工具 | 选项)的“文件”部分,将XML Schema版本选项设置为如果<xs:schema vc:minVersion="1.1",则为v1.1,否则为v1.0参见下方截图)。这向XMLSpy指示,应根据xs:schema元素的vc:minVersion特性设置Schema视图中的XSD模式。

XMLSchemaVersionOn

2.指定文档的XSD版本:在“Schema设计”工具栏(参见上方截图)中,单击XSD 1.0XSD 1.1按钮。  此时会弹出一个确认对话框(参见下方截图)。

XSDVersionConfirm

3.单击会出现以下情况:(i) 在xs:schema元素的vc:minVersion特性中输入相应的值,以及(ii) 如果选择了XSD 1.1,则将对XMLSchema-versioning命名空间进行声明,并绑定到vc:命名空间前缀;如果选择了XSD 1.0并且XMLSchema-versioning命名空间中没有其他节点,则将删除命名空间声明。XML Schema文档现在包含XSD版本号。保存文件时也会保存XSD模式信息。当您重新打开或重新加载文件时,Schema视图将自动切换到文档的XSD模式,该信息包含在xs:schema元素的vc:minVersion特性中。

 

注意:如果选择了文档特定模式,并且XSD文档没有vc:minVersion特性,或vc:minVersion特性的值不是1.01.1,则Schema视图将默认采用XSD 1.0模式。

 

备注:不要将vc:minVersion特性与xsd:version特性混淆。前者保存XSD版本号,而后者保存文档的版本号

 

新文档的XSD模式

当您创建一个新的XSD文档时,系统会询问您是要将其创建为XSD 1.0,还是XSD 1.1文档。如果选择XSD 1.1,则将使用特性/xs:schema/@vc:minVersion="1.1”创建一个新文档,并声明XMLSchema-versioning命名空间并绑定到vc:命名空间前缀。如果选择XSD 1.0,则既不会添加vc:minVersion特性,也不会添加XMLSchema-versioning命名空间声明。但是,在Schema视图中实际启用哪种XSD模式还取决于在“选项”对话框(工具 | 选项)的“文件”部分中选择的XML Schema版本。有关这两个设置如何交互的详细信息,请参见下一部分。

 

启用的XSD模式

在Schema视图中启用的XSD模式取决于(i) XSD文档的/xs:schema/@vc:minVersion特性的存在/不存在以及值(如果存在);以及(ii) 在“选项”对话框工具 | 选项参见下方截图)的“文件”部分中选择的XML Schema版本选项。

XMLSchemaVersion

以下情况是有可能出现的。下表中的XML Schema版本是指上方显示的“Schema版本”窗格中的选项。下表中的vc:minVersion值是指XML Schema文档中xs:schema/@vc:minVersion特性的值。

 

XML Schema版本

vc:minVersion特性

XSD模式

总是v1.0

不存在,或以任何值存在

1.0

总是v1.1

不存在,或以任何值存在

1.1

@vc:minVersion的值

特性值为1.1

1.1

@vc:minVersion的值

特性不存在,或特性存在,但值不是1.1

1.0

 

注意:在前两行描述的情况下,可以在XSD 1.0模式下打开XSD 1.1 Schema,反之亦然。产生的差异将按如下所述进行处理。

 

XSD模式功能

Schema视图的界面和编辑功能会根据启用的XSD模式(XSD 1.0或XSD 1.1)而变化。

 

如果启用了XSD 1.0模式

 

编辑功能不适用于新的XML Schema 1.1组件和属性。但是,如果XSD文档中已存在XSD 1.1组件或属性,则这些组件或属性将显示并可供删除。

验证将根据XSD 1.0规范执行。因此,如果Schema(已经)包含XSD 1.1独有的组件或属性,则将报告验证错误。

 

如果启用了XSD 1.1模式 ,则将为XML Schema 1.1的所有功能提供编辑支持。验证将根据XML Schema 1.1规范执行。

 

在XSD 1.0模式下处理XSD 1.1功能

下面将介绍如何在XSD 1.0模式下显示和处理文档中XSD 1.0不支持的XSD 1.1功能(例如,断言)。

 

断言Assertion:如果在所选简单类型上至少存在一个断言,则在“方面”输入助手中会包括一个断言选项卡。断言不能被编辑,只能被删除。

断言Assert:如果断言存在,它将显示在复杂类型的图表中。AAIDC窗格中没有可用的“断言”选项卡。无法通过上下文菜单添加断言。属性不能被编辑,只能被删除。

特性:如果存在,将显示新属性inheritable。只能选择空值(这实际上是删除属性),无法进行编辑。

复杂类型:新属性defaultAttributesApply(如果存在)将显示在“详细信息”输入助手中。除了选择空值(这实际上是删除属性)外,无法进行编辑。

文档:Schema视图文档中不包括新的XSD 1.1特定的组件和属性。

方面:未知的方面会导致验证错误并以红色显示。

在Schema中查找:新的特定于XSD 1.1的组件和属性都将被忽略。

标识约束(IDC):属性isRef在引用的情况下显示并且可以被禁用。一旦IDC的名称更改,它将被停用。

多个替换组:用于选择单个替换组的组合框(XSD 1.0中仅允许单个替换组)。

开放内容:如果存在,则显示在图表中。无法通过上下文菜单添加。只能删除,不能编辑。默认开放内容不显示在复杂类型中。

覆盖:如果存在,将显示在全局组件网格中。无法通过菜单添加。无法(对位置)进行编辑,只能删除。覆盖组件(即xs:override的子级)将被忽略,不会出现在“组件”输入助手中。

Schema设置:新属性defaultAttributesxpathDefaultNamespace(如果存在)都将显示在对话框中。只能选择空值(这实际上是删除属性),无法进行编辑。

简单类型:未知的类型会导致验证错误并以红色显示。

类型替代如果存在,则显示在图表中。无法通过上下文菜单添加。无法(对属性)进行编辑,只能删除。

通配符:如果存在,将显示新属性。只能选择空值(这实际上是删除属性),无法进行编辑。

 

© 2017-2023 Altova GmbH