XMI
XMI ( XML Metadata Interchange ) er en OMG-standard for metadataudveksling ved hjælp af XML -sproget . Kan bruges til enhver metadata, så længe dens metamodel kan udtrykkes ved hjælp af MOF (Meta-Object Facility). [1] XMI bruges mest som et udvekslingsformat for UML - modeller. En datamatiker kunne ikke tidligere importere en UML-model fra et UML-modelleringsværktøj til et andet på grund af forskelle i definitionen af syntaks og semantik af sprogelementer. [2]
Syntaks
XMI-specifikationen er ret kompleks (i version 1.2 er den over 400 sider lang). Metamodellen af UML skrevet i XMI er også skræmmende stor. For at give en generel idé om syntaksen, vil vi bruge det faktum, at XMI definerer ikke kun UML-metamodellen, men også specifikke UML-modeller, og giver kun definitionen af UML "adresse"-konstruktionen [3] . De følgende forklaringer af sprogets syntaks er også hentet fra den refererede kilde. Bemærk, at tags "UML:Class", "UML:Attribute", "UML:Classifier" ikke tilhører XMI-sproget, men blev defineret i UML-metamodellen, som denne XMI-fil refererer til.
XMI fil eksempel: adresse
<?xml version="1.0"?>
<XMI xmi.version= "1.2" xmlns:UML= "org.omg/UML/1.4" >
<XMI.header>
<XMI.documentation>
<XMI.exporter> ananas. org stylesheet </XMI.exporter>
</XMI.documentation>
<XMI.metamodel xmi.name= "UML" xmi.version= "1.4" />
</XMI.header>
<XMI.content>
<UML:Model xmi .id= "M.1" name= "adresse" visibility= "public"
isSpecification= "false" isRoot= "false"
isLeaf= "false" isAbstract= "false" >
<UML:Namespace.ownedElement>
<UML:Class xmi.id= "C.1" name= "adresse" synlighed= "offentlig"
isSpecification= "falsk" navneområde= "M.1" isRoot= "true"
isLeaf= "true" isAbstract= "false" isActive= "false " " >
<UML:Classifier.feature>
<UML:Attribute xmi.id= "A.1" name= "navn" visibility= "privat"
isSpecification= "false" ownerScope= "instans" />
<UML:Attribut xmi . id= "A.2" name= "gade" visibility= "privat"
isSpecification= "false" ownerScope= "instans" />
<UML:Attribute xmi.id= "A.3" name= "zip" synlighed= " private"
isSpecification= "false" ownerScope= "forekomst" />
<UML:Attribut xmi.i d= "A.4" name= "region" visibility= "privat"
isSpecification= "false" ownerScope= "instans" />
<UML:Attribute xmi.id= "A.5" name= "by" visibility= " private"
isSpecification= "false" ownerScope= "instance" />
<UML:Attribute xmi.id= "A.6" name= "country" visibility= "private"
isSpecification= "false" ownerScope= "forekomst" />
< /UML:Classifier.feature>
</UML:Class>
</UML:Namespace.ownedElement>
</UML:Model>
</XMI.content>
</XMI>
XMI header
XMI definerer følgende tags og attributter:
- XMI er altid rodelementet. Den skal have en xmi.version-attribut (gyldige versioner er 1.0, 1.1, 1.2 og 2.0).
- XMI.header - header. Dens vigtigste børn er XMI.documentation og XMI.metamodel.
- XMI.dokumentation indeholder oplysninger om slutbrugeren:
- XMI.owner - ejeren af metamodellen.
- XMI.contact - hans kontaktoplysninger.
- XMI.longDescription - lang beskrivelse af ejeren.
- XMI.shortDescription - en kort beskrivelse.
- XMI.exporter - eksportør.
- XMI.exporterVersion - eksportørversion.
- XMI.exporterID - Eksportør-id.
- XMI.notice er en kommentar.
- XMI.metamodel Beskrivelse af den metamodel, som XMI-algoritmen er blevet anvendt på.
- XMI.content - indholdet af modellen.
- xmi.id er en unik identifikator for linket til metamodellen.
- xmi.idref er linket til selve metamodellen.
Metoder til beskrivelse af metamodeller
UML-metamodellen er en model, der beskriver UML-sproget - især beskriver den klasser, attributter, associationer, pakker (pakker), samarbejder (samarbejde), use cases (use cases), aktører, beskeder, tilstande og andre begreber i UML sprog. Selve metamodellen kan skrives i UML.
Præfikset "meta" betyder, at metamodellen beskriver modellen for modellen. Derudover bruges XML i dette tilfælde som et metasprog (et sprog, hvor et andet sprog er beskrevet). UML-metamodellen er offentliggjort i UML-specifikationen. Mere specifikt bruger XMI "UML Model Interchange" beskrevet i kapitel 5 i UML-specifikationen.
Et af de centrale begreber i UML, i det mindste i klassediagrammer, er selve begrebet "klasse". I metamodellen er dette koncept modelleret af metaklassen Class , som arver fra den abstrakte metaklasse Classifier . Classifier er forælderen til en klasse, grænseflade og datatype. Arvekæden fortsætter: GeneralizableElement , som repræsenterer alle begreber, der kan generaliseres (det vil sige nedarves fra andre); ModelElement , som repræsenterer alle abstraktionerne i modellen (såsom navneområde, begrænsninger, klasse), og endelig Element , den øverste metaklasse. Hver af disse metaklasser har attributter, som Class arver fra.
Der er en sammensætning mellem Classifier og Feature , som er overordnet til StructuralFeature . Attributten arver fra StructuralFeature.
Programmer, der bruger dette format
- Altova UModel
- ArgoUML
- ARIS værktøjssæt
- Håndværkerstudie
- Astah UML-værktøj
- da: BOUML
- Eclipse Process Framework Composer
- da:Enterprise Architect (Sparx Systems)
- Innovator
- en:teraplan
- en:MagicDraw
- en: Model
- Pentaho
- en:PowerDesigner (Sybase)
- da:Systemarkitekt (rationel)
- SAP BI
- en:StarUML
- Paraply
- de:UML2 Project (Eclipse MDT)
- de:Visuelle paradigmer
Noter
- ↑ OMG XMI-websted Arkiveret 11. marts 2007.
- ↑ Stevens, P. XMI og MOF: en mini-tutorial. University of Edinburgh. . Dato for adgang: 8. september 2013. Arkiveret fra originalen 28. februar 2013. (ubestemt)
- ↑ Marchal B. Working XML: UML, XMI, and code generation, Part 2 . Hentet 8. september 2013. Arkiveret fra originalen 26. maj 2015. (ubestemt)