是否有用于UML文件的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"/>因为我无法知道general的类型(当然,我可以对照全局ID表进行检查,但是对于每个属性和TextElement,这样做似乎很愚蠢)。
我希望有这样的东西
<xsd:complexType name="Generalization">
<xsd:attribute name="general" type="xsd:IDREFS" use="optional"/>
...
</xsd:complexType>UML的XMI有这样的描述吗?
发布于 2016-04-27 09:22:07
经过进一步的挖掘,我的结论不仅是这样的XSD不存在,而且它根本不可能存在,因为它不够强大,无法正确地表达UML的所有OCL约束和规则。
正确的方法应该是通过一个符合标准的UML模型来验证/处理它,因此正确处理XML所必需的信息必须从模型中得到。
更新:
Per @Thomas的建议我写信给Sparx,得到了以下答复
它来自UML元模型。 不,我们没有XMI格式的XSD。
这证实了我的假设,即信息应该来自元模型。
发布于 2016-04-27 10:41:46
是的,有一个正式的XMI规范,包括一个XSD。
对于最新版本(V2.5.1),这是柯萨德,但是这个xsd不会验证模型的UML语法。
UML的元模型在xmi格式中也是可用的。
关于http://www.omg.org/spec/XMI/的更多信息
https://stackoverflow.com/questions/36845695
复制相似问题