Altova XMLSpy 2024 Enterprise Edition

Validating WSDL Files

Home Prev Top Next

A WSDL document is not only a WSDL document but also an XML document. As a result, it can be validated as XML and also as WSDL. The following list contains important information about WSDL validation behavior in the Enterprise and Professional Editions of XMLSpy.

 

The Professional Edition performs simple schema validation, that is, it treats the WSDL file as an XML file and validates it according to the schema defined at http://schemas.xmlsoap.org/wsdl/.

The Enterprise Edition provides WSDL validation that goes beyond the XML validation provided by the Professional Edition. It does not validate against http://schemas.xmlsoap.org/wsdl/. Instead, it uses the document https://www.altova.com/specs_wsdl.html#_document-s as well as its own logic. This provides additional validation information in the context of WSDL. Thus it can happen that a WSDL file is valid in the Professional Edition, but not valid in the Enterprise Edition (see example below).

There is a difference between http://schemas.xmlsoap.org/wsdl/ and https://www.altova.com/specs_wsdl.html#_document-s. The former schema does not contain definitions of extensibility elements, which are defined in the WSDL specification. It appears that this shortcoming is an error in the official W3C schema; the shortcoming is addressed in the latter schema (used by Enterprise Edition).

Since Professional Edition uses http://schemas.xmlsoap.org/wsdl/ for validation, extensibility elements will be reported as invalid in Professional Edition but valid in Enterprise Edition (which uses https://www.altova.com/specs_wsdl.html#_document-s).

Since the W3C schema is an official schema provided by the W3C working group, any errors in them are, unfortunately, beyond Altova's control.

 

Example

The following example is part of a WSDL file. Notice the element getCityTime that has been declared in the file. This element is mistakenly referenced as getCityTimes. The Enterprise Edition checks if elements that are referenced have previously been declared in the file, the Professional Edition does not. This file (assuming that the rest of the file is valid) would be found to be valid in the Professional Edition, but invalid in the Enterprise Edition (assuming that getCityTimes is not defined somewhere else in the file).

 

<s:element name="getCityTime">

  <s:complexType>

     <s:sequence>

        <s:element minOccurs="0" maxOccurs="1" name="city" type="s:string"/>

     </s:sequence>

  </s:complexType>

</s:element>

<s:element name="abc">

  <s:complexType>

     <s:sequence>

        <s:element ref="getCityTimes"/>

     </s:sequence>

  </s:complexType>

</s:element>

 

 

© 2017-2023 Altova GmbH