Frage

In der WSDL habe ich zwei Typen, gleichen Namen, unterschiedliche Fälle:LoginResponse und LOGINRESPONSE.

Wenn ich XFire verwende, um die Java -Klassen zu generieren, generiert es nur eine Klasse, LoginResponse, wodurch die LoginResponse verworfen wird.

Wie kann ich das umgehen?

<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>
War es hilfreich?

Lösung

Bei in WSDL deklarierten Namen wird in der Tat zwischen Groß- und Kleinschreibung unterschieden, und das ist auch der Fall legal Namen zu verwenden, die sich nur in der Groß- und Kleinschreibung unterscheiden.Allerdings muss es eine schlechte Idee sein:

  • Aus Sicht der Lesbarkeit ist das sicherlich eine schlechte Idee.(Ich meine, wenn Sie ein Java-Programm schreiben würden, würden Sie keine Variablen deklarieren acat Und aCat im selben Namensraum.Würdest du?)

  • Während bei WSDL die Groß-/Kleinschreibung beachtet wird, müssen Programmiersprachenbindungen WSDL-Namen Programmbezeichnern zuordnen, bei denen die Groß-/Kleinschreibung nicht beachtet wird (z. B.in Visual Basic, glaube ich), oder sie verstümmeln sie möglicherweise in Groß- und Kleinschreibung, sodass die generierten Bezeichner den Stilkonventionen der Programmiersprache entsprechen.In beiden Fällen können WSDL-Namen, die sich nur in der Groß-/Kleinschreibung unterscheiden, zu Problemen führen.

Meiner Meinung nach besteht die beste langfristige Lösung für Ihr Problem darin, die WSDL so zu ändern, dass Sie keine Elemente, Typen usw. haben, deren Namen sich nur je nach Groß- und Kleinschreibung unterscheiden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top