2009-09-29 47 views
1

我需要使用內置的java org.w3c.dom或符合一組XSD文件的jdom包來創建XML文檔。 XSD文件相似但不相同。實質上,我需要根據動態給予我的XSD創建XML文件。使用XSD以編程方式創建XML文檔

什麼是最好的方式來做到這一點。我已經檢查過Validator包,它沒有任何特性,如給定上下文節點上的可能元素的向前看或迭代器。

理想情況下,我正在尋找一種SAX類型的架構,當我被要求以上下文自由的方式提供時,我實現了一個元素。發動機應該組裝並在最後給我dom樹。

這個車輪是否已經發明瞭?

謝謝..

回答

1

org.w3c.dom對XML架構的支持。對於JDom,可以使用模式驗證的一個文件,但不支持構建文件。

你有兩個選擇:

  1. 使用JDOM讀取架構,分析,並根據該XML文檔生成一個文件(的模式始終是一個有效的XML文檔,太)。

  2. 您可以使用像Castor這樣的XML映射器。 Castor可以讀取Schema並生成一組Java類,使您可以生成與所述模式匹配的文檔。

後一種方法可能不會工作你的情況這麼好,因爲除非它們是同一個文件中定義蓖麻會產生類似的XSD結構不同的Java類,所以你不能輕易重用的通用代碼。解決方法是讓Castor生成代碼,然後編寫腳本或類似代碼將XSD的公共部分複製/合併到同一個Java包中。

+0

感謝您的回覆。我熟悉蓖麻,所以我相當肯定它不適合我的要求。也許JDom是要走的路。 我很好奇NetBeans插件,XMLSpy,Oxygen等XML編輯器如何能夠提供上下文敏感的提示和預見。我希望有一個開源的庫/項目可以做到這一點。 – 2009-09-29 20:12:57

+0

獲取Netbeans或Eclipse XML編輯器的源代碼並查看是沒有問題的。 – 2009-09-30 07:22:33

1

我目前正在解析一個XSD,並且不是創建一個XML文檔,而是創建其他部分。我發現XSOM非常有用。看看this簡短的小教程,因爲它不是很明顯,如何馬上使用它。

一旦你掌握了它,庫本身並不難使用,並且你可以獲得XSD中的所有信息,即可用於生成XML文件的屬性,限制和元素。

+0

謝謝,這與我所尋找的非常接近。 – 2009-11-18 03:56:58

相關問題