Listing 1

<?xml version="1.0" encoding="UTF-8" ?> 
- <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:xsd="http://www.w3.org/2000/10/XMLSchema#"
xmlns:daml="http://www.daml.org/2001/03/daml+oil#">
- <daml:Ontology rdf:about="">
<dc:date>Dec 11, 2002 7:56 AM</dc:date> 
<dc:creator /> 
<dc:description /> 
<daml:imports rdf:resource=
"http://www.daml.org/2001/03/daml+oil" /> 
</daml:Ontology>
- <daml:Class rdf:ID="IncomeTax">
<rdfs:label>IncomeTax</rdfs:label> 
</daml:Class>
- <daml:Class rdf:ID="Jurisdiction">
<rdfs:label>Jurisdiction</rdfs:label> 
</daml:Class>
- <daml:Class rdf:ID="MonetarySum">
<rdfs:label>MonetarySum</rdfs:label> 
</daml:Class>
- <daml:Class rdf:ID="Municipality">
<rdfs:label>Municipality</rdfs:label> 
</daml:Class>
- <daml:Class rdf:ID="Rate">
<rdfs:label>Rate</rdfs:label> 
</daml:Class>
- <daml:Class rdf:ID="SalesTax">
<rdfs:label>SalesTax</rdfs:label> 
</daml:Class>
- <daml:Class rdf:ID="State">
<rdfs:label>State</rdfs:label> 
</daml:Class>
- <daml:Class rdf:ID="Tax">
<rdfs:label>Tax</rdfs:label> 
</daml:Class>
- <daml:Class rdf:ID="ZipCode">
<rdfs:label>ZipCode</rdfs:label> 
</daml:Class>
- <daml:ObjectProperty rdf:ID="Tax.amount">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#Tax" /> 
<rdfs:domain rdf:resource="#IncomeTax" /> 
<rdfs:domain rdf:resource="#SalesTax" /> 
<rdfs:range rdf:resource="#MonetarySum" /> 
</daml:ObjectProperty>
- <daml:Class rdf:about="#Tax">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#Tax.amount" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#Tax">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#Tax.amount" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:DatatypeProperty rdf:ID="MonetarySum.currencyType">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#MonetarySum" /> 
<rdfs:range rdf:resource=
"http://www.w3.org/2000/10/XMLSchema#string" /> 
</daml:DatatypeProperty>
- <daml:Class rdf:about="#MonetarySum">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#MonetarySum.currencyType" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#MonetarySum">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#MonetarySum.currencyType" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:DatatypeProperty rdf:ID="ZipCode.fiveDigit">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#ZipCode" /> 
<rdfs:range rdf:resource=
"http://www.w3.org/2000/10/XMLSchema#string" /> 
</daml:DatatypeProperty>
- <daml:Class rdf:about="#ZipCode">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#ZipCode.fiveDigit" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#ZipCode">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#ZipCode.fiveDigit" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:ObjectProperty rdf:ID="Tax.gross">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#Tax" /> 
<rdfs:domain rdf:resource="#IncomeTax" /> 
<rdfs:domain rdf:resource="#SalesTax" /> 
<rdfs:range rdf:resource="#MonetarySum" /> 
</daml:ObjectProperty>
- <daml:Class rdf:about="#Tax">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#Tax.gross" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#Tax">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#Tax.gross" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:ObjectProperty rdf:ID="Tax.jurisdiction">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#Tax" /> 
<rdfs:domain rdf:resource="#IncomeTax" /> 
<rdfs:domain rdf:resource="#SalesTax" /> 
<rdfs:range rdf:resource="#Jurisdiction" /> 
</daml:ObjectProperty>
- <daml:Class rdf:about="#Tax">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#Tax.jurisdiction" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#Tax">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#Tax.jurisdiction" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:DatatypeProperty rdf:ID="Rate.multiplier">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#Rate" /> 
<rdfs:range rdf:resource=
"http://www.w3.org/2000/10/XMLSchema#decimal" /> 
</daml:DatatypeProperty>
- <daml:Class rdf:about="#Rate">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#Rate.multiplier" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#Rate">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#Rate.multiplier" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:DatatypeProperty rdf:ID="ZipCode.nineDigit">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#ZipCode" /> 
<rdfs:range rdf:resource=
"http://www.w3.org/2000/10/XMLSchema#string" /> 
</daml:DatatypeProperty>
- <daml:Class rdf:about="#ZipCode">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#ZipCode.nineDigit" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#ZipCode">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#ZipCode.nineDigit" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:DatatypeProperty rdf:ID="Rate.percentage">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#Rate" /> 
<rdfs:range rdf:resource=
"http://www.w3.org/2000/10/XMLSchema#decimal" /> 
</daml:DatatypeProperty>
- <daml:Class rdf:about="#Rate">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#Rate.percentage" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#Rate">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#Rate.percentage" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:DatatypeProperty rdf:ID="MonetarySum.quantity">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#MonetarySum" /> 
<rdfs:range rdf:resource=
"http://www.w3.org/2000/10/XMLSchema#decimal" /> 
</daml:DatatypeProperty>
- <daml:Class rdf:about="#MonetarySum">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#MonetarySum.quantity" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#MonetarySum">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#MonetarySum.quantity" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:ObjectProperty rdf:ID="Tax.rate">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#Tax" /> 
<rdfs:domain rdf:resource="#IncomeTax" /> 
<rdfs:domain rdf:resource="#SalesTax" /> 
<rdfs:range rdf:resource="#Rate" /> 
</daml:ObjectProperty>
- <daml:Class rdf:about="#Tax">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#Tax.rate" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#Tax">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#Tax.rate" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:ObjectProperty rdf:ID="Jurisdiction.zipCodes">
<rdfs:domain rdf:resource="#Jurisdiction" /> 
<rdfs:domain rdf:resource="#Municipality" /> 
<rdfs:domain rdf:resource="#State" /> 
<rdfs:range rdf:resource="#ZipCode" /> 
</daml:ObjectProperty>
- <daml:Class rdf:about="#Jurisdiction">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="1">
<daml:onProperty rdf:resource="#Jurisdiction.zipCodes" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:DatatypeProperty rdf:ID="MonetarySum.unit~2">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#MonetarySum" /> 
<rdfs:range rdf:resource=
"http://www.w3.org/2000/10/XMLSchema#string" /> 
</daml:DatatypeProperty>
- <daml:Class rdf:about="#MonetarySum">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#MonetarySum.unit~2" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#MonetarySum">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#MonetarySum.unit~2" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:ObjectProperty rdf:ID="Jurisdiction.city~2">
<rdf:type rdf:resource=
"http://www.daml.org/2001/03/daml+oil#UniqueProperty" /> 
<rdfs:domain rdf:resource="#Jurisdiction" /> 
<rdfs:domain rdf:resource="#Municipality" /> 
<rdfs:domain rdf:resource="#State" /> 
<rdfs:range rdf:resource="#Municipality" /> 
</daml:ObjectProperty>
- <daml:Class rdf:about="#Jurisdiction">
- <rdfs:subClassOf>
- <daml:Restriction daml:minCardinality="0">
<daml:onProperty rdf:resource="#Jurisdiction.city~2" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#Jurisdiction">
- <rdfs:subClassOf>
- <daml:Restriction daml:maxCardinality="1">
<daml:onProperty rdf:resource="#Jurisdiction.city~2" /> 
</daml:Restriction>
</rdfs:subClassOf>
</daml:Class>
- <daml:Class rdf:about="#IncomeTax">
<rdfs:subClassOf rdf:resource="#Tax" /> 
</daml:Class>
- <daml:Class rdf:about="#SalesTax">
<rdfs:subClassOf rdf:resource="#Tax" /> 
</daml:Class>
- <daml:Class rdf:about="#Municipality">
<rdfs:subClassOf rdf:resource="#Jurisdiction" /> 
</daml:Class>
- <daml:Class rdf:about="#State">
<rdfs:subClassOf rdf:resource="#Jurisdiction" /> 
</daml:Class>
</rdf:RDF>


