Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在企业架构师中使用UML生成XSD simpleType_Xsd_Enterprise Architect - Fatal编程技术网

如何在企业架构师中使用UML生成XSD simpleType

如何在企业架构师中使用UML生成XSD simpleType,xsd,enterprise-architect,Xsd,Enterprise Architect,我在EnterpriseArchitect中使用标准UML,并希望从模型中生成xsd。我知道我可以将模型转换为具有XSDComplexType原型的类型,然后每次转换后都对其进行修改?或者直接附加它们,但我希望尽可能不知道xsd 这是我在使用UML类时得到的,值是属性: 这是我在使用UML枚举时得到的结果: 这是我希望作为输出实现的目标,而不是上述目标: 要使用的UML类型以及要用于所需输出的字段/标记的位置?您应该使用原型XSDsimpleType而不是XSDCOmplexType。输入标记值

我在EnterpriseArchitect中使用标准UML,并希望从模型中生成xsd。我知道我可以将模型转换为具有XSDComplexType原型的类型,然后每次转换后都对其进行修改?或者直接附加它们,但我希望尽可能不知道xsd

这是我在使用UML类时得到的,值是属性:

这是我在使用UML枚举时得到的结果:

这是我希望作为输出实现的目标,而不是上述目标:


要使用的UML类型以及要用于所需输出的字段/标记的位置?

您应该使用原型XSDsimpleType而不是XSDCOmplexType。输入标记值的限制


请参阅中的限制和中的标记。

没有标准可用的直接UML到XML模式转换

要在EA中实现这一点,您需要使用MDA转换,从UML模型到XSD模型,然后从这个XSD模型生成XML模式


另一种选择是使用Schema Composer,但这会减少对生成的XSD的控制。

尝试从有效的XSD源进行反向工程,看看EA生成了什么。@Thomas Kilian这不起作用。EA生成带有原型的类,就像在执行模型转换时生成的类一样,该模型转换可用于执行转换时的XSD生成输出当前包,其中包含XSD类型等。但是我想知道在执行转换之前UML元素应该查看。我不想创建一个包含XSD元素的UML模型,我想创建一个独立的目标不可知的UML模型,例如,也应该能够生成代码。很久以前我在EA中使用XSD。但那一次我为EA写了自己的im-/导出器。原因是/是UML和XSD之间没有定义映射。只是有几个惯例。取决于你在这个方向上做了多少,我建议你也这样做。FWIW:我可以用一个模式定义重新定义上面的内容,EA创建了一个模式,我不想直接在不可知模型中使用这个类型。XSD只是一种输出。但是,生成器在生成XSD模型时选择XSDSimpleType,然后在此基础上选择XSD,这有什么区别呢?
<xs:complexType name="Longitude">
    <xs:sequence>
        <xs:element name="value" type="xs:double" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
</xs:complexType>
<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>