Sitemap

How to use an XML schema definition embedded in an WSDL in BusinessWorks and BusinessWorks Container Edition

2 min readApr 27, 2025

--

It is possible for a WSDL definition to embed an XML schema definition (XSD) and it is also possible to use XML schemas defined in such WSDL in a BusinessWorks Mapper.

This can simply be done with the following:
. Open your Mapper Input Editor tab and click on the ‘Select Input Element’ button

Mapper Input Editor tab

. In the dialog box that opens check the ‘Include WSDL Inline Schema’ option

Schema selector dialog with Include WSDL Inline Schema option checked

. The XML Schema Definitions embedded in the WSDL definitions that are present in the project can now be selected

Example of a WSDL definition with an embedded XSD :

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://example.com/MyService"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.com/MyService">

<types>
<xsd:schema targetNamespace="http://example.com/MyService/types">
<xsd:element name="MyRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="inputString" type="xsd:string"/>
<xsd:element name="inputInteger" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:element name="MyResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="resultString" type="xsd:string"/>
<xsd:element name="resultInteger" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>

<message name="MyRequestMessage">
<part name="parameters" element="tns:MyRequest"/>
</message>

<message name="MyResponseMessage">
<part name="parameters" element="tns:MyResponse"/>
</message>

<portType name="MyPortType">
<operation name="MyOperation">
<input message="tns:MyRequestMessage"/>
<output message="tns:MyResponseMessage"/>
</operation>
</portType>

<binding name="MyBinding" type="tns:MyPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="MyOperation">
<soap:operation soapAction="http://example.com/MyService/MyOperation"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>

<service name="MyService">
<port name="MyPort" binding="tns:MyBinding">
<soap:address location="http://localhost:8080/MyService"/>
</port>
</service>

</definitions>

--

--

Emmanuel Marchiset
Emmanuel Marchiset

Written by Emmanuel Marchiset

I work as an Architect at TIBCO Software on Integration products. Opinions here are my own.

No responses yet