Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
Xml 在Enterprise Architect中从XSD导入类_Xml_Xsd_Enterprise Architect_Xmlspy - Fatal编程技术网

Xml 在Enterprise Architect中从XSD导入类

Xml 在Enterprise Architect中从XSD导入类,xml,xsd,enterprise-architect,xmlspy,Xml,Xsd,Enterprise Architect,Xmlspy,我有一系列XSD文件,它们被用作软件接口规范的主类型定义文件。我正试图将它们作为类模型导入企业架构师 出于某种原因,XSD的原始开发人员决定将序列元素列为“ref”,而不是直接列出,并且引用的定义存在于一个单独的XSD文件中,从相关文件中引用 到目前为止,没有问题,它是标准XSD语法,示例如下所示: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSche

我有一系列XSD文件,它们被用作软件接口规范的主类型定义文件。我正试图将它们作为类模型导入企业架构师

出于某种原因,XSD的原始开发人员决定将序列元素列为“ref”,而不是直接列出,并且引用的定义存在于一个单独的XSD文件中,从相关文件中引用

到目前为止,没有问题,它是标准XSD语法,示例如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:include schemaLocation="commonTestElements.xsd"/>
<xs:element name="someElementName">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="someAttributeName" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name="someOtherElementName" type="xs:boolean"/>
XMLSpy很好地解释了这一点,VisualStudio也是如此(尽管VS有一些不受欢迎的怪癖)。然而,将其导入EA会产生纯粹的垃圾,如附带的屏幕剪辑所示

坏图

问题是:有没有办法让EA导入该类并正确显示该类,这将是两个通过命名关联链接在一起的类,如这个手动创建的图所示?(我不知道EA是否会这样做,但这比在图中插入一堆垃圾名称要好得多)。来自XMLSpy的视图也是可以接受的

所需图表

XML Spy的输出

UML和XSD之间没有1:1的映射。许多工具创建特定映射的事实并不意味着另一个工具得到相同的结果。EA的导入程序无法修改。因此,您唯一的选择是编写自己的导入器(我在过去做过,这并不困难)。

UML和XSD之间没有1:1的映射。许多工具创建特定映射的事实并不意味着另一个工具得到相同的结果。EA的导入程序无法修改。所以你唯一的选择就是写你自己的进口商(我以前写过,也没那么难)。

这就是我害怕的。有没有一种EA编码方面的方法?你这是什么意思?试图弄清楚这些方面是如何在EA中设置的,因为我无法从他们拥有的极其有限的帮助文件中弄清楚:我明白了。如上所述,您无法配置EA的导入器。你需要自己写。XSD和UML元素之间的映射可以通过许多算法规则来完成。最终,XSD转换可能会有所帮助,但我对此不太熟悉。这正是我所担心的。有没有一种EA编码方面的方法?你这是什么意思?试图弄清楚这些方面是如何在EA中设置的,因为我无法从他们拥有的极其有限的帮助文件中弄清楚:我明白了。如上所述,您无法配置EA的导入器。你需要自己写。XSD和UML元素之间的映射可以通过许多算法规则来完成。最终,XSD转换可能会有所帮助,但我对此不太熟悉。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <!-- element declarations -->
    <xs:element name="someAttributeName">       
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:minLength value="1"/>
                <xs:maxLength value="80"/>
                <xs:whiteSpace value="preserve"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
</xs:schema>