문제

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을 변경하여 요소가 대소 문자가 다르게되는 요소, 유형 등이 없도록합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top