Listing 2: WSDL File
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:finance="http://www.financialexample.com/TaxService/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://www.financialexample.com/TaxService/">
<types>
<s:schema targetNamespace=
"http://www.financialexample.com/TaxService/"
elementFormDefault="qualified">
<s:complexType name="Tax">
<s:sequence>
<s:element name="tax" type="s:float"/>
<s:element name="rate" type="s:float"/>
</s:sequence>
</s:complexType>
<s:complexType name="GrossPayment">
<s:sequence>
<s:element name="amount" type="s:float"/>
<s:element name="zip" type="s:string"/>
</s:sequence>
</s:complexType>
</s:schema>
</types>
<message name="calculateTaxIn">
<part name="Body" type="finance:GrossPayment"/>
</message>
<message name="calculateTaxOut">
<part name="Body" type="finance:Tax"/>
</message>
<portType name="TaxServiceSoap">
<operation name="calculateTax">
<input message="finance:calculateTaxIn"/>
<output message="finance:calculateTaxOut"/>
</operation>
</portType>
<binding name="TaxServiceSoap" type="finance:TaxServiceSoap">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="calculateTax">
<soap:operation soapAction=
"http://www.financialexample.com/TaxService/calculateTax"
style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="TaxService">
<documentation>A sample Time service</documentation>
<port name="TaxServiceSoap" binding="finance:TaxServiceSoap">
<soap:address location=
"http://www.financialexample.com/TaxService/TaxService.jsp"/>
</port>
</service>
</definitions>