WSDL Java 클래스 케이스 감도
문제
WSDL에서는 2 가지 유형, 동일한 이름, 다른 경우 : loginResponse 및 loginResponse.
XFIRIT를 사용하여 Java 클래스를 생성하면 하나의 클래스, LoginResponse, loginResponse를 삭제합니다.
어떻게이 주위를 얻을 수 있습니까?
<s:element name="LoginResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="LoginResult" type="tns:LOGINRESPONSE" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="LOGINRESPONSE">
<s:attribute name="Message" type="s:string" />
<s:attribute name="Token" type="s:string" />
<s:attribute name="DataFormat" type="s:string" />
<s:attribute name="Header" type="s:boolean" use="required" />
<s:attribute name="Suffix" type="s:boolean" use="required" />
</s:complexType>
. 해결책
WSDL에서 선언 된 이름은 실제로 대소 문자를 구분하고 있으며, 법적 을 사용하여 대소 문자에서만 다른 이름을 사용합니다.그러나 그것은 나쁜 생각이어야합니다 :
-
확실히 가독성의 관점에서 나쁜 생각입니다.(내면, Java 프로그램을 작성하는 경우 Variables
acat
및 동일한 네임 스페이스에서aCat
를 선언하지 않으려면?) -
WSDL은 대소 문자를 구분하지만 프로그래밍 언어 바인딩은 WSDL 이름을 대소 문자를 구분하지 않는 프로그램 식별자 (예 : Visual Basic i 믿음)에 매핑해야합니다. 또는 생성 된 식별자가 프로그래밍을 준수하도록 대소 문자를 갱신 할 수 있습니다.언어의 스타일 규칙.두 경우 모두 문자 케이스에서만 다른 WSDL 이름은 문제가 발생할 수 있습니다.
IMO 문제에 대한 최상의 장기적인 수정 사항은 WSDL을 변경하여 요소가 대소 문자가 다르게되는 요소, 유형 등이 없도록합니다.
제휴하지 않습니다 StackOverflow