Skip to main content

skip to main content

developerWorks  >  SOA and Web services  >

Supercharging WSDL with RDF

Managing structured Web service metadata

developerWorks

Return to article


Listing 2: One possible WSDL RDF schema

 <?xml version="1.0"?>
 <!--
 Note: to be used to frame the listing 1 example, it would require
 a base uri of "http://schemas.xmlsoap.org/wsdl", or an RDF processor
 that can manipulate base-URIs (such as 4RDF)
 -->
 <rdf:RDF
   xml:lang="en"
   xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
   xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
 >
   <!--                     Class message                     -->
   <rdfs:Class ID="message">
     <rdfs:comment>An individual transmission in XML-based communication.</rdfs:comment>
     <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
   </rdfs:Class>
   <!--                     Class part                     -->
   <rdfs:Class ID="part">
     <rdfs:comment>A distinct section of a message.</rdfs:comment>
     <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
   </rdfs:Class>
   <rdf:Property ID="element">
     <! More accurately constrained to be a Qname -->
     <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
     <rdfs:domain rdf:resource="part"/>
   </rdf:Property>
   <!--                     Class portType                     -->
   <rdfs:Class ID="portType">
     <rdfs:comment>A resolution of individual messages into a set of operations.</rdfs:comment>
     <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
   </rdfs:Class>
   <rdf:Property ID="operation">
     <rdfs:range rdf:resource="operation"/>
     <rdfs:domain rdf:resource="portType"/>
   </rdf:Property>
   <!--                     Class operation                     -->
   <rdfs:Class ID="operation">
     <rdfs:comment>A set of messages that comprise a single logical request and optional response.</rdfs:comment>
     <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
   </rdfs:Class>
   <rdf:Property ID="input">
     <rdfs:range rdf:resource="message"/>
     <rdfs:domain rdf:resource="operation"/>
   </rdf:Property>
   <rdf:Property ID="output">
     <rdfs:range rdf:resource="message"/>
     <rdfs:domain rdf:resource="operation"/>
   </rdf:Property>
   <rdf:Property ID="fault">
     <rdfs:range rdf:resource="message"/>
     <rdfs:domain rdf:resource="operation"/>
   </rdf:Property>
   <!--                     Common                     -->
   <rdf:Property ID="name">
     <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
     <rdfs:domain rdf:resource="message"/>
     <rdfs:domain rdf:resource="part"/>
     <rdfs:domain rdf:resource="portType"/>
     <rdfs:domain rdf:resource="operation"/>
   </rdf:Property>
 </rdf:RDF>

Return to article