2009-11-10 38 views
1

我正在使用EMF,並且我從XSD創建了我的ecore。如何不將DocumentRoot寫入XML

我注意到,由編輯器保存的XML具有元素DocumentRoot,它不是我原來的XSD的一部分。我可以以某種方式不生成它,所以它不會在編輯器的XML文件中?

回答

0

如果沒有全局元素或在您的架構 屬性,那麼你 不會得到一個文檔根目錄。但是 當然你的模式沒有指定一個 單一的方式來寫這個 的案例,它只是定義了類型和 的東西,可以在另一個 模式中使用。某些模式將需要 聲明一個全局元素,以便 指定文檔的根。

來源:dev.eclipse.org

如果您 模型有一個文檔根目錄中創建和你在 裝載使用 擴展元數據選項。文檔根目錄具有 功能對應於每個 全局元素,而這實際上設置時 反序列化將完全對應 於出現在 序列化的根元素的文檔 根 特定功能。使用 EObject.eContents()。在 文檔根實例得到(0)將返回文檔根目錄, 和那個孩子的eContainmentFeature() 會符合您的全球 元素的 孩子EObject。

請務必記住, 元素對應於 類型與分類符相對應的功能。 由於一個的EClass對應於 複雜類型,具有 的EClass(複雜類型)的實例是不 足夠的信息來說什麼 元件應被序列化爲; 該真實由 eContainmentFeature()確定,所以這就是爲什麼需要一個 文檔根指定 根元素,因爲沒有一個 eContainer不能有一個 有意義eContainmentFeature()。

來源:dev.eclipse.org

嘗試mailing list