使用IIR
XML Schema提供了Import、Include和Redefine(IIR)语句以帮助Schema的模块化。每种方法都有不同的命名空间要求。当您尝试创建IIR时,SchemaAgent Client和XMLSpy会自动检查这些要求。
Import、Include和Redefine(IIR)
Schema构造可以通过“不同的方式”“插入”:
•可以将全局元素直接从“组件”输入助手拖到Schema组件的内容模型中(在Schema视图中)。
•可以从定义新元素/特性时自动打开的列表框中选择组件,例如complexType和simpleType。
•在创建/更新这些类型的构造时,可以从“详细信息”输入助手中选择组件,例如complexType。
包含Schema组件
此示例使用..\Tutorial文件夹中的DB2schema.xsd文件作为活动Schema;“组件”输入助手的全局组件选项卡处于活动状态。
要使用来自SchemaAgent Server Schema的Schema构造,请执行以下操作:
1. | 确保您已连接到SchemaAgent服务器(参见连接到SchemaAgent服务器)。 |
2. | 打开并对此示例的DB2Schema.xsd文件进行重命名,例如重命名为Altova-office。 |

3. | 在Schema概览中,单击Altova元素的![]() |
4. | 在Altova序列排序符上右键单击,然后选择菜单选项添加子集 | 元素。请注意,此时会自动打开一个包含服务器路径中所有全局元素的列表框。请选择要包含的元素。 |

5. | 输入Altova-office作为该新元素的名称,然后按Enter键。 |
6. | 使用“详细信息”输入助手,单击type组合框并选择OfficeType条目。 |

这将打开“为OfficeType选择定义”对话框。

7. | 选择Orgchart.xsd并单击确定。 |

8. | 单击确定。这将自动为您选择Import命令。一个“展开”图标会出现在Altova-office元素上。 |

请注意:“详细信息”输入助手中的type条目已改变;它现在显示为ns1:OfficeType,这是因为Orgchart.xsd Schema文件已被导入,并且在两个Schema中的目标命名空间必须不同。Import命令也已添加到Schema中。

9. | 单击“展开”按钮以查看OfficeType的内容模型。 |

10. | 按F8以验证Schema。此时应出现“该Schema是有效的”消息。 |
清理Schema:
1. | 删除内容模型中的Division元素。 |
2. | 单击“返回到全局组件”图标![]() |
3. | 删除以下全局元素:Division、Person和VIP。 |

4. | 选择菜单选项Schema设计 | Schema设置以查看如何更改命名空间设置。 |

ns1 前缀已自动添加到www.xmlspy.com/schemas/orgchart命名空间。“组件”(参见截图)和“详细信息”输入助手显示所有导入的带有ns1:命名空间前缀的构造。

请注意:
•使用XMLSpy对SchemaAgent Server控制下的Schema所做的更改将自动更新SchemaAgent Server路径中引用被修改的Schema的的其他Schema。
•如果您正在处理的Schema也在SchemaAgent Server路径中,则有可能在输入助手中看到构造元素、simpleType等的重复内容(黑色和蓝色)。