如何在Sparx EA 16.1中实现复杂类型按指定顺序生成XSD?
EA 16.1导出XSD时强制复杂类型元素顺序的解决方案
第一步:关闭模型元素的自动排序
- 打开EA顶部菜单栏的「工具 > 选项」,切换到「对象」标签页。
- 在「元素列表顺序」区域,取消勾选「按字母顺序排序特性」。关闭这个选项后,EA会保留你手动设置的元素/属性顺序,不再自动按字母排序。
- 应用设置并重启EA(部分场景需要重启生效),回到复杂类型对应的UML类,在「特性」标签页中,通过拖拽属性调整到你需要的解析顺序。
第二步:配置XSD生成器的顺序规则
- 右键选中要导出的目标包或类,选择「代码工程 > 生成XSD...」。
- 在弹出的生成窗口中切换到「选项」标签页,确保「按字母顺序排序元素」选项处于未勾选状态。这个设置直接决定XSD输出时是否遵循模型中的属性顺序。
重要细节提醒
- 调整顺序时优先在「特性」标签页操作,而非仅在UML图上拖拽元素——图上位置与属性列表顺序虽有关联,但标签页的调整更精准。
- 已被自动排序过的模型,关闭自动排序后需重新手动调整所有涉及的复杂类型属性顺序,调整完成后务必保存模型。
- 建议先选择单个复杂类型测试导出,确认顺序符合要求后再批量处理整个模型,减少重复工作。
验证方式
导出XSD后,直接查看复杂类型对应的<xs:sequence>节点内部的元素顺序,确认是否与模型中设置的一致。如果仍有问题,检查是否存在继承的父类或嵌套子类型未调整顺序,EA的XSD生成会继承父类的属性顺序设置。
内容的提问来源于stack exchange,提问作者Michael Grudgings
相关产品推荐
相关产品推荐

