|
Re: Saving EObject to namespaceless XML file [message #380554 is a reply to message #380550] |
Fri, 11 May 2007 16:24 |
Ed Merks Messages: 33140 Registered: July 2009 |
Senior Member |
|
|
This is a multi-part message in MIME format.
--------------030602050407040200050807
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit
Marko,
Please use the EMF newsgroup for questions about EMF itself. I've added
it to the "to" list on the reply.
Have you looked at the generated XyzExample that's produced in the
*.tests project when you do "Generate Test Code"? Should the package
for this EObject be marked as a non-namespace package (using the
annotation for null namespace schemas described in
http://www.eclipse.org/modeling/emf/docs/overviews/XMLSchema ToEcoreMapping.pdf)
or does it normally have a namespace? If the later, then using the
support added in https://bugs.eclipse.org/bugs/show_bug.cgi?id=166127
here's a way to save and load without a namespace:
public static void main(String[] args)
{
// Create a resource set to hold the resources.
//
ResourceSet resourceSet = new ResourceSetImpl();
// Register the appropriate resource factory to handle all file
extentions.
//
resourceSet.getResourceFactoryRegistry().getExtensionToFacto ryMap().put
(Resource.Factory.Registry.DEFAULT_EXTENSION,
new LibraryResourceFactoryImpl()
{
@Override
public Resource createResource(URI uri)
{
XMLResource result = (XMLResource)super.createResource(uri);
ExtendedMetaData extendedMetaData =
new BasicExtendedMetaData()
{
@Override
public String getNamespace(EPackage ePackage)
{
return ePackage == LibraryPackage.eINSTANCE ? null
: super.getNamespace(ePackage);
}
@Override
protected boolean isFeatureNamespaceMatchingLax()
{
return true;
}
};
extendedMetaData.putPackage(null, LibraryPackage.eINSTANCE);
result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTEND ED_META_DATA,
extendedMetaData);
result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTEND ED_META_DATA,
extendedMetaData);
result.getDefaultSaveOptions().remove(XMLResource.OPTION_SCH EMA_LOCATION);
return result;
}
});
// Register the package to ensure it is available during loading.
//
resourceSet.getPackageRegistry().put
(LibraryPackage.eNS_URI,
LibraryPackage.eINSTANCE);
// If there are no arguments, emit an appropriate usage message.
//
if (args.length == 0)
{
System.out.println("Enter a list of file paths or URIs that
have content like this:");
try
{
Resource resource =
resourceSet.createResource(URI.createURI("http:///My.library"));
DocumentRoot documentRoot =
LibraryFactory.eINSTANCE.createDocumentRoot();
Library root = LibraryFactory.eINSTANCE.createLibrary();
documentRoot.setLibrary(root);
resource.getContents().add(documentRoot);
resource.save(System.out, null);
System.out.println();
ByteArrayOutputStream out = new ByteArrayOutputStream();
resource.save(out, null);
Resource resource2 =
resourceSet.createResource(URI.createURI("http:///My2.library"));
resource2.load(new ByteArrayInputStream(out.toByteArray()),
null);
resource2.save(System.out, null);
}
catch (IOException exception)
{
exception.printStackTrace();
}
}
Marko T. wrote:
> Hello folks,
> does anybody have an idea how to save an EObject to an xml file. The
> important thing here is, that the xml file must not have any namespace
> delarations/usages.
>
> Thanks in advance
>
> Greetings Marko
>
--------------030602050407040200050807
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-15"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Marko,<br>
<br>
Please use the EMF newsgroup for questions about EMF itself.
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Re: Saving EObject to namespaceless XML file [message #592573 is a reply to message #380550] |
Fri, 11 May 2007 16:24 |
Ed Merks Messages: 33140 Registered: July 2009 |
Senior Member |
|
|
This is a multi-part message in MIME format.
--------------030602050407040200050807
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 7bit
Marko,
Please use the EMF newsgroup for questions about EMF itself. I've added
it to the "to" list on the reply.
Have you looked at the generated XyzExample that's produced in the
*.tests project when you do "Generate Test Code"? Should the package
for this EObject be marked as a non-namespace package (using the
annotation for null namespace schemas described in
http://www.eclipse.org/modeling/emf/docs/overviews/XMLSchema ToEcoreMapping.pdf)
or does it normally have a namespace? If the later, then using the
support added in https://bugs.eclipse.org/bugs/show_bug.cgi?id=166127
here's a way to save and load without a namespace:
public static void main(String[] args)
{
// Create a resource set to hold the resources.
//
ResourceSet resourceSet = new ResourceSetImpl();
// Register the appropriate resource factory to handle all file
extentions.
//
resourceSet.getResourceFactoryRegistry().getExtensionToFacto ryMap().put
(Resource.Factory.Registry.DEFAULT_EXTENSION,
new LibraryResourceFactoryImpl()
{
@Override
public Resource createResource(URI uri)
{
XMLResource result = (XMLResource)super.createResource(uri);
ExtendedMetaData extendedMetaData =
new BasicExtendedMetaData()
{
@Override
public String getNamespace(EPackage ePackage)
{
return ePackage == LibraryPackage.eINSTANCE ? null
: super.getNamespace(ePackage);
}
@Override
protected boolean isFeatureNamespaceMatchingLax()
{
return true;
}
};
extendedMetaData.putPackage(null, LibraryPackage.eINSTANCE);
result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTEND ED_META_DATA,
extendedMetaData);
result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTEND ED_META_DATA,
extendedMetaData);
result.getDefaultSaveOptions().remove(XMLResource.OPTION_SCH EMA_LOCATION);
return result;
}
});
// Register the package to ensure it is available during loading.
//
resourceSet.getPackageRegistry().put
(LibraryPackage.eNS_URI,
LibraryPackage.eINSTANCE);
// If there are no arguments, emit an appropriate usage message.
//
if (args.length == 0)
{
System.out.println("Enter a list of file paths or URIs that
have content like this:");
try
{
Resource resource =
resourceSet.createResource(URI.createURI("http:///My.library"));
DocumentRoot documentRoot =
LibraryFactory.eINSTANCE.createDocumentRoot();
Library root = LibraryFactory.eINSTANCE.createLibrary();
documentRoot.setLibrary(root);
resource.getContents().add(documentRoot);
resource.save(System.out, null);
System.out.println();
ByteArrayOutputStream out = new ByteArrayOutputStream();
resource.save(out, null);
Resource resource2 =
resourceSet.createResource(URI.createURI("http:///My2.library"));
resource2.load(new ByteArrayInputStream(out.toByteArray()),
null);
resource2.save(System.out, null);
}
catch (IOException exception)
{
exception.printStackTrace();
}
}
Marko T. wrote:
> Hello folks,
> does anybody have an idea how to save an EObject to an xml file. The
> important thing here is, that the xml file must not have any namespace
> delarations/usages.
>
> Thanks in advance
>
> Greetings Marko
>
--------------030602050407040200050807
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-15"
http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Marko,<br>
<br>
Please use the EMF newsgroup for questions about EMF itself.
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Powered by
FUDForum. Page generated in 0.09373 seconds