Web Services - Architektur, Technologie(n), Anwendung

Web Services - Architektur, Technologie(n), Anwendung

Posts 1-2 of 2
  • Oliver Libutzki
    Oliver Libutzki
    The company name is only visible to registered members.
    WSDL-Validierung
    Hallo, ich möchte gern basierend auf dem WSDL-Schema (Namespace: http://schemas.xmlsoap.org/wsdl/) einen Web Service erstellen. Diesen möchte ich validieren gegen die Schema-Defintion. Ich nutze XMLSpy 2006.

    In der Schema-Defintion heißt es unter anderem:
    <complexType name="definitionsType">
    <complexContent>
    <extension base="wsdl:documented">
    <sequence>
    <element ref="wsdl:import" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="wsdl:types" minOccurs="0"/>
    <element ref="wsdl:message" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="wsdl:portType" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="wsdl:binding" minOccurs="0" maxOccurs="unbounded"/>
    <element ref="wsdl:service" minOccurs="0" maxOccurs="unbounded"/>
    <any namespace="##other" minOccurs="0" maxOccurs="unbounded">
    <annotation>
    <documentation>to support extensibility elements </documentation>
    </annotation>
    </any>
    </sequence>
    <attribute name="targetNamespace" type="anyURI" use="optional"/>
    <attribute name="name" type="NMTOKEN" use="optional"/>
    </extension>
    </complexContent>
    </complexType>

    Da es sich um eine Sequence handelt müssen die Elemente auch in genau dieser Reihenfolge vorkommen.

    Wenn ich jetzt in der WSDL aber z.B. portType vor message angebe, bekomme ich bei der Validierung keinen Fehler. Hat jemand eine Idee, woran das liegen kann?

    Vielen Dank im voraus!
  • Sascha Smits
    Sascha Smits
    The company name is only visible to registered members.
    Re: WSDL-Validierung
    Hi,

    das beim Validieren keine Fehlermeldung kommt, liegt vermutlich daran das du nicht über den SOAP Server validierst, sondern verm. über einen WSDL Validator. Sofern du eine Typkonforme Programmiersprache für die Entwicklung des SOAP Servers verwendest, kannst du die Richtigkeit deiner WSDL's über den Server Validieren.

    Probleme macht meist nur Microsoft .NET.
    Also mit anderen Worten wenn du einen SOAP Service in Java schreibst und von .NET aus invoken willst,
    bekommst du häufig Probleme mit der WSDL Kompatibilität weil beispielsweise im WSDL die Abkürtzung "tns" für "typens" verwendet wurde.

    Hoffe ich konnte dir damit ein wenig weiter helfen.