2017-03-01 51 views
0

我有一個項目,它有一個現有的WSDL文件,從中生成一些與ComplexTypes相對應的Java類。這幾個月來都運行良好,現在仍然如此。但我無法弄清楚它是如何決定用於生成的類的包。xjc如何確定用於生成的類的包?

我現在想爲類似的目的添加另一個WSDL,但是它的生成的類當然會在不同的包中。

我已經在所有XML文件中搜索「包」我已經在所有文件中搜索了現有的生成的類包名(僅在源文件中使用生成的類來查找它,這告訴我我拼寫正確)。包名不會出現在指定xjc插件和目標的pom.xml中的任何位置。

它可能工作,如果我只是試了一下,但我寧願瞭解它是如何工作的,並減少亂丟我的工作區的一部分與生成的類的風險。 XJC(或者Maven或者其他人)會在哪裏獲得包名?

回答

1

它將結合xsd相對於src文件夾和您的名稱空間的位置。

例如,如果你的命名空間是http://www.w3.org/2005/Atom你的軟件包將是org.w3._2005.atom。

它將添加到此XSD的包。

如果您使用可指定的maven插件,請參閱http://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/example_xjc_basic.html,您可以覆蓋此內容。

+2

更具體地說,在wsdl的「schema」標記中,「targetNamespace」值將被轉換爲包名稱。名稱空間的域名部分將顛倒其元素,並將值的其他部分連接起來:「http://x.y.z/a/b」將成爲「z.y.x.a.b」包。 – arcy