2014-10-16 88 views
1

我花了幾個小時尋找這個,但我找不到任何答案... 我有一個XSD文件(由另一個源給出),我試圖創建一個符合XML文件接着就,隨即。我已將所有數據準備好用於數據結構。我需要做的就是按照XSD的方式將數據導出爲XML。那可能嗎?閱讀XSD並創建相應的XML

我不想將XSD導出爲XML,既不能驗證XML也不能解析XML。我從頭開始,我讀了XSD,並基於此,我試圖通過將我的數據結構映射到來自XSD的允許元素來創建XML。

概念上,它似乎可行....但是,我還沒有找到任何答案。任何想法和建議(最好在Python 2中)都是值得歡迎的。

+0

太寬了。當然有可能,一些工具可以做到這一點。你在尋找一個程序化的方法嗎?你只需要一個實例嗎?你想編程一個這樣做的工具嗎?等等 – lexicore 2014-10-18 18:33:29

+0

我正在尋找python 2中的任何方法,我將從XSD文件中將項目與我的數據結構「鏈接」,並最終生成最終的XML文件。當然,我需要循環我的數組中的一些單元格。我只是試圖避免編寫將打開和關閉XML元素並添加屬性的方法。這是「硬」的方式,當然不是最有效的。假設我有XSD 中的元素,並且我有NOISE = [82,85,86]。不知何故,我應該能夠將該列表傳遞給元素,並且具有 82等等。現在更好嗎? – Christos 2014-10-19 20:48:24

+0

所以你基本上想要像Java的JAXB(http://www.vogella.com/tutorials/JAXB/article.html)或我的Jsonix for JavaScript(https://github.com/highsource/jsonix)。檢查這個問題http://stackoverflow.com/questions/1072853/how-to-convert-xsd-to-python-class和http://sourceforge.net/projects/pyxb/ – lexicore 2014-10-19 21:26:22

回答

0

我把它整理出來,我回復自己的其他好處。

正如提出的那樣,generateDS是解決問題的辦法。 從第5章,命令

python generateDS.py -o people.py -s peoplesubs.py people.xsd 

開始讀取XSD文件,並創建幾個大類和小類。它會產生很多數據結構和getter和setter方法獲取和使用數據:) 如果存在與XSD符合任何XML文件,就可以馬上使用

import people 
rootObject = people.parse('people.xml') 

whithin代碼讀取。更多信息在第12章中給出。 上述類還提供了將數據導出爲XML格式的方法。 文檔的級別很好,強烈建議將其用於任何未來的項目。

玩得開心, C.