You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrf-dev@ws.apache.org by sc...@apache.org on 2005/02/16 23:34:06 UTC

svn commit: r154094 - in incubator/apollo/trunk/src: java/org/apache/ws/resource/ java/org/apache/ws/resource/impl/ java/org/apache/ws/resource/tool/ java/org/apache/ws/resource/tool/porttype/v1_2_draft05/ java/org/apache/ws/util/ site/content/tutorial/ templates/1_2_draft01/

Author: scamp
Date: Wed Feb 16 14:34:02 2005
New Revision: 154094

URL: http://svn.apache.org/viewcvs?view=rev&rev=154094
Log:
updated

Added:
    incubator/apollo/trunk/src/site/content/tutorial/wsrf-Interop-2.0-draft-02.wsdl
    incubator/apollo/trunk/src/site/content/tutorial/wsrf-Interop-2.0-draft-02.xsd
Modified:
    incubator/apollo/trunk/src/java/org/apache/ws/resource/ResourceDefinition.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceDefinitionImpl.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/porttype/v1_2_draft05/GetMultipleResourcePropertiesPortType2JavaInfo.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/porttype/v1_2_draft05/GetResourcePropertyPortType2JavaInfo.java
    incubator/apollo/trunk/src/java/org/apache/ws/util/WsrfWsdlUtils.java
    incubator/apollo/trunk/src/site/content/tutorial/build.xml
    incubator/apollo/trunk/src/templates/1_2_draft01/GetMultiple.txt
    incubator/apollo/trunk/src/templates/1_2_draft01/GetResource.txt
    incubator/apollo/trunk/src/templates/1_2_draft01/Query.txt
    incubator/apollo/trunk/src/templates/1_2_draft01/Set.txt

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/ResourceDefinition.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/ResourceDefinition.java?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/ResourceDefinition.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/ResourceDefinition.java Wed Feb 16 14:34:02 2005
@@ -16,6 +16,7 @@
 package org.apache.ws.resource;
 
 import javax.wsdl.Service;
+import javax.wsdl.Port;
 
 /**
  * A WSRF resource definition.
@@ -37,7 +38,7 @@
      *
      * @return the JWSDL Service for this resource definition
      */
-    Service getService();
+    Port getPort();
 
     /**
      * Returns the service endpoint URL for this resource definition.

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java Wed Feb 16 14:34:02 2005
@@ -35,6 +35,8 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.net.URL;
+import java.net.MalformedURLException;
 
 /**
  * A {@link ResourceCapability} implementation.
@@ -54,16 +56,19 @@
     private QName m_propsDocName;
     private String m_metadataDescLocation;
     private QName m_metadataDescName;
+    private URL m_baseUrl;
 
     /**
      * Creates a new {@link ResourceCapabilityImpl} based on the specified JWSDL definition and portType.
      *
      * @param def a JWSDL definition
+     * @param baseURL
      */
-    public ResourceCapabilityImpl( Definition def, PortType portType ) throws InvalidWsrfWsdlException
+    public ResourceCapabilityImpl(Definition def, PortType portType, URL baseURL) throws InvalidWsrfWsdlException
     {
         m_def = def;
         m_portType = portType;
+        m_baseUrl = baseURL;
         initImplementedPortTypes();
         initCustomOperations();
         initPropertyNames();
@@ -147,10 +152,10 @@
         return m_propNames != null;
     }
 
