2010-02-20 13 views
13

Tôi cần đọc sơ đồ UML được tuần tự hóa thành XMI. Có thư viện nào cho phép tôi đọc thuận tiện UML XMI hay không - bằng cách thuận tiện tôi có nghĩa là có một số phương thức để lặp qua các lớp/gói/phương thức/attributest, vv trong mô hình.Cách đọc XMI?

Tôi đã thử EMF, nhưng tôi không thể tìm thấy bất kỳ hướng dẫn nào cho thấy cách nhập XML chứa UML. Tôi cũng đã tìm thấy NSUML/NSMDF nhưng liên kết đến tài liệu bị hỏng.

Trả lời

4

Tôi không nghĩ những gì bạn muốn tồn tại. Tất cả các công cụ nhập khẩu XMI mà tôi biết (bao gồm cả dịch vụ chuyển đổi XMI của tôi: http://modeling-languages.com/content/xmi2-tool-exchanging-uml-models-among-case-tools) hoạt động bằng cách phân tích toàn bộ tệp XMI và tạo mô hình UML tương ứng trong bộ nhớ chính. Sau đó, bạn có thể truy cập vào các phần tử UML bằng cách truy vấn mô hình.

Để lặp trên mô hình XMI bạn có thể dễ dàng sử dụng các thư viện XML để chọn các mảnh của file XMI bạn quan tâm.

1

ArgoUML có thể nhập XMI vào mô hình UML của nó và tạo mã cho Java, C++, C#, PHP4 và PHP5.

0

Để đọc XMI/UML sử dụng EMF, bạn sẽ cần tìm, tạo hoặc viết mô hình ECore cho UML. Một khi bạn có một trong số đó, bạn có thể tạo ra các lớp trong bộ nhớ để thao tác UML và tận dụng cơ sở hạ tầng EMF khác.

Nhưng một tuyến đơn giản hơn có thể là sử dụng cơ sở hạ tầng UML2 do Eclipse MDT project phát triển. (Tôi đoán là nó sử dụng EMF dưới mui xe và có một mô hình ECore cho UML2 ở đâu đó.)

+0

Bạn đúng là dự án UML2 được xây dựng trên đầu trang của EMF. – ChrisH

0

gì bạn đang tìm kiếm là Java specification for JMI (“Java Metadata Interface”), trong đó triển khai MOF để mô tả Siêu dữ liệu và XMI để vận chuyển Siêu dữ liệu.

Thật không may tôi hiện đang tìm kiếm các triển khai của JMI bản thân mình và mặt trời trang JMI có vẻ hơi lỗi thời. Triển khai mã nguồn mở của netbeans dường như đã bị loại bỏ cho phiên bản 6.

2

Nó phụ thuộc vào phiên bản UML mà bạn đang cố gắng đọc. Gói NSUML mà bạn tìm thấy chỉ hoạt động với UML 1.3. NetBeans MetaData Repository (MDR) sẽ đọc xử lý UML 1.4 và UML 1.5. Nó có thể được sử dụng như một thư viện độc lập (đó là những gì ArgoUML sử dụng), vì vậy bạn không cần NetBeans. Đối với UML 2.x, tôi nghĩ rằng các thư viện Eclipse EMF & UML2 là lựa chọn duy nhất của bạn. EMF là một phụ thuộc, nhưng nó thực sự là công cụ UML2 mà bạn muốn. Giống như với MDR và ​​NetBeans, bạn không cần Eclipse. ArgoUML sử dụng các thư viện Eclipse để hỗ trợ UML 2.x của nó.