FeaturesPluginsDocs & SupportCommunityPartners

XML 架构工具:将设计模式应用于 XML 架构文件

返回 XML 架构工具入门指南

本教程的目的旨在介绍如何将不同的设计模式应用于 XML 架构文件。您可以使用 XML 架构工具将以下任一设计模式应用于 XML 架构文件:

  • 软百叶窗。软百叶窗设计中包含单个全局元素;所有其他元素都是本地的。通过使用命名的复杂类型和元素组,将元素声明嵌套在单个的全局声明内。在架构中可重用复杂类型和元素组。只有根元素必须在全局名称空间内定义。
  • 俄罗斯娃娃。俄罗斯娃娃设计中包含单个全局元素;所有其他元素都是本地的。元素声明嵌套在单个全局声明中,并且元素声明只能使用一次。只有根元素必须在全局名称空间内定义。
  • 意大利香肠片。在意大利香肠片设计中,所有元素都是全局的。架构中没有嵌套的元素声明,并且在架构中可重用元素声明。必须在全局名称空间内定义所有元素。
  • 伊甸园。伊甸园设计是软百叶窗和意大利香肠片设计的组合。所有元素和类型都是在全局名称空间中定义的,并且根据需要引用了这些元素。

有关设计模式的详细信息,请参见 XML 架构中的设计模式简介

注意:无论 图标出现在何处,都可以单击它来查看教程中所描述的步骤的详细交互式演示。

返回页首


添加订单样例 XML 架构

在本教程中,您将使用与 IDE 捆绑在一起的订单样例 XML 架构。

mySchemaPrj 项目中添加样例 XML 架构:

  1. 如果在“项目”窗口中未展开 "mySchemaPrj" 项目节点,请立即将其展开。
  2. 展开“源包”节点,选择 "<缺省包>" 节点,单击鼠标右键,然后选择“新建”>“文件/文件夹”。
    将打开“新建文件”向导。“项目”下拉列表中包含将要添加文件的项目的名称,此处为 mySchemaPrj
  3. 在“类别”列表中,展开 "XML" 节点,然后选择“样例架构”节点。
  4. 在“文件类型”列表中选择“订单架构”,然后单击“下一步”。
  5. 接受向导的“名称和位置”页中的缺省值(文件名:newpo,文件夹:src),然后单击“完成”。
    在“项目”窗口中,“源包”节点下面的 "<缺省包>" 节点现在会包含一个标记为 newpo.xsd 的子节点。同时,将选定新建的子节点,并且源代码编辑器中包含了 XML 架构文件 newpo.xsd 的标签。

查看演示

返回页首


应用设计模式

通过使用设计模式向导,您可以快速确定当前应用于架构的模式以及选择要应用的新模式。

将设计模式应用于 XML 架构文件:

  1. 在“项目”窗口中,依次展开 "mySchemaPrj" 项目节点、“源包”节点以及 "<缺省包>" 节点。
  2. 选择 "newpo.xsd" 文件节点。
  3. 如果未打开“导航”窗口,请从 IDE 主菜单中选择“窗口”>“导航”。
  4. 在“导航”窗口中,从视图下拉列表中选择“设计视图”。
    请注意,该架构文件的当前版本中包含两个全局元素和三个全局复杂类型。

    应用新设计模式之前包含的元素

  5. 在“项目”窗口中,右键单击 "newpo.xsd" 文件节点,然后从弹出式菜单中选择“应用设计模式”。
    将打开“应用设计模式”对话框。请注意对话框底部出现的警告消息,该消息提示您选定的设计模式与当前设计模式(“伊甸园”设计模式)相同。

    选定模式与当前模式相匹配

  6. 在“全局元素”下面选择“创建单个全局元素”单选按钮,然后在“类型”下面选择“不创建类型”单选按钮。
    这会将“俄罗斯娃娃”定义为要应用于架构文件的设计模式。请注意,“示例”框中显示了设计模式的示例。

    已选定“俄罗斯娃娃”模式

  7. 单击“完成”。
    IDE 将为 newpo XML 架构文件应用新的设计模式。
  8. 在“项目”窗口中选择 "newpo.xsd" 文件节点,然后在“导航”窗口的视图下拉列表中选择“设计视图”。
    “俄罗斯娃娃”设计模式中包含单个全局元素。请注意,由于 IDE 应用了“俄罗斯娃娃”模式,因此,只有一个全局元素,即 purchaseOrder

    已应用“俄罗斯娃娃”,在“导航”窗口中查看更改

查看演示

返回页首


后续步骤

本系列教程中的最后一个教程(验证 XML 架构)说明了如何使用 XML 架构工具来验证 XML 架构文件。



返回页首


Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by