Pregunta

En el WSDL tengo 2 tipos, el mismo nombre, casos diferentes: LoginResponse y LoginResponse.

Si uso Xfire para generar las clases de Java, solo genera una clase, LoginResponse, Desechando el LOGINRESPONSE.

¿Cómo puedo encontrar esto?

<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>

¿Fue útil?

Solución

Los nombres declarados en WSDL son de hecho distingue entre mayúsculas y minúsculas, y es Legal para usar nombres que difieran solo en su caso.Sin embargo, tiene que ser una mala idea:

  • Seguramente, es una mala idea desde la perspectiva de la legibilidad.(Quiero decir, si estaba escribiendo un programa de Java, no declararía las variables acat y aCat en el mismo espacio de nombres. ¿Lo harías?)

  • Mientras WSDL distingue entre mayúsculas y minúsculas, las enlaces del lenguaje de programación deberán asignar nombres WSDL a los identificadores de programas insensibles a mayúsculas (por ejemplo, en Visual Basic I CREERAME), o pueden cambiarlos de manera para que los identificadores generados se ajusten a la programación.Convenciones de estilo del idioma.En cualquier caso, los nombres de WSDL que difieren solo en caso de letras pueden llevar a problemas.

imo La mejor solución a largo plazo para su problema es cambiar el WSDL para que no tenga elementos, tipos, etc. cuyos nombres difieran solo por caso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top