Xsd 如何在EMF-Ecore中映射xs:any?
我在xsd中有以下类型:Xsd 如何在EMF-Ecore中映射xs:any?,xsd,eclipse-emf-ecore,Xsd,Eclipse Emf Ecore,我在xsd中有以下类型: <xs:complexType name="VendorSpecificType"> <xs:sequence> <xs:any namespace="##any" processContents="skip" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> 用于在元模型中注入模型的代码已经过测试并正常工作。 如
<xs:complexType name="VendorSpecificType">
<xs:sequence>
<xs:any namespace="##any" processContents="skip" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
用于在元模型中注入模型的代码已经过测试并正常工作。
如果删除供应商标记,即使这个test.xml也会正确加载
我的问题是如何将xsd any映射到ecore类型以便可以加载它
更新:
调试之后,我用来将模型注入ecore模型的代码似乎不完整:extendedmetadata总是空的
// Load in metamodel
IReferenceModel metamodel = modelFactory.newReferenceModel();
injector.inject(metamodel, metamodelPath);
model = modelFactory.newModel(metamodel);
injector.inject(model, modelPath);
如何告诉它加载元数据?我添加了以下行
((EMFModelFactory) modelFactory).getResourceSet().getLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
在注入元模型之前
现在可以了
// Load in metamodel
IReferenceModel metamodel = modelFactory.newReferenceModel();
injector.inject(metamodel, metamodelPath);
model = modelFactory.newModel(metamodel);
injector.inject(model, modelPath);
((EMFModelFactory) modelFactory).getResourceSet().getLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);