<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:tns="http://MathService.myorg.org.service.jws.ptc.com/"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           version="1.0"
           targetNamespace="http://MathService.myorg.org.service.jws.ptc.com/">

   <xs:element name="Add" type="tns:Add"/>

   <xs:element name="AddResponse" type="tns:AddResponse"/>

   <xs:element name="Divide" type="tns:Divide"/>

   <xs:element name="DivideResponse" type="tns:DivideResponse"/>

   <xs:element name="Exception" type="tns:Exception"/>

   <xs:element name="Multiply" type="tns:Multiply"/>

   <xs:element name="MultiplyResponse" type="tns:MultiplyResponse"/>

   <xs:element name="QueryParts" type="tns:QueryParts"/>

   <xs:element name="QueryPartsResponse" type="tns:QueryPartsResponse"/>

   <xs:element name="Subtract" type="tns:Subtract"/>

   <xs:element name="SubtractResponse" type="tns:SubtractResponse"/>

   <xs:complexType name="Multiply">
      <xs:sequence>
         <xs:element name="a" type="xs:int"/>
         <xs:element name="b" type="xs:int"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="MultiplyResponse">
      <xs:sequence>
         <xs:element name="return" type="xs:int"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="Exception">
      <xs:sequence>
         <xs:element name="message" type="xs:string" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="Divide">
      <xs:sequence>
         <xs:element name="a" type="xs:int"/>
         <xs:element name="b" type="xs:int"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="DivideResponse">
      <xs:sequence>
         <xs:element name="return" type="xs:float"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="Subtract">
      <xs:sequence>
         <xs:element name="a" type="xs:int"/>
         <xs:element name="b" type="xs:int"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="SubtractResponse">
      <xs:sequence>
         <xs:element name="return" type="xs:int"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="QueryParts">
      <xs:sequence>
         <xs:element name="type" type="xs:string" minOccurs="0"/>
         <xs:element name="where" type="xs:string" minOccurs="0"/>
         <xs:element name="containerRef" type="xs:string" minOccurs="0"/>
         <xs:element name="attribute" type="xs:string" nillable="true" minOccurs="0"
                     maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="QueryPartsResponse">
      <xs:sequence>
         <xs:element name="return" type="tns:genericBusinessObject" nillable="true" minOccurs="0"
                     maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="genericBusinessObject">
      <xs:sequence>
         <xs:element name="properties" type="tns:property" nillable="true" minOccurs="0"
                     maxOccurs="unbounded"/>
         <xs:element name="typeIdentifier" type="xs:string" minOccurs="0"/>
         <xs:element name="ufid" type="xs:string" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="property">
      <xs:sequence>
         <xs:element name="name" type="xs:string" minOccurs="0"/>
         <xs:element name="value" type="xs:string" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="Add">
      <xs:sequence>
         <xs:element name="a" type="xs:int"/>
         <xs:element name="b" type="xs:int"/>
      </xs:sequence>
   </xs:complexType>

   <xs:complexType name="AddResponse">
      <xs:sequence>
         <xs:element name="return" type="xs:int"/>
      </xs:sequence>
   </xs:complexType>
</xs:schema>