【问题标题】:Parse XML in string format using EMF使用 EMF 以字符串格式解析 XML
【发布时间】:2012-11-18 12:49:25
【问题描述】:

我使用 EMF 来生成基于 XSD 的访问函数。我可以在生成的示例中看到如何从磁盘文件加载输入。但是,我要解析的 XML 存储在一个字符串中。有什么方法可以在不将字符串转储到文件中然后再读回的情况下继续进行?

【问题讨论】:

    标签: java xml eclipse-emf


    【解决方案1】:

    这是一个示例方法,它接收你的 modelString 和解析 xml 并返回 EObject 的 ECorePackage 实例。

    public static EObject loadEObjectFromString(String myModelXml, EPackage ePackage) throws IOException { 
        // Create a ResourceSet
        ResourceSet resourceSet = new ResourceSetImpl();
        // register XMIRegistryResourceFactoryIml
        resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put
        (Resource.Factory.Registry.DEFAULT_EXTENSION, 
         new XMIResourceFactoryImpl());
         // register your epackage to the resource set so it has a reference to your ecore
         // you can get an instance to your epackage by calling YourEPackageClass.getInstace();
        resourceSet.getPackageRegistry().put(ePackage.getNsURI(), ePackage);
        Resource resource = resourceSet.createResource(URI.createURI("*.modelextension"));
        resource.load(new URIConverter.ReadableInputStream(myModelXml), null);
        // return the root model object and there you have it, all you need is to
        // cast it to the right EObject based on your model 
        return resource.getContents().get(0);
    }
    

    【讨论】:

      猜你喜欢
      • 2013-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 2014-11-21
      • 1970-01-01
      相关资源
      最近更新 更多