diumenge, 31 de maig del 2009

deserialitzar .xmi


Bé si busqueu la sol·lució aquí, de moment, no la trobareu.

Que vull i necessito fer? doncs deserialitzar arxius .xmi (XML Metadata Interchange). Es a dir llegir aquest tipus d'arxius i crear els objectes respectius. Els arxius .xmi que tractaré contindràn models UML (Unified Modeling Language) i, per tant, els objectes seràn elements del llenguatge UML.

Un arxiu .xmi es pot llegir com un arxiu de text amb la classe "java.io.File" i segons el que llegim crear els objectes que siguin necessaris. Per això primer hauriem de crear les classes corresponents als elements de l'alfabet d'UML. I després crear tot de condicionals i demés per instanciar una o altra classe.

Per sort (suposadament) hi ha certes classes ja creades que ho fan per tu. Si més no això crec.
EMF (Eclipse Modeling Framework) proporciona llibreries per treballar en aquest sentit. En concret per deserialitzar els arxius .xmi hi ha una classe que s'anomena XMILoadImpl del package org.eclipse.emf.ecore.xmi.impl i que extén la classe XMLLoadImpl.

Al javadoc de les classes et diu:
  • XMILoadImpl: This class creates an XMIHandler rather than an XMLHandler so an XMI file can be loaded.
  • XMLLoadImpl: This class begins parsing with the given input stream using the XML deserializer.
Així que en principi fan el que necessito. Però com s'utilitzen. Aquí se m'escapa. No se molt bé com puc utilitzar aquestes classes.

idees?




Links:

Radio + not?es