[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| RE: [emf-dev] Loading using streams | 
I am using data.xml as temporary thing to mimic my run time requirement.
In the real application, XML comes as a string, thus I am using
bytearraystream. 
-----Original Message-----
From: emf-dev-admin@xxxxxxxxxxx [mailto:emf-dev-admin@xxxxxxxxxxx] On
Behalf Of Frank Budinsky
Sent: Tuesday, January 20, 2004 1:25 PM
To: emf-dev@xxxxxxxxxxx
Subject: Re: [emf-dev] Loading using streams
Boris,
You do have a resource (data.xml) and you're loading it with an EMF
Resource (XMLResource). Your only problem is that a URI should have been
passed to the XMLResourceImpl's constructor.
That said, I don't see why you're going through all this extra work of
creating a ByteArrayInputStream. You should just load it in the usual
EMF
way:
    Resource resource = resourceSet.getResource(URI.createFileURI(new
File("data.xml")), true);
I'd recommend reading chapter's 2 and 13 of the EMF book
(http://www.amazon.com/exec/obidos/ASIN/0131425420/ref%3Dnosim/fc-20/103
-9904445-8667840).
Frank.
P.S., as I said in my other reply, please post these questions to the
emf
newsgroup, not here.
 
                      "Lublinsky,Boris
                      S."                      To:
<emf-dev@xxxxxxxxxxx>
                      <Boris.Lublinsky@        cc:
                      CNA.com>                 Subject:  [emf-dev]
Loading using streams                                                  
                      Sent by:
                      emf-dev-admin@ecl
                      ipse.org
 
 
                      01/20/2004 10:52
                      AM
                      Please respond to
                      emf-dev
 
 
      I was using emf serialization in my client code:
                                  java.lang.String data = null;
                                  try{
                                          // Read in data file and
                  stringify it
                                          File inpf = new
File("data.xml");
                                          FileInputStream fis = new
                  FileInputStream(inpf);
                                          byte [] b = new byte[5000];
                                          int len = fis.read(b);
                                          data = new
                  java.lang.String(b,0,len);
                                  }
                                  catch(Exception e){}
                                  // Create input stream for resource
                                  ByteArrayInputStream ins = new
                  ByteArrayInputStream(data.getBytes());
                                  // Create resource
                                  Resource resource = new
                  XMLResourceImpl();
                                  // Create XMLMap, used for proper XML
                  mapping. This is an empty Map,
                                  // it is using generated annotations
for
                  proper streaming
                                  XMLResource.XMLMap xmlMap = new
                  XMLMapImpl();
                                  // Create options map for loading
                                  Map options = new HashMap();
                                  // Populate options
                  options.put(XMLResource.OPTION_XML_MAP,xmlMap);
                                  // Initialize package, required for
                  putting package in the registry
                                  CnaPackage cPackage =
                  CnaPackageImpl.init();
                                  try{
                                          resource.load(ins,options);
                                  }
                                  catch(Exception e){
                                          e.printStackTrace();
                                  }
                                  // Get the root element from the
resource
                                  Message message =
                  (Message)(resource.getContents().get(0));
                  This seems to be fairly straightforward code, but it
does
                  not work, because I am not using resource, thus not
                  defining URL. I have two options. Either to create
                  resource just for the sake of URL or modify
XMLHandler,
                  XMLLoadImpl and XMLResourceImpl to check for nulls. Is
it
                  a bug? Feature? What is your recommendation?
_______________________________________________
emf-dev mailing list
emf-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/emf-dev