To jest stara wersja strony!
Brudnopis
XML Metadata Interchange (XMI) to standard dla wymiany metadanych przy użyciu XMLa.
XMI może być używany dla jakichkolwiek metadanych, których metamodel da się wyrazić w specyfikacji MOF.
Metamodel jest zapisywany w postaci XML Document Type Definitions (DTD), zaś model jest zapisywany w XMI zgodnie z regułami określonymi w specyfikacji mapowania XMI (XMI Mapping Specification).
Najczęściej XMI jest używany jako format zapisu i wymiany modeli UMLa pomiędzy różnymi narzędziami
(jest to możliwe, gdyż UML jest oficjalnie zdefiniowany w metamodelu UML zgodnym z MOF).
XMI może zostać użyty także do zapisu aplikacji (np. Java, C++), komponentów (np. EJB), baz danych (np. CWM).
XMI może definiować: [za: 1]
reprezentację obiektów i atrybutów,
powiązania między obiektami (w tym samym pliku lub międzyplikowe),
referencje do innych obiektów poprzez wykorzystanie identyfikatorów,
wersjonowanie obiektów i ich definicji,
walidację dokumentów XMI przy pomocy DTD i XML Schema.
Należy podkreślić, że w obecnej postaci służy zapisowi modelu, a nie diagramów,
gdyż nie determinuje postaci wizualnej wykraczającej poza formalną treść modelu. [2]
Uproszczony przykład reprezentacji klasy zapisanej przy pomocy XMLa: [za: 3]
Reprezentacja powyższej klasy w XMI (wygenerowana przy użyciu StarUML):
<?xml version = "1.0" encoding = "UTF-8"?>
<XMI xmi.version = "1.1" xmlns:UML="href://org.omg/UML/1.3">
<XMI.content>
<UML:Model xmi.id="UMLModel" name="Design Model">
<UML:Class xmi.id="UMLClass" name="Osoba" visibility="public" namespace="UMLModel" isAbstract="false">
<UML:Classifier.feature>
<UML:Attribute xmi.id="UMLAttribute.6" name="imie" visibility="public" owner="UMLClass"/>
<UML:Attribute xmi.id="UMLAttribute.7" name="nazwisko" visibility="public" owner="UMLClass"/>
<UML:Attribute xmi.id="UMLAttribute.8" name="pesel" visibility="public" owner="UMLClass"/>
</UML:Classifier.feature>
</UML:Class>
</UML:Model>
</XMI.content>
</XMI>
Źródła