ソフトウェア インターフェイス仕様のマスター タイプ定義ファイルとして使用されている一連の 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 からのビューも許容されます。