2012-04-18 142 views
1

我有一個工作流web服務,其中有多個活動公開爲servicemethods。這些服務方法有各種參數。在Java中,我需要知道這些參數是什麼。用Java讀取XSD文件

所以我覺得有一個XSD架構,我應該能夠獲取我想知道的信息。有沒有辦法從Java中的XSD文件中讀取元素?我的XSD基本上是這樣的:

<xs:element name='servicemethod'> 
    <xs:complexType> 
     <xs:sequence><xs:element name='parameterIWantToKnow'/></xs:sequence> 
    </xs:complexType> 
</xs:element> 

在Java中,我知道了「servicemethod」,但我想知道嵌套在此servicemethod元素的元素名稱。

還是有像解析XML到JSON的東西,因爲我之前用Java中的JSON做了這樣的事情。

任何幫助非常感謝!

回答

0

它取決於你想要對數據做什麼(「消耗」,它不是很明確......)。 XML Schema是作爲一組XML文檔編寫的,爲了理解它,您通常需要集合中的所有文檔。要使用架構中的信息來回答合理的問題,比如「段落元素是否可以包含另一個段落元素?」,您將確實希望從編譯的模式(所謂的模式組件模型)開始工作,而不是從原始XML 。有一個用於執行此操作的Xerces API,稱爲XSOM,或者Saxon-EE產品具有一個工具,用於生成模式組件模型的XML表示,該模型可以使用XPath或XQuery進行處理。

+0

我的回答是長是註釋,所以請看到我的在帖子上回答。謝謝 – user1281146 2012-04-19 08:57:12

+0

我編輯了我原來的問題! – user1281146 2012-04-19 09:21:34

1

謝謝邁克爾。

也許我的問題有點混亂。但要更明確:我有一個蠕蟲,在IIS中作爲服務託管。我所有的工作流檢索活動都作爲Web服務操作公開。但是所有這些操作都有參數,現在在Java中我想知道這些參數是什麼。所以我想,通過閱讀XSD文件,我將能夠檢索這些名稱?因爲我的XSD就是這樣的:

<xs:element name='servicemethod'> 
    <xs:complexType> 
     <xs:sequence><xs:element name='parameterIWantToKnow'/></xs:sequence> 
    </xs:complexType> 
</xs:element>. 

我知道在Java中servicemethod名字,現在我想知道嵌套在此servicemethod元素的元素名稱。順便說一下,我的XSD只能通過URL訪問,而不是我的電腦上的文件。

順便說一句,我真的neiter一個Java專家或XML專家,所以很抱歉要問的東西,可能不有意義的你..

+1

你可以編輯你的原始問題,btw – necromancer 2012-04-19 09:00:29

+0

順便說一句,只有通過URL可用的XSD應該沒有問題,我只是意識到一個簡單的獲取請求就足以獲取文檔的內容。 – user1281146 2012-04-19 09:06:00

+0

謝謝,agks mehx,將做。 – user1281146 2012-04-19 09:06:42