xml – UML的XMI是否有XSD?

是否有UML XMI文件的XSD?

标头只包含名称空间引用.

<xmi:XMI xmi:version="2.1"
    xmlns:uml="http://schema.omg.org/spec/UML/2.1"
    xmlns:xmi="http://schema.omg.org/spec/XMI/2.1"
    xmlns:thecustomprofile="http://www.sparxsystems.com/profiles/thecustomprofile/1.0">

我设法追踪的唯一文件是http://www.omg.org/spec/XMI/20131001/XMI.xsd,但这只是XMI本身(差异/文档)的描述,而不是UML.

这意味着我不知道下面的过程如何

<generalization
    xmi:type="uml:Generalization" 
    xmi:id="EAID_8CC13F09_BD19_406b_A4B4_37FB8B315EF0" 
    general="EAID_E1F9FAD6_2BDB_40ad_AAE2_E3935ADD1CDC"/>

因为我无法知道一般的类型是什么(当然我可以检查全局ID表,但对于每个属性和TextElement来说这似乎都很愚蠢).

我希望有类似的东西

<xsd:complexType name="Generalization">
    <xsd:attribute name="general" type="xsd:IDREFS" use="optional"/>
    ...
</xsd:complexType>

UML的XMI有这样的描述吗?

最佳答案 经过一些挖掘,我的结论不仅仅是这样的XSD不存在,而且根本不存在,因为它不足以正确表达UML的所有OCL约束和规则.

正确的方法应该是通过一致的UML模型来验证/处理它,因此必须以某种方式从模型中获得正确处理XML的必要信息.

更新:

根据@Thomas的建议,我写信给Sparx并得到以下回复

It’s derived from the UML metamodel.

No, we don’t have an XSD for the XMI format.

这证实了我的假设,即信息应该来自元模型.

点赞