我正在使用EMF,我从XSD创建了我的ecore。
我注意到编辑器保存的XML有元素DocumentRoot,它不是我原来的XSD的一部分。我可以以某种方式不生成它,因此它不会出现在编辑器的XML文件中吗?
伊
答案 0 :(得分:0)
如果您没有全球元素或 你的架构中的属性,然后你 不会获得文档根目录。但是 当然你的架构没有指定 单一的方式来写这个文件 case,它只定义了类型和 可以在另一个中使用的东西 架构。某些架构需要 声明一个全局元素 指定文档的根目录。
如果你的话,就会创建一个文档根目录 模特有一个,你正在使用 扩展的元数据选项 加载。文档根目录 与每个对应的功能 你的全球元素和 该文件的特殊功能 实际设置的root 反序列化将完全对应 到出现的根元素 序列化。运用 EObject.eContents()。get(0)on 文档根实例将返回 子文件的子EObject, 那个孩子的eContainmentFeature() 将对应您的全球 元件。
记住这一点很好 元素对应于那些特征 这些类型对应于分类器。 由于EClass对应于a 复杂类型,具有一个实例 EClass(复杂类型)不是 足够的信息来说明什么 应序列化为的元素; 这是由...决定的 eContainmentFeature(),这就是为什么一个 需要文档根来指定 根元素,因为没有 eContainer不可能有 有意义的eContainmentFeature()。
尝试mailing list。