我有一系列 XSD 文件,它们被用作软件接口规范的主类型定义文件。我正在尝试将它们作为类模型导入 Enterprise Architect。
出于某种原因,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"/>
在引用的文件 ( commonTestelements.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>
XML Spy 可以很好地解释这一点,Visual Studio 也是如此(尽管 VS 有一些不受欢迎的怪癖)。但是,将其导入 EA 会产生纯垃圾,如随附的屏幕剪辑所示。
问题是:有没有办法让 EA 导入它并正确显示类,这将是两个通过命名关联链接在一起的类,如手动创建的图表所示?(我不知道这是否正是 EA 的做法,但这比在图表中插入一堆垃圾名称要好得多)。XML Spy 的观点也是可以接受的。