是否有用于UML XMI文件的XSD?
header 仅包含 namespace 引用。
<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"/>
因为我无法知道
general
的类型是什么(当然,我可以检查全局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,并得到以下答复
这证实了我的假设,即信息应从元模型派生。
关于xml - UML的XMI是否具有XSD?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36845695/