我在Enterprise Architect中使用标准UML,并希望从模型中生成xsd。我知道我可以将模型转换为具有XSDComplexType构造型等的类型并在之后修改它(每次在转换后?)或直接附加它们但我希望尽可能多地与xsd无关。
这是我在使用UML类时得到的,value是属性:
<xs:complexType name="Longitude">
<xs:sequence>
<xs:element name="value" type="xs:double" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
这是我在使用UML枚举时得到的结果:
<xs:simpleType name="Longitude">
<!-- where to define that? e.g. to be double instead, string is default -->
<xs:restriction base="xs:string"/>
</xs:simpleType>
这是我想要的输出而不是上面的内容:
<xs:simpleType name="Longitude">
<xs:restriction base="xs:double">
<minInclusive value="0.0"/>
<maxInclusive value="359.99999999"/>
</xs:restriction>
</xs:simpleType>
使用什么UML类型以及&#34;字段/标记&#34;用于想要的输出?
答案 0 :(得分:1)
没有标准可用的直接UML到XML Schema转换。
要在EA中执行此操作,您需要使用从UML模型到XSD模型的MDA转换,然后从此XSD模型生成XML模式。
另一个选择是使用Schema Composer,但这样可以减少对生成的XSD的控制。
答案 1 :(得分:0)
您应该使用构造型XSDsimpleType(而不是XSDCOmplexType)。输入对标签值的限制。
详细了解EA: Simple Type中的限制和Tagged Values中的标记。