-    private void initPropertyNames()
+    private void initPropertyNames() throws InvalidWsrfWsdlException
     {
         m_propsDocName = WsrfWsdlUtils.getResourcePropertiesDocumentName( m_portType );
-        m_propNames = WsrfWsdlUtils.getResourcePropertyNames( m_propsDocName, m_def );
+        m_propNames = WsrfWsdlUtils.getResourcePropertyNames( m_propsDocName, m_def, m_baseUrl );
         Set customPropNames = new HashSet();
         if ( hasProperties() )
         {
@@ -236,7 +241,16 @@
             while ( portTypeIter.hasNext() )
             {
                 PortType portType = (PortType) portTypeIter.next();
-                importedResourceDefs.add( new ResourceCapabilityImpl( def, portType ) );
+                URL baseUrl = null;
+                try
+                {
+                    baseUrl = new URL(m_baseUrl, imports[i].getLocationURI());
+                }
+                catch (MalformedURLException e)
+                {
+                    throw new InvalidWsrfWsdlException("Invalid import location " + imports[i].getLocationURI());
+                }
+                importedResourceDefs.add( new ResourceCapabilityImpl( def, portType, baseUrl) );
             }
         }
         return (ResourceCapability[]) importedResourceDefs.toArray( new ResourceCapability[0] );
@@ -446,7 +460,7 @@
         ResourceCapability wsResourceDef = null;
         try
         {
-            wsResourceDef = new ResourceCapabilityImpl( def, portType );
+            wsResourceDef = new ResourceCapabilityImpl( def, portType, null);
         }
         catch ( InvalidWsrfWsdlException iwwe )
         {

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceDefinitionImpl.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceDefinitionImpl.java?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceDefinitionImpl.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceDefinitionImpl.java Wed Feb 16 14:34:02 2005
@@ -17,16 +17,15 @@
 
 import org.apache.ws.resource.InvalidWsrfWsdlException;
 import org.apache.ws.resource.ResourceDefinition;
-import org.apache.ws.util.WsdlUtils;
 
+import javax.wsdl.Binding;
 import javax.wsdl.Definition;
 import javax.wsdl.Port;
 import javax.wsdl.PortType;
-import javax.wsdl.Service;
 import javax.wsdl.extensions.ExtensibilityElement;
 import javax.wsdl.extensions.soap.SOAPAddress;
 import java.util.List;
-import java.util.Map;
+import java.net.URL;
 
 /**
  * A {@link ResourceDefinition} implementation.
@@ -36,40 +35,36 @@
 public class ResourceDefinitionImpl extends ResourceCapabilityImpl implements ResourceDefinition
 {
 
-    private Service m_service;
+    private Port m_port;
     private String m_name;
     private String m_endpointURL;
 
-    public ResourceDefinitionImpl( Definition def, Service service )
+    public ResourceDefinitionImpl(Definition def, javax.wsdl.Port port, URL baseUrl)
             throws InvalidWsrfWsdlException
     {
-        super( def, getResourcePortType( service ) );
-        m_service = service;
-        m_endpointURL = extractEndpointURL( m_service );
-        m_name = extractName( m_endpointURL );
+        super( def, getResourcePortType( port ), baseUrl);
+        m_port = port;
+        m_endpointURL = extractEndpointURL( m_port );
+        m_name = m_port.getName();
     }
 
-    private static PortType getResourcePortType( Service service ) throws InvalidWsrfWsdlException
+
+    private static PortType getResourcePortType( Port port ) throws InvalidWsrfWsdlException
     {
-        Map portTypes = WsdlUtils.getPortTypes( service );
-        if ( portTypes.isEmpty() )
+        Binding binding = port.getBinding();
+        if(binding != null)
         {
-            throw new InvalidWsrfWsdlException(
-                    "WSDL service " + service.getQName() +
-                    " is not a valid service, as it does not contain any ports." );
+           return binding.getPortType();
         }
-        if ( portTypes.size() > 1 )
+        else
         {
-            throw new InvalidWsrfWsdlException(
-                    "WSDL service " + service.getQName() +
-                    " is not a valid WSRF service, as it contains more than one port." );
+            throw new InvalidWsrfWsdlException("The port has no binding associated with it!");
         }
-        return (PortType) portTypes.values().iterator().next();
     }
 
-    public Service getService()
+    public Port getPort()
     {
-        return m_service;
+        return m_port;
     }
 
     public String getName()
@@ -92,10 +87,10 @@
         return name;
     }
 
-    private String extractEndpointURL( Service service ) throws InvalidWsrfWsdlException
+    private String extractEndpointURL( Port port ) throws InvalidWsrfWsdlException
     {
         String endpointURL = null;
-        Port port = (Port) service.getPorts().values().iterator().next();
+
         List extElems = port.getExtensibilityElements();
         for ( int i = 0; i < extElems.size(); i++ )
         {
@@ -110,7 +105,7 @@
         if ( endpointURL == null )
         {
             throw new InvalidWsrfWsdlException(
-                    "Failed to obtain service endpoint URL from " + m_service.getQName() +
+                    "Failed to obtain service endpoint URL from port " + m_port.getName() +
                     " service's wsdl:port/soap:address/@location attribute" );
         }
         return endpointURL;

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/Wsdl2Java.java Wed Feb 16 14:34:02 2005
@@ -40,6 +40,7 @@
 
 import javax.wsdl.Definition;
 import javax.wsdl.Service;
+import javax.wsdl.Port;
 import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLReader;
 import javax.xml.namespace.QName;
@@ -197,11 +198,16 @@
         while ( serviceIter.hasNext() )
         {
             Service service = (Service) serviceIter.next();
-            ResourceDefinition resourceDef = new ResourceDefinitionImpl( def, service );
-            File serviceDir = new File( m_outputDir, resourceDef.getName() );
-            System.out.println( "Processing WSRF service \"" + resourceDef.getName() + "\"..." );
-            processTemplates( resourceDef, wsdlFile, serviceDir );
-            copyWsdlFile( wsdlFile, serviceDir );
+            Iterator iterator = service.getPorts().values().iterator();
+            while (iterator.hasNext())
+            {
+                Port port = (Port) iterator.next();
+                ResourceDefinition resourceDef = new ResourceDefinitionImpl( def, port, wsdlFile.toURL());
+                File serviceDir = new File( m_outputDir, resourceDef.getName() );
+                System.out.println( "Processing WSRF WSDL port \"" + resourceDef.getName() + "\"..." );
+                processTemplates( resourceDef, wsdlFile, serviceDir );
+                copyWsdlFile( wsdlFile, serviceDir );
+            }
         }
         generateXmlBeans( wsdlFile );
     }
@@ -535,7 +541,7 @@
 
             //add to context
             context.put( "generated", props );
-            
+
             //generate files
             File packageDir = getPackageDir( resourceDef.getDefinition().getTargetNamespace(), serviceDir );
             packageDir.mkdirs();
@@ -543,6 +549,8 @@
             processTemplate( context, "templates/AbstractService.vm", outputFile );
 
             outputFile = new File( packageDir, capitalizedServiceName + "Service.java" );
+
+            //only generate if it doesn't exist
             if ( !outputFile.exists() )
             {
                 processTemplate( context, "templates/Service.vm", outputFile );
@@ -552,17 +560,22 @@
             processTemplate( context, "templates/AbstractResource.vm", outputFile );
 
             outputFile = new File( packageDir, capitalizedServiceName + "Resource.java" );
+
+            //only generate if it doesn't exist
             if ( !outputFile.exists() )
             {
                 processTemplate( context, "templates/Resource.vm", outputFile );
             }
 
             outputFile = new File( packageDir, capitalizedServiceName + "Home.java" );
+
+            //only generate if it doesn't exist
             if ( !outputFile.exists() )
             {
                 processTemplate( context, "templates/Home.vm", outputFile );
             }
 
+            //only if they implemented properties does this make sense.
             if ( resourceDef.hasProperties() )
             {
                 outputFile = new File( packageDir, capitalizedServiceName + "PropertyQNames.java" );
@@ -582,10 +595,7 @@
             processTemplate( context, "templates/build.xml.vm", outputFile );
 
             outputFile = new File( serviceDir, "build.properties" );
-            if ( !outputFile.exists() )
-            {
-                processTemplate( context, "templates/build.properties.vm", outputFile );
-            }
+            processTemplate( context, "templates/build.properties.vm", outputFile );
         }
         catch ( Exception e )
         {

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/porttype/v1_2_draft05/GetMultipleResourcePropertiesPortType2JavaInfo.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/porttype/v1_2_draft05/GetMultipleResourcePropertiesPortType2JavaInfo.java?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/porttype/v1_2_draft05/GetMultipleResourcePropertiesPortType2JavaInfo.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/porttype/v1_2_draft05/GetMultipleResourcePropertiesPortType2JavaInfo.java Wed Feb 16 14:34:02 2005
@@ -40,7 +40,7 @@
 
     public String getServiceTemplateFileName()
     {
-        return "templates/1_2_draft01/GetMultiple.txt";
+        return "templates/1_2_draft05/GetMultiple.txt";
     }       
 
 }

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/porttype/v1_2_draft05/GetResourcePropertyPortType2JavaInfo.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/porttype/v1_2_draft05/GetResourcePropertyPortType2JavaInfo.java?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/porttype/v1_2_draft05/GetResourcePropertyPortType2JavaInfo.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/tool/porttype/v1_2_draft05/GetResourcePropertyPortType2JavaInfo.java Wed Feb 16 14:34:02 2005
@@ -51,7 +51,7 @@
 
     public String getServiceTemplateFileName()
     {
-        return "templates/1_2_draft01/GetResource.txt";
+        return "templates/1_2_draft05/GetResource.txt";
     }
     
 }

Modified: incubator/apollo/trunk/src/java/org/apache/ws/util/WsrfWsdlUtils.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/util/WsrfWsdlUtils.java?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/util/WsrfWsdlUtils.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/util/WsrfWsdlUtils.java Wed Feb 16 14:34:02 2005
@@ -18,9 +18,13 @@
 
 import org.apache.xml.utils.PrefixResolver;
 import org.apache.xml.utils.PrefixResolverDefault;
+import org.apache.ws.resource.InvalidWsrfWsdlException;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
+import org.w3c.dom.Attr;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
 
 import javax.wsdl.Definition;
 import javax.wsdl.Operation;
@@ -28,11 +32,17 @@
 import javax.wsdl.extensions.ExtensibilityElement;
 import javax.wsdl.extensions.UnknownExtensibilityElement;
 import javax.xml.namespace.QName;
+import javax.xml.parsers.ParserConfigurationException;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.StringTokenizer;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.lang.reflect.Array;
+import java.net.URL;
+import java.io.IOException;
 
 /**
  * Utility methods for working with a WSRF WSDL definition.
@@ -92,10 +102,11 @@
      * @param propsDocName
      * @param def
      *
+     * @param baseUrl
      * @return the names of the resource properties associated with the specified portType
      */
-    public static QName[] getResourcePropertyNames( QName propsDocName,
-                                                    Definition def )
+    public static QName[] getResourcePropertyNames(QName propsDocName,
+                                                   Definition def, URL baseUrl) throws InvalidWsrfWsdlException
     {
         if ( propsDocName == null )
         {
@@ -103,6 +114,32 @@
         }
         Element schemaElem = getSchemaElement( def );
         Element rpDocElementElem = getElementByName( schemaElem, propsDocName );
+
+        if(rpDocElementElem == null)
+        {
+            String[] schemaLocations = findImportsAndIncludes(schemaElem, propsDocName.getNamespaceURI());
+            for (int i = 0; i < schemaLocations.length; i++)
+            {
+                String location = schemaLocations[i];
+                Document shcemaDoc = null;
+                try
+                {
+                    URL schemaUrl = new URL(baseUrl, location);
+                    shcemaDoc = JaxpUtils.loadDocument(schemaUrl.openStream());
+                }
+                catch (Exception e)
+                {
+                    throw new InvalidWsrfWsdlException("Failed to load schema at location " + location);
+                }
+
+                rpDocElementElem = getElementByName( shcemaDoc.getDocumentElement(), propsDocName );
+                if(rpDocElementElem != null) break;
+            }
+            if(rpDocElementElem == null)
+            {
+                throw new InvalidWsrfWsdlException("Unable to locate the ResourceProperties Document Element with QName " + propsDocName);
+            }
+        }
         String type = rpDocElementElem.getAttribute( "type" );
         Element rpDocTypeElem;
         if ( !"".equals( type ) )
@@ -147,6 +184,41 @@
         }
 
         return (QName[]) propNames.toArray( new QName[0] );
+    }
+
+    private static String[] findImportsAndIncludes(Element schemaElem, String namespaceURI)
+    {
+        List elems = new ArrayList();
+        NodeList imports = schemaElem.getElementsByTagNameNS(XmlConstants.NSURI_SCHEMA_XSD, XmlConstants.XSD_ATTRIB_IMPORT);
+        for (int i = 0; i < imports.getLength(); i++)
+        {
+            Element importNode = (Element) imports.item(i);
+            Attr attributeNode = importNode.getAttributeNode("namespace");
+            if(attributeNode != null)
+            {
+                if (namespaceURI.equals(attributeNode.getValue()))
+                {
+                    elems.add(importNode);
+                }
+            }
+        }
+        NodeList includes = schemaElem.getElementsByTagNameNS(XmlConstants.NSURI_SCHEMA_XSD, XmlConstants.XSD_ATTRIB_INCLUDE);
+        for (int i = 0; i < includes.getLength(); i++)
+        {
+              elems.add(includes.item(i));
+        }
+
+        String[] locations = new String[elems.size()];
+        for (int i = 0; i < elems.size(); i++)
+        {
+            Element element = (Element) elems.get(i);
+            Attr attributeNode = element.getAttributeNode("schemaLocation");
+            if(attributeNode != null)
+            {
+                locations[i] = attributeNode.getValue();
+            }
+        }
+        return locations;
     }
 
     private static Element getElementByName( Element schemaElem,

Modified: incubator/apollo/trunk/src/site/content/tutorial/build.xml
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/site/content/tutorial/build.xml?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/site/content/tutorial/build.xml (original)
+++ incubator/apollo/trunk/src/site/content/tutorial/build.xml Wed Feb 16 14:34:02 2005
@@ -51,7 +51,10 @@
                 proxyHost="${http.proxyHost}"
                 proxyPort="${http.proxyPort}"
                 nonProxyHosts="${http.nonProxyHosts}">
-       <wsdls dir="${tmp.dir}"/>                                
+       
+       <wsdls dir="${tmp.dir}">
+                 <include name="**/*.wsdl" />	  
+       </wsdls>
      </wsdl2Java>
           
      <delete dir="${tmp.dir}" />

Added: incubator/apollo/trunk/src/site/content/tutorial/wsrf-Interop-2.0-draft-02.wsdl
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/site/content/tutorial/wsrf-Interop-2.0-draft-02.wsdl?view=auto&rev=154094
==============================================================================
--- incubator/apollo/trunk/src/site/content/tutorial/wsrf-Interop-2.0-draft-02.wsdl (added)
+++ incubator/apollo/trunk/src/site/content/tutorial/wsrf-Interop-2.0-draft-02.wsdl Wed Feb 16 14:34:02 2005
@@ -0,0 +1,432 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 
+	Copyright (C) OASIS Open (2004). All Rights Reserved.
+	
+	This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document must be followed, or as required to translate it into languages other than English. 
+	
+	The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns. 
+	
+	This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+	
+-->
+<!-- 
+	Changes:
+	2004-11-30 RAM added vanilla Web Services type, messages and operations
+	2004-12-04 TWB removed choice construct - not valid for WSDL2Java
+	2004-12-04 TWB Changed operation/message/type names to suit WSDL2Java
+	2004-12-04 TWB removed MIME attachment option - too complex.
+	2004-12-04 TWB removed multiple parts-per-message for WS-I compliance
+-->
+<wsdl:definitions targetNamespace="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-02.wsdl" 
+name="WSRFIPP" 
+xmlns="http://schemas.xmlsoap.org/wsdl/" 
+xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceProperties-1.2-draft-05.xsd" 
+xmlns:wsrf-rpw="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceProperties-1.2-draft-05.wsdl" 
+xmlns:wsrf-rlw="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceLifetime-1.2-draft-04.wsdl" 
+xmlns:wsrf-pr="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-02.xsd" 
+xmlns:wsrf-prw="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-02.wsdl" 
+xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" >
+	<wsdl:import namespace="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceProperties-1.2-draft-05.wsdl" 
+                  location="../spec/wsrf/WS-ResourceProperties-1_2-Draft_05.wsdl" />
+	<wsdl:import namespace="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceLifetime-1.2-draft-04.wsdl" 
+	              location="../spec/wsrf/WS-ResourceLifetime-1_2-Draft_04.wsdl" />
+
+	<wsdl:types>
+		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+		elementFormDefault="qualified" attributeFormDefault="unqualified">
+			<xsd:import namespace="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-02.xsd" 
+			schemaLocation="./wsrf-Interop-2.0-draft-02.xsd" />
+		</xsd:schema>
+	</wsdl:types>
+	<wsdl:message name="Print_JobRequest">
+		<wsdl:part name="Print_JobRequest" element="wsrf-pr:Print_JobAttributes" />
+	</wsdl:message>
+	<wsdl:message name="Print_JobResponse">
+		<wsdl:part name="Print_JobResponse" element="wsrf-pr:CreationResponse" />
+	</wsdl:message>
+	<message name="client_error_not_possibleFault">
+		<wsdl:part name="client_error_not_possibleFault" element="wsrf-pr:client_error_not_possibleFault" />
+	</message>
+	<wsdl:message name="Create_JobRequest">
+		<wsdl:part name="Create_JobRequest" element="wsrf-pr:Create_JobAttributes" />
+	</wsdl:message>
+	<wsdl:message name="Create_JobResponse">
+		<wsdl:part name="Create_JobResponse" element="wsrf-pr:CreationResponse" />
+	</wsdl:message>
+	<wsdl:message name="Send_DocumentRequest">
+		<wsdl:part name="Send_DocumentRequest" element="wsrf-pr:Send_DocumentAttributes" />
+	</wsdl:message>
+	<wsdl:message name="Send_DocumentResponse">
+		<wsdl:part name="Send_DocumentResponse" element="wsrf-pr:Send_DocumentResponse" />
+	</wsdl:message>
+
+	<wsdl:portType name="Printer" wsrf-rp:ResourceProperties="wsrf-pr:printer_properties">
+		<wsdl:operation name="GetResourcePropertyDocument">
+			<wsdl:input name="GetResourcePropertyDocumentRequest" message="wsrf-rpw:GetResourcePropertyDocumentRequest" />
+			<wsdl:output name="GetResourcePropertyDocumentResponse" message="wsrf-rpw:GetResourcePropertyDocumentResponse" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rpw:ResourceUnknownFault" />
+		</wsdl:operation>
+		<wsdl:operation name="GetResourceProperty">
+			<wsdl:input name="GetResourcePropertyRequest" message="wsrf-rpw:GetResourcePropertyRequest" />
+			<wsdl:output name="GetResourcePropertyResponse" message="wsrf-rpw:GetResourcePropertyResponse" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rpw:ResourceUnknownFault" />
+			<wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrf-rpw:InvalidResourcePropertyQNameFault" />
+		</wsdl:operation>
+		<wsdl:operation name="GetMultipleResourceProperties">
+			<wsdl:input name="GetMultipleResourcePropertiesRequest" message="wsrf-rpw:GetMultipleResourcePropertiesRequest" />
+			<wsdl:output name="GetMultipleResourcePropertiesResponse" message="wsrf-rpw:GetMultipleResourcePropertiesResponse" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rpw:ResourceUnknownFault" />
+			<wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrf-rpw:InvalidResourcePropertyQNameFault" />
+		</wsdl:operation>
+		<wsdl:operation name="SetResourceProperties">
+			<wsdl:input name="SetResourcePropertiesRequest" message="wsrf-rpw:SetResourcePropertiesRequest" />
+			<wsdl:output name="SetResourcePropertiesResponse" message="wsrf-rpw:SetResourcePropertiesResponse" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rpw:ResourceUnknownFault" />
+			<wsdl:fault name="InvalidSetResourcePropertiesRequestContentFault" message="wsrf-rpw:InvalidSetResourcePropertiesRequestContentFault" />
+			<wsdl:fault name="UnableToModifyResourcePropertyFault" message="wsrf-rpw:UnableToModifyResourcePropertyFault" />
+			<wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrf-rpw:InvalidResourcePropertyQNameFault" />
+			<wsdl:fault name="SetResourcePropertyRequestFailedFault" message="wsrf-rpw:SetResourcePropertyRequestFailedFault" />
+		</wsdl:operation>
+		<wsdl:operation name="InsertResourceProperties">
+			<wsdl:input name="InsertResourcePropertiesRequest" message="wsrf-rpw:InsertResourcePropertiesRequest" />
+			<wsdl:output name="InsertResourcePropertiesResponse" message="wsrf-rpw:InsertResourcePropertiesResponse" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rpw:ResourceUnknownFault" />
+			<wsdl:fault name="InvalidInsertResourcePropertiesRequestContentFault" message="wsrf-rpw:InvalidInsertResourcePropertiesRequestContentFault" />
+			<wsdl:fault name="UnableToModifyResourcePropertyFault" message="wsrf-rpw:UnableToModifyResourcePropertyFault" />
+			<wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrf-rpw:InvalidResourcePropertyQNameFault" />
+			<wsdl:fault name="InsertResourcePropertyRequestFailedFault" message="wsrf-rpw:InsertResourcePropertyRequestFailedFault" />
+		</wsdl:operation>
+		<wsdl:operation name="UpdateResourceProperties">
+			<wsdl:input name="UpdateResourcePropertiesRequest" message="wsrf-rpw:UpdateResourcePropertiesRequest" />
+			<wsdl:output name="UpdateResourcePropertiesResponse" message="wsrf-rpw:UpdateResourcePropertiesResponse" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rpw:ResourceUnknownFault" />
+			<wsdl:fault name="InvalidUpdateResourcePropertiesRequestContentFault" message="wsrf-rpw:InvalidUpdateResourcePropertiesRequestContentFault" />
+			<wsdl:fault name="UnableToModifyResourcePropertyFault" message="wsrf-rpw:UnableToModifyResourcePropertyFault" />
+			<wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrf-rpw:InvalidResourcePropertyQNameFault" />
+			<wsdl:fault name="UpdateResourcePropertyRequestFailedFault" message="wsrf-rpw:UpdateResourcePropertyRequestFailedFault" />
+		</wsdl:operation>
+		<wsdl:operation name="DeleteResourceProperties">
+			<wsdl:input name="DeleteResourcePropertiesRequest" message="wsrf-rpw:DeleteResourcePropertiesRequest" />
+			<wsdl:output name="DeleteResourcePropertiesResponse" message="wsrf-rpw:DeleteResourcePropertiesResponse" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rpw:ResourceUnknownFault" />
+			<wsdl:fault name="UnableToModifyResourcePropertyFault" message="wsrf-rpw:UnableToModifyResourcePropertyFault" />
+			<wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrf-rpw:InvalidResourcePropertyQNameFault" />
+			<wsdl:fault name="DeleteResourcePropertyRequestFailedFault" message="wsrf-rpw:DeleteResourcePropertyRequestFailedFault" />
+		</wsdl:operation>
+		<wsdl:operation name="QueryResourceProperties">
+			<wsdl:input name="QueryResourcePropertiesRequest" message="wsrf-rpw:QueryResourcePropertiesRequest" />
+			<wsdl:output name="QueryResourcePropertiesResponse" message="wsrf-rpw:QueryResourcePropertiesResponse" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rpw:ResourceUnknownFault" />
+			<wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrf-rpw:InvalidResourcePropertyQNameFault" />
+			<wsdl:fault name="UnknownQueryExpressionDialectFault" message="wsrf-rpw:UnknownQueryExpressionDialectFault" />
+			<wsdl:fault name="InvalidQueryExpressionFault" message="wsrf-rpw:InvalidQueryExpressionFault" />
+			<wsdl:fault name="QueryEvaluationErrorFault" message="wsrf-rpw:QueryEvaluationErrorFault" />
+		</wsdl:operation>
+		<wsdl:operation name="Print_Job">
+			<wsdl:input name="Print_JobRequest" message="wsrf-prw:Print_JobRequest" />
+			<wsdl:output name="Print_JobResponse" message="wsrf-prw:Print_JobResponse" />
+			<wsdl:fault name="client_error_not_possibleFault" message="wsrf-prw:client_error_not_possibleFault" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rlw:ResourceUnknownFault" />
+		</wsdl:operation>
+		<wsdl:operation name="Create_Job">
+			<wsdl:input name="Create-JobRequest" message="wsrf-prw:Create_JobRequest" />
+			<wsdl:output message="wsrf-prw:Create_JobResponse" />
+			<wsdl:fault name="client_error_not_possibleFault" message="wsrf-prw:client_error_not_possibleFault" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rlw:ResourceUnknownFault" />
+		</wsdl:operation>
+	</wsdl:portType>
+	<wsdl:portType name="Job" wsrf-rp:ResourceProperties="wsrf-pr:job_properties">
+		<wsdl:operation name="Destroy">
+			<wsdl:input name="DestroyRequest" message="wsrf-rlw:DestroyRequest" />
+			<wsdl:output name="DestroyResponse" message="wsrf-rlw:DestroyResponse" />
+			<wsdl:fault name="ResourceNotDestroyedFault" message="wsrf-rlw:ResourceNotDestroyedFault" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rlw:ResourceUnknownFault" />
+		</wsdl:operation>
+		<wsdl:operation name="SetTerminationTime">
+			<wsdl:input name="SetTerminationTimeRequest" message="wsrf-rlw:SetTerminationTimeRequest" />
+			<wsdl:output name="SetTerminationTimeResponse" message="wsrf-rlw:SetTerminationTimeResponse" />
+			<wsdl:fault name="UnableToSetTerminationTimeFault" message="wsrf-rlw:UnableToSetTerminationTimeFault" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rlw:ResourceUnknownFault" />
+			<wsdl:fault name="TerminationTimeChangeRejectedFault" message="wsrf-rlw:TerminationTimeChangeRejectedFault" />
+		</wsdl:operation>
+		<wsdl:operation name="GetResourceProperty">
+			<wsdl:input name="GetResourcePropertyRequest" message="wsrf-rpw:GetResourcePropertyRequest" />
+			<wsdl:output name="GetResourcePropertyResponse" message="wsrf-rpw:GetResourcePropertyResponse" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rpw:ResourceUnknownFault" />
+			<wsdl:fault name="InvalidResourcePropertyQNameFault" message="wsrf-rpw:InvalidResourcePropertyQNameFault" />
+		</wsdl:operation>
+		<wsdl:operation name="Send_Document">
+			<wsdl:input name="Send_DocumentRequest" message="wsrf-prw:Send_DocumentRequest" />
+			<wsdl:output name="Send_DocumentResponse" message="wsrf-prw:Send_DocumentResponse" />
+			<wsdl:fault name="ResourceUnknownFault" message="wsrf-rpw:ResourceUnknownFault" />
+			<wsdl:fault name="client_error_not_possibleFault" message="wsrf-prw:client_error_not_possibleFault" />
+		</wsdl:operation>
+	</wsdl:portType>
+	<binding name="Printer" type="wsrf-prw:Printer">
+		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+		<operation name="GetResourcePropertyDocument">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/GetResourcePropertyDocument" />
+			<input name="GetResourcePropertyDocumentRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="GetResourcePropertyDocumentResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="GetResourceProperty">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/GetResourceProperty" />
+			<input name="GetResourcePropertyRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="GetResourcePropertyResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+			<fault name="InvalidResourcePropertyQNameFault">
+				<soap:fault name="InvalidResourcePropertyQNameFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="GetMultipleResourceProperties">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/GetMultipleResourceProperties" />
+			<input name="GetMultipleResourcePropertiesRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="GetMultipleResourcePropertiesResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+			<fault name="InvalidResourcePropertyQNameFault">
+				<soap:fault name="InvalidResourcePropertyQNameFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="SetResourceProperties">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/SetResourceProperties" />
+			<input name="SetResourcePropertiesRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="SetResourcePropertiesResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+			<fault name="InvalidSetResourcePropertiesRequestContentFault">
+				<soap:fault name="InvalidSetResourcePropertiesRequestContentFault" use="literal" />
+			</fault>
+			<fault name="UnableToModifyResourcePropertyFault">
+				<soap:fault name="UnableToModifyResourcePropertyFault" use="literal" />
+			</fault>
+			<fault name="InvalidResourcePropertyQNameFault">
+				<soap:fault name="InvalidResourcePropertyQNameFault" use="literal" />
+			</fault>
+			<fault name="SetResourcePropertyRequestFailedFault">
+				<soap:fault name="SetResourcePropertyRequestFailedFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="InsertResourceProperties">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/InsertResourceProperties" />
+			<input name="InsertResourcePropertiesRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="InsertResourcePropertiesResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+			<fault name="InvalidInsertResourcePropertiesRequestContentFault">
+				<soap:fault name="InvalidInsertResourcePropertiesRequestContentFault" use="literal" />
+			</fault>
+			<fault name="UnableToModifyResourcePropertyFault">
+				<soap:fault name="UnableToModifyResourcePropertyFault" use="literal" />
+			</fault>
+			<fault name="InvalidResourcePropertyQNameFault">
+				<soap:fault name="InvalidResourcePropertyQNameFault" use="literal" />
+			</fault>
+			<fault name="InsertResourcePropertyRequestFailedFault">
+				<soap:fault name="InsertResourcePropertyRequestFailedFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="UpdateResourceProperties">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/UpdateResourceProperties" />
+			<input name="UpdateResourcePropertiesRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="UpdateResourcePropertiesResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+			<fault name="InvalidUpdateResourcePropertiesRequestContentFault">
+				<soap:fault name="InvalidUpdateResourcePropertiesRequestContentFault" use="literal" />
+			</fault>
+			<fault name="UnableToModifyResourcePropertyFault">
+				<soap:fault name="UnableToModifyResourcePropertyFault" use="literal" />
+			</fault>
+			<fault name="InvalidResourcePropertyQNameFault">
+				<soap:fault name="InvalidResourcePropertyQNameFault" use="literal" />
+			</fault>
+			<fault name="UpdateResourcePropertyRequestFailedFault">
+				<soap:fault name="UpdateResourcePropertyRequestFailedFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="DeleteResourceProperties">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/DeleteResourceProperties" />
+			<input name="DeleteResourcePropertiesRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="DeleteResourcePropertiesResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+			<fault name="UnableToModifyResourcePropertyFault">
+				<soap:fault name="UnableToModifyResourcePropertyFault" use="literal" />
+			</fault>
+			<fault name="InvalidResourcePropertyQNameFault">
+				<soap:fault name="InvalidResourcePropertyQNameFault" use="literal" />
+			</fault>
+			<fault name="DeleteResourcePropertyRequestFailedFault">
+				<soap:fault name="DeleteResourcePropertyRequestFailedFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="QueryResourceProperties">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/QueryResourceProperties" />
+			<input name="QueryResourcePropertiesRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="QueryResourcePropertiesResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+			<fault name="InvalidResourcePropertyQNameFault">
+				<soap:fault name="InvalidResourcePropertyQNameFault" use="literal" />
+			</fault>
+			<fault name="UnknownQueryExpressionDialectFault">
+				<soap:fault name="UnknownQueryExpressionDialectFault" use="literal" />
+			</fault>
+			<fault name="InvalidQueryExpressionFault">
+				<soap:fault name="InvalidQueryExpressionFault" use="literal" />
+			</fault>
+			<fault name="QueryEvaluationErrorFault">
+				<soap:fault name="QueryEvaluationErrorFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="Print_Job">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/Print_Job" />
+			<input name="Print_JobRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="Print_JobResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="client_error_not_possibleFault">
+				<soap:fault name="client_error_not_possibleFault" use="literal" />
+			</fault>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="Create_Job">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/Create_Job" />
+			<input name="Create-JobRequest">
+				<soap:body use="literal" />
+			</input>
+			<output>
+				<soap:body use="literal" />
+			</output>
+			<fault name="client_error_not_possibleFault">
+				<soap:fault name="client_error_not_possibleFault" use="literal" />
+			</fault>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+		</operation>
+	</binding>
+	<binding name="Job" type="wsrf-prw:Job">
+		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+		<operation name="Destroy">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/Destroy" />
+			<input name="DestroyRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="DestroyResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceNotDestroyedFault">
+				<soap:fault name="ResourceNotDestroyedFault" use="literal" />
+			</fault>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="SetTerminationTime">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/SetTerminationTime" />
+			<input name="SetTerminationTimeRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="SetTerminationTimeResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="UnableToSetTerminationTimeFault">
+				<soap:fault name="UnableToSetTerminationTimeFault" use="literal" />
+			</fault>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+			<fault name="TerminationTimeChangeRejectedFault">
+				<soap:fault name="TerminationTimeChangeRejectedFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="GetResourceProperty">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/GetResourceProperty" />
+			<input name="GetResourcePropertyRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="GetResourcePropertyResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+			<fault name="InvalidResourcePropertyQNameFault">
+				<soap:fault name="InvalidResourcePropertyQNameFault" use="literal" />
+			</fault>
+		</operation>
+		<operation name="Send_Document">
+			<soap:operation soapAction="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-01.wsdl/Send_Document" />
+			<input name="Send_DocumentRequest">
+				<soap:body use="literal" />
+			</input>
+			<output name="Send_DocumentResponse">
+				<soap:body use="literal" />
+			</output>
+			<fault name="ResourceUnknownFault">
+				<soap:fault name="ResourceUnknownFault" use="literal" />
+			</fault>
+			<fault name="client_error_not_possibleFault">
+				<soap:fault name="client_error_not_possibleFault" use="literal" />
+			</fault>
+		</operation>
+	</binding>
+	<service name="PrinterService">
+		<port name="PrinterPort" binding="wsrf-prw:Printer">
+			<soap:address location="http://example.com/" />
+		</port>
+		<port name="JobPort" binding="wsrf-prw:Job">
+			<soap:address location="http://example.com/" />
+		</port>
+	</service>
+</wsdl:definitions>

Added: incubator/apollo/trunk/src/site/content/tutorial/wsrf-Interop-2.0-draft-02.xsd
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/site/content/tutorial/wsrf-Interop-2.0-draft-02.xsd?view=auto&rev=154094
==============================================================================
--- incubator/apollo/trunk/src/site/content/tutorial/wsrf-Interop-2.0-draft-02.xsd (added)
+++ incubator/apollo/trunk/src/site/content/tutorial/wsrf-Interop-2.0-draft-02.xsd Wed Feb 16 14:34:02 2005
@@ -0,0 +1,250 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+xmlns:wsrf-pr="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-02.xsd" 
+targetNamespace="http://docs.oasis-open.org/wsrf/2005/02/wsrf-Interop-2.0-draft-02.xsd" 
+xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" 
+xmlns:wsrf-rl="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceLifetime-1.2-draft-04.xsd" 
+xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-BaseFaults-1.2-draft-03.xsd" 
+xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceProperties-1.2-draft-05.xsd"
+attributeFormDefault="unqualified" elementFormDefault="qualified">
+	<!--
+		Changes:
+		2004-11-17 RAM created
+	-->
+	<xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" 
+	   schemaLocation="../spec/wsa/WS-Addressing-2004_08_10.xsd" />
+	<xsd:import namespace="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceLifetime-1.2-draft-04.xsd" 
+	   schemaLocation="../spec/wsrf/WS-ResourceLifetime-1_2-Draft_04.xsd" />
+	<xsd:import namespace="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-BaseFaults-1.2-draft-03.xsd" 
+	   schemaLocation="../spec/wsrf/WS-BaseFaults-1_2-Draft_03.xsd" />
+	<xsd:import namespace="http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceProperties-1.2-draft-05.xsd" 
+	   schemaLocation="../spec/wsrf/WS-ResourceProperties-1_2-Draft_05.xsd" />
+
+	<!-- Job Schema
+		Changes:
+		2004-11-17 RAM created
+		2004-11-19 TWB Modified. Added named enumerations, converted to WS-A EPR for references, added wsrf-rl properties.
+		2004-11-30 RAM added job-attributes
+		2004-12-02 Added targetnamespace
+		2004-12-04 Eliminate incompatibilities with Java names '-'  -> '_'
+	-->
+	<xsd:element name="job_properties">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="wsrf-pr:job_reference" />
+				<xsd:element ref="wsrf-pr:job_printer_reference" />
+				<xsd:element ref="wsrf-pr:job_name" />
+				<xsd:element ref="wsrf-pr:job_id" />
+				<xsd:element ref="wsrf-pr:job_originating_user_name" />
+				<xsd:element ref="wsrf-pr:job_state" />
+				<xsd:element ref="wsrf-rl:CurrentTime" />
+				<xsd:element ref="wsrf-rl:TerminationTime" />
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="job_attributes">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="wsrf-pr:job_reference" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:job_printer_reference" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:job_name" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:job_id" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:job_originating_user_name" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:job_state" minOccurs="0" />
+				<xsd:element ref="wsrf-rl:CurrentTime" minOccurs="0" />
+				<xsd:element ref="wsrf-rl:TerminationTime" minOccurs="0" />
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="job_id" type="xsd:integer" />
+	<xsd:element name="job_reference" type="wsa:EndpointReferenceType" />
+	<xsd:element name="job_printer_reference" type="wsa:EndpointReferenceType" />
+	<xsd:element name="job_name" type="wsrf-pr:jobNameType" />
+	<xsd:element name="job_originating_user_name" type="wsrf-pr:userNameType" />
+	<xsd:element name="job_state" type="wsrf-pr:jobStateType" />
+	<xsd:simpleType name="jobNameType">
+		<xsd:restriction base="xsd:string">
+			<xsd:minLength value="1" />
+			<xsd:maxLength value="1023" />
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="userNameType">
+		<xsd:restriction base="xsd:string">
+			<xsd:minLength value="1" />
+			<xsd:maxLength value="1023" />
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="jobStateType">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="pending" />
+			<xsd:enumeration value="pending-held" />
+			<xsd:enumeration value="processing" />
+			<xsd:enumeration value="processing-stopped" />
+			<xsd:enumeration value="canceled" />
+			<xsd:enumeration value="aborted" />
+			<xsd:enumeration value="completed" />
+		</xsd:restriction>
+	</xsd:simpleType>
+
+	<!-- Printer Schema
+		Changes:
+		2004-11-17 RAM created
+		2004-11-19 TWB Modified. Added named enumerations, converted to WS-A EPR for references.
+		2004-11-30 RAM added printer-attributes
+		2004-12-02 TWB Added namespaces
+	-->
+
+	<xsd:element name="printer_properties">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="wsrf-pr:printer_reference" />
+				<xsd:element ref="wsrf-pr:printer_name" />
+				<xsd:element ref="wsrf-pr:printer_state" />
+				<xsd:element ref="wsrf-pr:printer_is_accepting_jobs" />
+				<xsd:element ref="wsrf-pr:queued_job_count" />
+				<xsd:element ref="wsrf-pr:operations_supported" />
+				<xsd:element ref="wsrf-pr:document_format_supported" />
+				<xsd:element ref="wsrf-pr:job_hold_until_default" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:job_hold_until_supported" minOccurs="0" maxOccurs="unbounded" />
+				<xsd:element ref="wsrf-rp:QueryExpressionDialect" maxOccurs="unbounded" />
+				<xsd:element ref="wsrf-pr:job_properties" minOccurs="0" maxOccurs="unbounded" />
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="printer_attributes">
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="wsrf-pr:printer_reference" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:printer_name" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:printer_state" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:printer_is_accepting_jobs" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:queued_job_count" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:operations_supported" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:document_format_supported" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:job_hold_until_default" minOccurs="0" />
+				<xsd:element ref="wsrf-pr:job_hold_until_supported" minOccurs="0" maxOccurs="unbounded" />
+				<xsd:element ref="wsrf-pr:job_properties" minOccurs="0" maxOccurs="unbounded" />
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="printer_reference" type="wsa:EndpointReferenceType" />
+	<xsd:element name="printer_name" type="wsrf-pr:name" />
+	<xsd:element name="printer_state" type="wsrf-pr:printerStateType" />
+	<xsd:element name="printer_is_accepting_jobs" type="xsd:boolean" />
+	<xsd:element name="queued_job_count" type="xsd:integer" />
+	<xsd:element name="operations_supported" type="wsrf-pr:operationsType" />
+	<xsd:element name="document_format_supported" type="wsrf-pr:mimeMediaTypes" />
+	<xsd:simpleType name="name">
+		<xsd:restriction base="xsd:string">
+			<xsd:minLength value="1" />
+			<xsd:maxLength value="127" />
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="printerStateType">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="Idle" />
+			<xsd:enumeration value="Processing" />
+			<xsd:enumeration value="Stopped" />
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="operationsType">
+		<xsd:list itemType="wsrf-pr:operations" />
+	</xsd:simpleType>
+	<xsd:simpleType name="operations">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="Print_Job" />
+			<xsd:enumeration value="Print_URI" />
+			<xsd:enumeration value="Validate_Job" />
+			<xsd:enumeration value="Create_Job" />
+			<xsd:enumeration value="Send_Document" />
+			<xsd:enumeration value="Send_URI" />
+			<xsd:enumeration value="Cancel_Job" />
+			<xsd:enumeration value="Get_Job_Attributes" />
+			<xsd:enumeration value="Get_Jobs" />
+			<xsd:enumeration value="Get_Printer_Attributes" />
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:simpleType name="mimeMediaTypeType">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="text/plain" />
+			<xsd:enumeration value="application/postscript" />
+			<xsd:enumeration value="application/vnd.hp-PCL" />
+			<xsd:enumeration value="application/octet-stream" />
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:element name="mimeMediaType" type="wsrf-pr:mimeMediaTypeType" />
+	<xsd:complexType name="mimeMediaTypes">
+		<xsd:sequence>
+			<xsd:element ref="wsrf-pr:mimeMediaType" maxOccurs="unbounded" />
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:element name="job_hold_until_default" type="wsrf-pr:holdPeriod" />
+	<xsd:element name="job_hold_until_supported" type="wsrf-pr:holdPeriod" />
+	<xsd:simpleType name="holdPeriod">
+		<xsd:restriction base="xsd:string">
+			<xsd:pattern value="No-Hold" />
+			<xsd:pattern value="Overnight" />
+			<xsd:pattern value="[A-Z,a-z,-,0-9]{1,10}" />
+		</xsd:restriction>
+	</xsd:simpleType>
+
+
+
+	<xsd:complexType name="DocumentContentType">
+		<xsd:sequence>
+			<xsd:element name="Base64Data" type="xsd:base64Binary" />
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:complexType name="Print_JobAttributesType">
+		<xsd:sequence>
+			<xsd:element ref="wsrf-pr:job_name" />
+			<xsd:element name="document_format" type="wsrf-pr:mimeMediaTypeType" />
+			<xsd:element name="document_content" type="wsrf-pr:DocumentContentType" />
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:element name="Print_JobAttributes" type="wsrf-pr:Print_JobAttributesType" />
+	<xsd:complexType name="CreationResponseType">
+		<xsd:annotation>
+			<xsd:documentation>"Used for responses to Print-Job and Create-Job"</xsd:documentation>
+		</xsd:annotation>
+		<xsd:sequence>
+			<xsd:element ref="wsrf-pr:SuccessStatusCode" />
+			<xsd:element ref="wsrf-pr:job_reference" />
+			<xsd:element ref="wsrf-pr:job_state" />
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:element name="CreationResponse" type="wsrf-pr:CreationResponseType" />
+	<xsd:complexType name="Create_JobAttributesType">
+		<xsd:sequence>
+			<xsd:element ref="wsrf-pr:job_name" />
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:element name="Create_JobAttributes" type="wsrf-pr:Create_JobAttributesType" />
+	<xsd:complexType name="Send_DocumentAttributesType">
+		<xsd:sequence>
+			<xsd:element name="last_document" type="xsd:boolean" />
+			<xsd:element name="document_format" type="xsd:string" />
+			<xsd:element name="document_content" type="wsrf-pr:DocumentContentType" />
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:element name="Send_DocumentAttributes" type="wsrf-pr:Send_DocumentAttributesType" />
+	<xsd:complexType name="Send_DocumentResponseType">
+		<xsd:sequence>
+			<xsd:element ref="wsrf-pr:SuccessStatusCode" />
+			<xsd:element ref="wsrf-pr:job_reference" />
+			<xsd:element ref="wsrf-pr:job_state" />
+		</xsd:sequence>
+	</xsd:complexType>
+	<xsd:element name="Send_DocumentResponse" type="wsrf-pr:Send_DocumentResponseType" />
+	<xsd:complexType name="client_error_not_possibleFaultType">
+		<xsd:complexContent>
+			<xsd:extension base="wsrf-bf:BaseFaultType" />
+		</xsd:complexContent>
+	</xsd:complexType>
+	<xsd:element name="client_error_not_possibleFault" type="wsrf-pr:client_error_not_possibleFaultType" />
+	<xsd:element name="SuccessStatusCode" type="xsd:string">
+		<xsd:annotation>
+			<xsd:documentation>"Use 'successful-ok'. (See RFC 2639, section 2.3.1.1)"</xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+</xsd:schema>

Modified: incubator/apollo/trunk/src/templates/1_2_draft01/GetMultiple.txt
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/templates/1_2_draft01/GetMultiple.txt?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/templates/1_2_draft01/GetMultiple.txt (original)
+++ incubator/apollo/trunk/src/templates/1_2_draft01/GetMultiple.txt Wed Feb 16 14:34:02 2005
@@ -7,5 +7,5 @@
     */
    public org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.GetMultipleResourcePropertiesResponseDocument getMultipleResourceProperties( org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.GetMultipleResourcePropertiesDocument requestDoc )
    {
-      return new org.apache.ws.resource.properties.v1_2.porttype.impl.GetMultipleResourcePropertiesPortTypeImpl( getResourceContext(  ) ).getMultipleResourceProperties( requestDoc );
+      return new org.apache.ws.resource.properties.v1_2_draft01.porttype.impl.GetMultipleResourcePropertiesPortTypeImpl( getResourceContext(  ) ).getMultipleResourceProperties( requestDoc );
    }

Modified: incubator/apollo/trunk/src/templates/1_2_draft01/GetResource.txt
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/templates/1_2_draft01/GetResource.txt?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/templates/1_2_draft01/GetResource.txt (original)
+++ incubator/apollo/trunk/src/templates/1_2_draft01/GetResource.txt Wed Feb 16 14:34:02 2005
@@ -7,5 +7,5 @@
     */
    public org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.GetResourcePropertyResponseDocument getResourceProperty( org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.GetResourcePropertyDocument requestDoc )
    {
-      return new org.apache.ws.resource.properties.v1_2.porttype.impl.GetResourcePropertyPortTypeImpl( getResourceContext(  ) ).getResourceProperty( requestDoc );
+      return new org.apache.ws.resource.properties.v1_2_draft01.porttype.impl.GetResourcePropertyPortTypeImpl( getResourceContext(  ) ).getResourceProperty( requestDoc );
    }

Modified: incubator/apollo/trunk/src/templates/1_2_draft01/Query.txt
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/templates/1_2_draft01/Query.txt?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/templates/1_2_draft01/Query.txt (original)
+++ incubator/apollo/trunk/src/templates/1_2_draft01/Query.txt Wed Feb 16 14:34:02 2005
@@ -7,5 +7,5 @@
     */
    public org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.QueryResourcePropertiesResponseDocument queryResourceProperties( org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.QueryResourcePropertiesDocument requestDoc )
    {
-      return new org.apache.ws.resource.properties.v1_2.porttype.impl.QueryResourcePropertiesPortTypeImpl( getResourceContext(  ) ).queryResourceProperties( requestDoc );
+      return new org.apache.ws.resource.properties.v1_2_draft01.porttype.impl.QueryResourcePropertiesPortTypeImpl( getResourceContext(  ) ).queryResourceProperties( requestDoc );
    }

Modified: incubator/apollo/trunk/src/templates/1_2_draft01/Set.txt
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/templates/1_2_draft01/Set.txt?view=diff&r1=154093&r2=154094
==============================================================================
--- incubator/apollo/trunk/src/templates/1_2_draft01/Set.txt (original)
+++ incubator/apollo/trunk/src/templates/1_2_draft01/Set.txt Wed Feb 16 14:34:02 2005
@@ -7,5 +7,5 @@
     */
    public org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.SetResourcePropertiesResponseDocument setResourceProperties( org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.SetResourcePropertiesDocument requestDoc )
    {
-      return new org.apache.ws.resource.properties.v1_2.porttype.impl.SetResourcePropertiesPortTypeImpl( getResourceContext(  ) ).setResourceProperties( requestDoc );
+      return new org.apache.ws.resource.properties.v1_2_draft01.porttype.impl.SetResourcePropertiesPortTypeImpl( getResourceContext(  ) ).setResourceProperties( requestDoc );
    }



---------------------------------------------------------------------
To unsubscribe, e-mail: apollo-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: apollo-dev-help@ws.apache.org