Previous Table of Contents Next


2.6 Example XM

   +owned

   CarOwnership

   +owner +family adoption



   familyFriendship

Figure 2-2 MOF model for a family



    The following XML stream represents an instance of the model in 2.5, “Example MOF Model .?

   <?xml version = "1.0"?> <XMI> <XMI.header> <XMI.model xmi.name = ‘familyPackage’ xmi.version = ‘1.1’/> </XMI.header>

    <XMI.content> <FamilyPackage xmi.id=’xmi-id-001’> <FamilyPackage.Family xmi.id=‘xmi-id-002’> <FamilyPackage.Family.familyName> The McDonalds </FamilyPackage.Family.familyName> <FamilyPackage.Family.address> 7 Main Street </FamilyPackage.Family.address> <FamilyPackage.Family.nuclear xmi.value=’false’/> <FamilyPackage.Family.migrants xmi.value=’true’/> <FamilyPackage.Family.familyFriends> <FamilyPackage.Family xmi.idref=’xmi-id-003’/> </FamilyPackage.Family.familyFriends> <FamilyPackage.Family.petFish> <FamilyPackage.Fish> <FamilyPackage.Fish.name> Wanda </FamilyPackage.Fish.name> <FamilyPackage.Fish.sex xmi.value=’female’/> </FamilyPackage.Fish> </Familypackage.Family.petfish> <FamilyPackage.Family.petDog> <FamilyPackage.Family.Dog xmi.idref=’xmi-id-007’/> </FamilyPackage.Family.petDog> </FamilyPackage.Family> <FamilyPackage.Family xmi.id=‘xmi-id-003’> <FamilyPackage.Family.nuclear xmi.value=’true’/> <FamilyPackage.Family.migrants xmi.value=‘false’/> <FamilyPackage.Family.address> 5 Main Street, Brisbane </FamilyPackage.Family.address> <FamilyPackage.Family.familyName> The Smiths </FamilyPackage.Family.familyName> <FamilyPackage.Family.naturalChild> <FamilyPackage.Person> <FamilyPackage.Person.name> Joan Smith </FamilyPackage.Person.name> <FamilyPackage.Person.age> 20 </FamilyPackage.Person.age> <FamilyPackage.Person.sex xmi.value=’female’/> </FamilyPackage.Person> </FamilyPackage.Family.naturalChild> <FamilyPackage.Family.naturalChild> <FamilyPackage.Person> <FamilyPackage.Person.name> Harry Smith </FamilyPackage.Person.name>

    <FamilyPackage.Person.age>

    17

    </FamilyPackage.Person.age>

    <FamilyPackage.Person.sex xmi.value=’male’/>

    </FamilyPackage.Person>

    </FamilyPackage.Family.naturalChild>

    <FamilyPackage.Family.adoptedChild>

    <FamilyPackage.Person>

    <FamilyPackage.Person.name>

    Dylan Smith

    </FamilyPackage.Person.name>

    <FamilyPackage.Person.age>

    12

    </FamilyPackage.Person.age>

    <FamilyPackage.Person.sex xmi.value=’male’/>

    </FamilyPackage.Person>

    </FamilyPackage.Family.adoptedChild>

    <FamilyPackage.Family.familyFriends>

    <FamilyPackage.Family xmi.idref=’xmi-id-002’/>

    </FamilyPackage.Family.familyFriends> </FamilyPackage.Family> <FamilyPackage.Person xmi.id=‘xmi-id-004’>

    <FamilyPackage.Person.sex xmi.value=’male’/>

    <FamilyPackage.Person.age>

    7

    </FamilyPackage.Person.age>

    <FamilyPackage.Person.name>

    Namdou Ndiaye

    </FamilyPackage.Person.name> </FamilyPackage.Person> <FamilyPackage.Person xmi.id=‘xmi-id-005’>

    <FamilyPackage.Person.sex xmi.value=’male’/>

    <FamilyPackage.Person.age>

    6

    </FamilyPackage.Person.age>

    <FamilyPackage.Person.name>

    Sharif Mbangwa

    </FamilyPackage.Person.name> </FamilyPackage.Person> <FamilyPackage.Person xmi.id=’xmi-id-006’>

    <FamilyPackage.Person.sex xmi.value=’male’/>

    <FamilyPackage.Person.age>

    3

    </FamilyPackage.Person.age>

    <FamilyPackage.Person.name>

    Miguel Aranjuez

    </FamilyPackage.Person.name> </FamilyPackage.Person> <FamilyPackage.Dog xmi.id=‘xmi-id-007’>

    <FamilyPackage.Dog.sex xmi.value=’male’/>

    <FamilyPackage.Dog.age>

    2 </FamilyPackage.Dog.age> <FamilyPackage.Dog.name>

    Spike </FamilyPackage.Dog.name> <FamilyPackage.Dog.breed>

    Irish Wolfhound

    </FamilyPackage.Dog.breed> </FamilyPackage.Dog> <FamilyPackage.Sponsorship>

    <FamilyPackage.Family xmi.idref=‘xmi-id-003’/> <FamilyPackage.Person xmi.idref=‘xmi-id-004’/> <FamilyPackage.Family xmi.idref=‘xmi-id-003’/> <FamilyPackage.Person xmi.idref=‘xmi-id-005’/> <FamilyPackage.Family xmi.idref=‘xmi-id-002’/> <FamilyPackage.Person xmi.idref=‘xmi-id-006’/>

    </FamilyPackage.Sponsorship>

    <FamilyPackage.CarOwnership> <FamilyPackage.Family xmi.idref=’xmi-id-002’/> <FamilyPackage.Car>

    <FamilyPackage.Car.Registration>

    755-BDL </FamilyPackage.Car.Registration> <FamilyPackage.Car.State>

    QLD </FamilyPackage.Car.State> <FamilyPackage.Car.Make>

    Mitsubishi Magna </FamilyPackage.Car.Make> <FamilyPackage.Car.Year>

    1992 </FamilyPackage.Car.Year> </FamilyPackage.Car> </FamilyPackage.CarOwnership> </FamilyPackage> </XMI.content> </XMI>

   Figure 2-3 An example XMI stream for two families

    As Figure 2-3 clearly demonstrates, the XMI/XML format is one that is neither succinct, nor easily readable or writable. Although the XMI standard is still under revision, the basic structure of the language and its ties with XML will not change and, as such, these human usability problems are likely to remain.