2016-06-17 9 views
0

У меня есть серия файлов XSD, которые используются в качестве файлов определения основного типа для спецификации программного интерфейса. Я пытаюсь импортировать их в Enterprise Architect в качестве моделей классов.Импорт класса из 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 дает чистый мусор, как показано на прилагаемом скриншоте.

Bad Diagram
EA Class Diagram

Возникает вопрос: есть ли способ, чтобы получить EA импортировать это и показать класс правильно, что бы два класса связаны вместе с именем ассоциации, как показано в эта созданная вручную диаграмма? (Я не знаю, будет ли это именно то, как EA это сделает, но это было бы намного лучше, чем наличие кучи названий мусора, вставленных в диаграмму). Представление из XML Spy также приемлемо.

Желаемая Диаграмма
Desired EA Diagram

Выход из XML Spy
XML SPY Diagram

ответ

2

Там нет 1: 1 отображение между UML и XSD. Тот факт, что ряд инструментов создает определенное сопоставление, не означает, что другой получает те же результаты. Импортер EA не может быть изменен. Таким образом, единственный вариант, который у вас есть, это написать собственный импортер (я делал это в прошлом, и это не так сложно).

+0

Это то, чего я боялся. Есть ли способ, которым EA кодирует грани? – theMayer

+0

Что вы подразумеваете под этим? –

+0

Попытка выяснить, как они устанавливаются в EA, поскольку я не мог понять это из крайне ограниченного файла справки, который у них есть: http://www.w3schools.com/xml/schema_facets.asp – theMayer