2010-02-28 49 views
6

我有一個WSDL,其中包含3個模式,它是「types」元素。架構沒有在外部XSD中定義,而是在types元素中定義。JAXB定製 - WSDL和schemaLocation中的多個模式

我想定製架構號2內的元素並更改它的名稱以避免衝突。

所以在schemaLocation中,我該怎麼做?儘管製作的問題,我必須這樣做的方法:

schemaLocation="../wsdl-files/mywsdl.wsdl#types?schema2"> 
    ... 
    <jxb:bindings node="some xpath 

,但我不是一個誰發現了它,但誰不是跟我工作了我的一個同事。即使我瞭解它,是否有資源可以找到它的解釋?一個鏈接或一本書?某處我可以找到其他例子。

我的問題是schemaLocation值(../ wsdl-files/mywsdl.wsdl#types?schema2)而不是xpath。我想知道在WSDL內引用模式的所有可能性。我需要一個關於這個或某個東西的文檔。

非常感謝您

+0

我的問題是的schemaLocation值(../的WSDL文件/ mywsdl.wsdl #types?schema2)而不是xpath等。我想知道在WSDL內部引用模式的所有可能性。我需要一個關於這個或某個東西的文檔。 再次感謝 – DaTroop 2010-02-28 14:22:55

+0

您使用什麼工具綁定WSDL? – skaffman 2010-02-28 14:28:50

+0

你應該編輯你的問題,並把你的評論的內容作爲一個「更新:」部分。然後刪除評論。 – 2010-02-28 14:51:28

回答

2

的JAXB日2.1版增加了對[架構元件標號]支持[1],這在理論上允許你象徵性地引用模式組件,而不是通過他們的文件的位置和XPath位置。原則上,使用起來更好,但我從未使用過它。然而,我不確定這是多麼廣泛的支持。除了該博客文章以外,其他任何地方都沒有提及它。它確實提到它是JAXB 2.1提出的規範的一部分,所以如果通過了,它應該由每個JAXB 2.1實現來實現,包括Java6。不過,它有可能實際上並沒有添加到規範中。

+0

謝謝你!這看起來不錯。 但你有什麼描述這些: #types?schema2 謝謝! – DaTroop 2010-03-01 11:30:24

+1

@DaUltimateTrooper:SCD的要點是您不需要在綁定自定義中指定模式位置,您可以按名稱引用模式元素。 – skaffman 2010-03-03 00:04:49

+1

從我發現的情況來看,SCD仍然沒有得到官方的支持,但是如果使用'-extension'選項,Sun的xjc將會使用它,而像CXF這樣的依賴工具也可以使用它。語法比XPATH更難挖掘,但它可以工作。 – 2012-06-07 13:34:44

1

有類似的問題(共同名稱類型中的五個模式),並以某種方式沒有讓SCD正常工作。我的解決辦法如下:

custombinding.xml:在Ant構建文件

<jxb:bindings version="2.1" 
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 

    <jxb:bindings schemaLocation="file:wsdlfile.wsdl" node="*/xs:schema[1]"> 
     <jxb:schemaBindings> 
      <jxb:package name="my.custom.package"/> 
     </jxb:schemaBindings> 
    </jxb:bindings> 
</jxb:bindings> 

XJC電話:

<target name="xjc_generate"> 
    <exec executable="xjc" > 
     <arg value="-wsdl" /> 
     <arg value="${wsdl.base}/service/wsdlfile.wsdl" /> 
     <arg value="-d" /> 
     <arg value="${dir.src}" /> 
     <arg value="-b" /> 
     <arg value="${wsdl.base}/service/custombinding.xjb" /> 
    </exec> 
</target> 
相關問題