我最近轉移到一個項目,我發現有一個特定的需求來將一些數據存儲爲XML。Castor生成的類(XML編組) - XSD不可用
之前的團隊使用Castor爲Marshall和Unmarshall生成的類數據。
我現在有一個新的要求,那就是要求我爲這個XML添加一些額外的(但是可選的)字段。然而,我意識到之前的團隊據說從未在XSD中檢查過,我也無法與他們聯繫。
XSD肯定是龐大而複雜的,因爲它負責生成大約50個類。因此,再次編寫XSD將容易出錯,並且可能最終導致現在創建與舊XML兼容的XML。
我想到的另一種選擇是使用XML Spy之類的工具,並嘗試從XML中反向設計XSD,但是這聽起來有點困難,因爲我需要逆向工程20個奇數XML來生成XSD,然後將所有這些XSD合併爲一個,因爲XML有幾個可選部分。這種方法仍然有可能出現錯誤。
我能想到的最好的選擇是將這些類逆向工程到一個XSD - 但是Castor應該不支持這個特性。所以我沒有辦法將這些Castor生成的類轉換回XSD!雖然由Castor生成的類確實有一些Castor特定的方法,但如果Castor特定的方法被忽略,它們本質上是Pojos!
我們有什麼建議可以從java類獲取或生成XSD嗎?我們是否有其他建議來解決我所討論的問題?
謝謝。