我們正在使用第三方wsdl文件,我們使用axis2生成java文件。現在我們遇到了一個問題,即不同文件中存在重複的元素,但具有相同的名稱空間。是否可以使用Axis2/XmlBeans管理重複的元素名稱
例子:
file1.wsdl => <xsd:element name="MyElementName">
file2.wsdl => <xsd:element name="MyElementName">
所以,結果是相同的文件從不同的WSDL文件,所以只有最後一個文件生成的實際文件生成後存在產生兩次。
我想知道這是否是正確的,或者它是否是wsdl文件的設計缺陷? 如果不是,我怎樣才能解決這個問題,使用axis2?
編輯
好了,我發現我可以用不同的封裝爲類,所以我現在已經
com.package.MyElementName
com.package.ext.MyElementName
但是,它仍然不起作用,因爲軸(或XMLBeans的)給一個標誌我錯了上課。
看看這個例子。我以爲這會工作,但這一翻譯我得到一個ClassCastException
java.lang.ClassCastException:com.package.MyElementName.impl.MyElementNameDocumentImpl不能轉換到com.package.ext.MyElementNameDocument
com.mypackage.ext.MyElementNameDocument doc1 =
com.mypackage.ext.MyElementNameDocument.Factory.newInstance();
doc1.addNewMyElementName();
com.mypackage.ext.MyElementNameDocument doc2 =
com.mypackage.ext.MyElementNameDocument.Factory.parse(doc1.toString());
編輯 -
好的,我在網上找到了真實的例子,所以我不妨展示真實的例子。
http://dtd.cobaltgroup.com/STAR/5.2.4/WSDL/Templates/
其中許多人有這兩個
http://dtd.cobaltgroup.com/STAR/5.2.4/WSDL/Templates/GetServiceProcessingAdvisory.wsdl http://dtd.cobaltgroup.com/STAR/5.2.4/WSDL/Templates/GetStandardCodes.wsdl
由於你可以看到,他們都有元素ProcessMessage。希望這可以澄清一些事情。
</xsd:complexType>
<!--Global Elements used by the Bindings--><xsd:element name="ProcessMessage">
<xsd:annotation>
<xsd:documentation source="http://www.starstandard.org">
Process Message Input
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="payload"
type="starws:GetServiceProcessingAdvisoryPayload" minOccurs="0"
maxOccurs="1"
form="qualified"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!--Global Elements used by the Bindings--><xsd:element name="ProcessMessage">
<xsd:annotation>
<xsd:documentation source="http://www.starstandard.org">
Process Message Input
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="payload" type="starws:GetStandardCodesPayload"
minOccurs="0"
maxOccurs="1"
form="qualified"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
....
祺/約翰
非常感謝您的回答。我目前的做法是隔離每個wsdl,但我真的不喜歡它。我正在建立一個客戶端,我不希望每個「wsdl」都是獨立的jvm,它非常適合我們。我可能能夠使用不同的類加載器,但它仍然很糟糕... 無論如何,我會嘗試與一些「標準」人員取得聯繫,並就此向他們提供一些反饋。 – jrask