Worked Example

The following WSDL generates a Business Object Model file called com.example.example1.bom.:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:tns1="http://example.com/example1"
 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://example.com/example1">
 <wsdl:types>
  <xsd:schema targetNamespace="http://example.com/example1">
   <xsd:complexType name="Person">
    <xsd:sequence>
     <xsd:element name="firstName" type="xsd:string" />
     <xsd:element name="lastName" type="xsd:string" />
     <xsd:element name="id" type="xsd:string" />
     <xsd:element name="category" type="xsd:string" />
    </xsd:sequence>
   </xsd:complexType>
  </xsd:schema>
 </wsdl:types>
 <wsdl:message name="myOutputMessage">
  <wsdl:part name="person" type="tns1:Person" />
 </wsdl:message>
 <wsdl:message name="myInputMessage">
  <wsdl:part name="lastName" type="xsd:string" />
  <wsdl:part name="id" type="xsd:boolean" />
 </wsdl:message>
 <wsdl:portType name="GetPersonData">
  <wsdl:operation name="my_operation">
   <wsdl:input message="tns1:myInputMessage" name="myInputMessage" />
   <wsdl:output message="tns1:myOutputMessage" name="myOutputMessage" />
  </wsdl:operation>
  </wsdl:portType>
</wsdl:definitions>

The Business Object Model file contains the following Business Object Model entities:

Note the following:

  • The GetPersonData class represents the <wsdl:portType> construct in the original WSDL.
  • The <wsdl:operation name=”my_operation”> construct is represented by the “my_operation” UML operation in class GetPersonData.
  • The <wsdl:input> and <wsdl:output> constructs are represented by the input and return parameter type respectively, of the ”my_operation” UML operation. The <wsdl:message> and <wsdl:part> constructs are used to set the input and return parameter types.
  • The embedded schema’s complexType “Person” results in the UML Class Person. If the target namespace of the embedded schema had been different from the WSDL’s, or if it had been from an imported schema, then a new, separate Business Object Model would have been created.