2013-05-11 10 views
5

Piszę program w języku java, który pobiera kod źródłowy java jako dane wejściowe, a wyjście to plik xmi, który zawiera schemat klasy kodu źródłowego.Jak wygenerować plik XMI dla kodu źródłowego java?

Przebadałem strukturę xmi, ale nie byłem w stanie znaleźć odpowiedniego zasobu wyjaśniającego strukturę i kolejność tagów.

Pierwsze pytanie brzmi: jak mogę się dowiedzieć, jaka jest kolejność tagów i definicja każdego tagu? na przykład, jakie jest znaczenie "isActive = false" etc?

Po drugie, czy są jakieś sugestie bibliotek lub czegokolwiek w języku Java, które mogą mi pomóc zakończyć ten projekt?

+0

możesz zdefiniować strukturę XML zgodnie z potrzebami. –

+0

Byłoby lepiej, gdyby najpierw przejść przez niektóre podstawowe samouczki XML, aby dowiedzieć się o podstawowych XML takich jak tagi, atrybuty, przestrzeń nazw ... –

+0

http://www.vogella.com/articles/JAXB/article.html –

Odpowiedz

3

Myślę, że kolejność tagów nie ma znaczenia w XMI. Ogólnie, XMI definiuje tylko sposób odwzorowania MOF na XML. Zasadniczo tworzysz model M2 (= UML) z Java, a następnie mapujesz to do XML z XMI, jeśli rozumiem to poprawnie (i myślę, że podwójne ukierunkowanie jest powodem, dla którego nie znajdziesz dobrych zasobów do mapowania z UML do XMI bezpośrednio).

Dla wielu osób przykłady mogą być bardziej dostępne niż łańcuch reguł transformacji określonych przez różne standardy OMG. Więc po prostu narysowałem schemat minimalnego UML w moim ulubionym narzędziu UML dla aspektu eksportu, który mnie interesuje i spojrzał na wyeksportowany XMI. Następnie dodaj funkcje w razie potrzeby ...

PS: Możesz użyć klas refleksji Java (pakiet java.lang.reflect) zamiast parsować źródło Java samodzielnie, aby wygenerować XMI (jeśli nie potrzebujesz zachować nazwy argumentów metod).

+2

Korzystanie z odbicia wyrzuca nazwy parametrów metod. Ten _ może być problemem, czy nie - YMMV. –

+0

@Stefan Haustein, doceniam twoją odpowiedź, ale nie zrozumiałem cię wyraźnie. Dokładnie analizuję kod java, aby wygenerować plik XMI. Widziałem przykład stworzony przez StarUML na windows lub ArgoUML na mac. Znajduję związek między klasami, a także ich treścią i generuję diagram UMLClass. Jestem pod wrażeniem odbicia java, ale mogę go użyć do mojego programu do określenia diagramu klas dowolnego źródła. (Wejściem programu jest dowolny kod źródłowy) – Bernard

+0

@ A.H. dzięki, naprawiono –

Powiązane problemy