2012-03-13 31 views
0

我希望能夠以編程方式讀取XSD,提示用戶輸入所需元素的值,然後生成相應的XML字符串。我不希望該實現綁定到特定的XSD定義,而是要能夠讀取並提示任何提供的XSD。它應該獲取元素的名稱並要求輸入適當的類型(int,string等)。Java中對XSD的編程檢查

我發現很多地方解釋如何讀取XSD並使用它來驗證提供給應用程序的某段XML。然而,我沒有找到任何方法來找出什麼元素被定義,什麼類型和什麼屬性。我發現SchemaFactorySchema,但沒有辦法獲得有關該模式的任何信息,只是如何使用它進行驗證。有誰知道從模式中獲取元素信息的方法嗎?

回答

1

我不知道如果我明白你想要做的,但認爲這正是:

的XSD是XML文檔本身並沒有對XSD文檔的XSD。

因此,將XSD解析爲正常的XML文檔並嘗試提取所需的信息。

您甚至可以使用提到的XSD XSD生成JAXB類。

+0

你可以展示一個這樣的小例子,或者將我鏈接到顯示它的資源?我的google-fu今天顯得虛弱,我一直無法找到有用的東西。 – tdimmig 2012-03-13 14:20:38

+0

我從XSD中找到了用於生成的JAXB類的xjc,但是可以在運行時完成嗎? – tdimmig 2012-03-13 14:46:18

+0

XSD只有一個XSD,因此您可以在編譯時生成類,然後在運行時將它們用作_any_ XSD的對象模型 – Puce 2012-03-13 15:25:49