You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2018/01/18 01:27:43 UTC

svn commit: r1821447 [2/2] - in /incubator/taverna/site/trunk/content/ns/2010: .htaccess port.xsd xml/ xml/.htaccess xml/server.xsd xml/server/ xml/server/.htaccess xml/server/rest.xsd xml/server/tavserv.wadl

Added: incubator/taverna/site/trunk/content/ns/2010/xml/server/tavserv.wadl
URL: http://svn.apache.org/viewvc/incubator/taverna/site/trunk/content/ns/2010/xml/server/tavserv.wadl?rev=1821447&view=auto
==============================================================================
--- incubator/taverna/site/trunk/content/ns/2010/xml/server/tavserv.wadl (added)
+++ incubator/taverna/site/trunk/content/ns/2010/xml/server/tavserv.wadl Thu Jan 18 01:27:43 2018
@@ -0,0 +1,1838 @@
+<application jxb:version="2.1" xmlns="http://wadl.dev.java.net/2009/02"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:rest="http://ns.taverna.org.uk/2010/xml/server/rest/"
+	xmlns:server="http://ns.taverna.org.uk/2010/xml/server/" xmlns:port="http://ns.taverna.org.uk/2010/port/"
+	xmlns:xlink="http://www.w3.org/1999/xlink"
+	xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd ">
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+ -->
+<grammars>
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	xmlns="http://www.w3.org/1999/xlink" attributeFormDefault="unqualified"
+	elementFormDefault="unqualified" targetNamespace="http://www.w3.org/1999/xlink"
+	jxb:version="2.1">
+    <xs:attribute name="href" type="xs:string" />
+</xs:schema>
+
+<xs:schema 
+		xmlns:admin="http://ns.taverna.org.uk/2010/xml/server/admin/"
+		xmlns:feed="http://ns.taverna.org.uk/2010/xml/server/feed/"
+		xmlns:port="http://ns.taverna.org.uk/2010/port/" xmlns:tns="http://ns.taverna.org.uk/2010/xml/server/rest/"
+		xmlns:ts="http://ns.taverna.org.uk/2010/xml/server/" xmlns:ts-rest="http://ns.taverna.org.uk/2010/xml/server/rest/"
+		xmlns:ts-soap="http://ns.taverna.org.uk/2010/xml/server/soap/"
+		xmlns:xlink="http://www.w3.org/1999/xlink" attributeFormDefault="qualified"
+		elementFormDefault="qualified" targetNamespace="http://ns.taverna.org.uk/2010/xml/server/rest/"
+		jxb:version="2.1">
+    <xs:annotation>
+    	<xs:appinfo>
+			<jxb:schemaBindings>
+				<jxb:package name="org.apache.taverna.server.client.rest" />
+			</jxb:schemaBindings>
+    	</xs:appinfo>
+    </xs:annotation>
+    <xs:import namespace="http://ns.taverna.org.uk/2010/xml/server/" />
+    <xs:import namespace="http://www.w3.org/1999/xlink" />
+    <xs:element name="capabilities">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element maxOccurs="unbounded" minOccurs="0" name="capability" type="ts:Capability" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="credential" type="ts-rest:Credential" />
+    <xs:element name="credentials" type="ts-rest:credentialList" />
+    <xs:element name="directoryContents" type="ts-rest:DirectoryContents" />
+    <xs:element name="enabledNotificationFabrics">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element maxOccurs="unbounded" minOccurs="0" name="notifier" type="xs:string" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="filesystemOperation" type="ts-rest:FilesystemCreationOperation" />
+    <xs:element name="listenerDefinition" type="ts-rest:ListenerDefinition" />
+    <xs:element name="listenerDescription" type="ts-rest:ListenerDescription" />
+    <xs:element name="listeners">
+        <xs:complexType>
+            <xs:complexContent>
+                <xs:extension base="ts:VersionedElement">
+                    <xs:sequence>
+                        <xs:element maxOccurs="unbounded" minOccurs="0" name="listener" type="ts-rest:ListenerDescription" />
+                    </xs:sequence>
+                </xs:extension>
+            </xs:complexContent>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="mkdir" type="ts-rest:MakeDirectory" />
+    <xs:element name="permissionUpdate" type="ts-rest:permissionDescription" />
+    <xs:element name="permissionsDescriptor" type="ts-rest:permissionsDescription" />
+    <xs:element name="permittedListeners">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element maxOccurs="unbounded" minOccurs="0" name="type" type="xs:string" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="permittedWorkflows">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element maxOccurs="unbounded" minOccurs="0" name="workflow" type="xs:string" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="policyDescription">
+        <xs:complexType>
+            <xs:complexContent>
+                <xs:extension base="ts:VersionedElement">
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="runLimit" type="ts:Location" />
+                        <xs:element minOccurs="0" name="operatingLimit" type="ts:Location" />
+                        <xs:element minOccurs="0" name="permittedWorkflows" type="ts:Location" />
+                        <xs:element minOccurs="0" name="permittedListenerTypes" type="ts:Location" />
+                        <xs:element minOccurs="0" name="enabledNotificationFabrics" type="ts:Location" />
+                        <xs:element minOccurs="0" name="capabilities" type="ts:Location" />
+                    </xs:sequence>
+                </xs:extension>
+            </xs:complexContent>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="properties">
+        <xs:complexType>
+            <xs:complexContent>
+                <xs:extension base="ts:VersionedElement">
+                    <xs:sequence>
+                        <xs:element maxOccurs="unbounded" minOccurs="0" name="property" type="ts-rest:PropertyDescription" />
+                    </xs:sequence>
+                </xs:extension>
+            </xs:complexContent>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="runDescription">
+        <xs:complexType>
+            <xs:complexContent>
+                <xs:extension base="ts:VersionedElement">
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="expiry">
+                            <xs:complexType>
+                                <xs:simpleContent>
+                                    <xs:extension base="xs:string">
+                                        <xs:attribute ref="xlink:href" />
+                                    </xs:extension>
+                                </xs:simpleContent>
+                            </xs:complexType>
+                        </xs:element>
+                        <xs:element minOccurs="0" name="creationWorkflow" type="ts:Location" />
+                        <xs:element minOccurs="0" name="createTime" type="ts:Location" />
+                        <xs:element minOccurs="0" name="startTime" type="ts:Location" />
+                        <xs:element minOccurs="0" name="finishTime" type="ts:Location" />
+                        <xs:element minOccurs="0" name="status" type="ts:Location" />
+                        <xs:element minOccurs="0" name="workingDirectory" type="ts:Location" />
+                        <xs:element minOccurs="0" name="inputs" type="ts:Location" />
+                        <xs:element minOccurs="0" name="output" type="ts:Location" />
+                        <xs:element minOccurs="0" name="securityContext" type="ts:Location" />
+                        <xs:element minOccurs="0" name="listeners">
+                            <xs:complexType>
+                                <xs:complexContent>
+                                    <xs:extension base="ts:Location">
+                                        <xs:sequence>
+                                            <xs:element maxOccurs="unbounded" minOccurs="0" name="listener" nillable="true" type="ts:Location" />
+                                        </xs:sequence>
+                                    </xs:extension>
+                                </xs:complexContent>
+                            </xs:complexType>
+                        </xs:element>
+                        <xs:element minOccurs="0" name="interaction" type="ts:Location" />
+                        <xs:element minOccurs="0" name="name" type="ts:Location" />
+                        <xs:element minOccurs="0" name="stdout" type="ts:Location" />
+                        <xs:element minOccurs="0" name="stderr" type="ts:Location" />
+                        <xs:element minOccurs="0" name="usage" type="ts:Location" />
+                        <xs:element minOccurs="0" name="log" type="ts:Location" />
+                        <xs:element minOccurs="0" name="run-bundle" type="ts:Location" />
+                        <xs:element minOccurs="0" name="generate-provenance" type="ts:Location" />
+                    </xs:sequence>
+                    <xs:attribute ref="ts-rest:owner" />
+                </xs:extension>
+            </xs:complexContent>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="runInput" type="ts-rest:InputDescription" />
+    <xs:element name="runInputs" type="ts-rest:TavernaRunInputs" />
+    <xs:element name="runList">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element maxOccurs="unbounded" minOccurs="0" name="run" type="ts:TavernaRun" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="securityDescriptor" type="ts-rest:SecurityDescriptor" />
+    <xs:element name="serverDescription">
+        <xs:complexType>
+            <xs:complexContent>
+                <xs:extension base="ts:VersionedElement">
+                    <xs:sequence>
+                        <xs:element minOccurs="0" name="runs" type="ts:Location" />
+                        <xs:element minOccurs="0" name="policy" type="ts:Location" />
+                        <xs:element minOccurs="0" name="feed" type="ts:Location" />
+                        <xs:element minOccurs="0" name="interactionFeed" type="ts:Location" />
+                    </xs:sequence>
+                </xs:extension>
+            </xs:complexContent>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="trustedIdentities" type="ts-rest:trustList" />
+    <xs:element name="upload" type="ts-rest:UploadFile" />
+    <xs:element name="userPermission" type="ts-rest:linkedPermissionDescription" />
+    <xs:complexType name="InputDescription">
+        <xs:complexContent>
+            <xs:extension base="ts:VersionedElement">
+                <xs:sequence>
+                    <xs:choice minOccurs="0">
+                        <xs:element name="file">
+                            <xs:complexType>
+                                <xs:simpleContent>
+                                    <xs:extension base="ts-rest:InputContents" />
+                                </xs:simpleContent>
+                            </xs:complexType>
+                        </xs:element>
+                        <xs:element name="reference">
+                            <xs:complexType>
+                                <xs:simpleContent>
+                                    <xs:extension base="ts-rest:InputContents" />
+                                </xs:simpleContent>
+                            </xs:complexType>
+                        </xs:element>
+                        <xs:element name="value">
+                            <xs:complexType>
+                                <xs:simpleContent>
+                                    <xs:extension base="ts-rest:InputContents" />
+                                </xs:simpleContent>
+                            </xs:complexType>
+                        </xs:element>
+                    </xs:choice>
+                </xs:sequence>
+                <xs:attribute ref="ts-rest:name" />
+                <xs:attribute ref="ts-rest:descriptorRef" />
+                <xs:attribute ref="ts-rest:listDelimiter" />
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:simpleType name="InputContents">
+        <xs:restriction base="xs:string" />
+    </xs:simpleType>
+    <xs:complexType name="ListenerDescription">
+        <xs:complexContent>
+            <xs:extension base="ts:VersionedElement">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="configuration" type="ts:Location" />
+                    <xs:element minOccurs="0" name="properties">
+                        <xs:complexType>
+                            <xs:sequence>
+                                <xs:element maxOccurs="unbounded" minOccurs="0" name="property" type="ts-rest:PropertyDescription" />
+                            </xs:sequence>
+                        </xs:complexType>
+                    </xs:element>
+                </xs:sequence>
+                <xs:attribute ref="xlink:href" />
+                <xs:attribute ref="ts-rest:name" />
+                <xs:attribute ref="ts-rest:type" />
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="PropertyDescription">
+        <xs:complexContent>
+            <xs:extension base="ts:Location">
+                <xs:sequence />
+                <xs:attribute ref="ts-rest:name" />
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="TavernaRunInputs">
+        <xs:complexContent>
+            <xs:extension base="ts:VersionedElement">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="expected" type="ts:Location" />
+                    <xs:element minOccurs="0" name="baclava" type="ts:Location" />
+                    <xs:element maxOccurs="unbounded" minOccurs="0" name="input" nillable="true" type="ts:Location" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType final="extension restriction" name="Credential">
+        <xs:choice>
+            <xs:element ref="ts:keypair" />
+            <xs:element ref="ts:userpass" />
+        </xs:choice>
+    </xs:complexType>
+    <xs:complexType name="DirectoryContents">
+        <xs:sequence>
+            <xs:choice maxOccurs="unbounded" minOccurs="0">
+                <xs:element ref="ts:dir" />
+                <xs:element ref="ts:file" />
+            </xs:choice>
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType name="FilesystemCreationOperation">
+        <xs:simpleContent>
+            <xs:extension base="xs:base64Binary">
+                <xs:attribute ref="ts-rest:name" />
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+    <xs:complexType name="MakeDirectory">
+        <xs:simpleContent>
+            <xs:extension base="ts-rest:FilesystemCreationOperation" />
+        </xs:simpleContent>
+    </xs:complexType>
+    <xs:complexType name="UploadFile">
+        <xs:simpleContent>
+            <xs:extension base="ts-rest:FilesystemCreationOperation" />
+        </xs:simpleContent>
+    </xs:complexType>
+    <xs:complexType name="permissionsDescription">
+        <xs:complexContent>
+            <xs:extension base="ts:VersionedElement">
+                <xs:sequence>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" name="permission" type="ts-rest:linkedPermissionDescription" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="linkedPermissionDescription">
+        <xs:complexContent>
+            <xs:extension base="ts:Location">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="userName" type="xs:string" />
+                    <xs:element minOccurs="0" name="permission" type="ts:Permission" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType final="extension restriction" name="trustList">
+        <xs:complexContent>
+            <xs:extension base="ts:VersionedElement">
+                <xs:sequence>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" name="trust" type="ts:TrustDescriptor" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="permissionDescription">
+        <xs:sequence>
+            <xs:element minOccurs="0" name="userName" type="xs:string" />
+            <xs:element minOccurs="0" name="permission" type="ts:Permission" />
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType final="extension restriction" name="SecurityDescriptor">
+        <xs:complexContent>
+            <xs:extension base="ts:VersionedElement">
+                <xs:sequence>
+                    <xs:element minOccurs="0" name="owner" type="xs:string" />
+                    <xs:element minOccurs="0" name="permissions" type="ts:Location" />
+                    <xs:element minOccurs="0" name="credentials" type="ts-rest:CredentialCollection" />
+                    <xs:element minOccurs="0" name="trusts" type="ts-rest:TrustCollection" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType final="extension restriction" name="CredentialCollection">
+        <xs:sequence>
+            <xs:element maxOccurs="unbounded" minOccurs="0" ref="ts-rest:credential" />
+        </xs:sequence>
+        <xs:attribute ref="xlink:href" />
+    </xs:complexType>
+    <xs:complexType final="extension restriction" name="TrustCollection">
+        <xs:sequence>
+            <xs:element maxOccurs="unbounded" minOccurs="0" name="trust" type="ts:TrustDescriptor" />
+        </xs:sequence>
+        <xs:attribute ref="xlink:href" />
+    </xs:complexType>
+    <xs:complexType final="extension restriction" name="credentialList">
+        <xs:complexContent>
+            <xs:extension base="ts:VersionedElement">
+                <xs:sequence>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" ref="ts-rest:credential" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="ListenerDefinition">
+        <xs:simpleContent>
+            <xs:extension base="xs:string">
+                <xs:attribute ref="ts-rest:type" />
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+    <xs:attribute name="descriptorRef" type="xs:anyURI" />
+    <xs:attribute name="listDelimiter" type="xs:string" />
+    <xs:attribute name="name" type="xs:string" />
+    <xs:attribute name="owner" type="xs:string" />
+    <xs:attribute name="type" type="xs:string" />
+</xs:schema>
+<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:port="http://ns.taverna.org.uk/2010/port/"
+	xmlns:run="http://ns.taverna.org.uk/2010/run/" xmlns:tns="http://ns.taverna.org.uk/2010/port/"
+	xmlns:xlink="http://www.w3.org/1999/xlink" attributeFormDefault="qualified"
+	elementFormDefault="qualified" targetNamespace="http://ns.taverna.org.uk/2010/port/"
+	jxb:version="2.1">
+    <xs:annotation>
+    	<xs:appinfo>
+			<jxb:schemaBindings>
+				<jxb:package name="org.apache.taverna.server.client.port" />
+			</jxb:schemaBindings>
+    	</xs:appinfo>
+    </xs:annotation>
+    <xs:import namespace="http://www.w3.org/1999/xlink" />
+    <xs:element name="inputDescription" type="port:inputDescription" />
+    <xs:element name="workflowOutputs" type="port:outputDescription" />
+    <xs:complexType name="outputDescription">
+        <xs:complexContent>
+            <xs:extension base="port:PortDescription">
+                <xs:sequence>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" name="output" type="port:OutputPort" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType abstract="true" name="PortDescription">
+        <xs:sequence />
+        <xs:attribute ref="port:workflowId" />
+        <xs:attribute ref="port:workflowRun" />
+        <xs:attribute ref="port:workflowRunId" />
+    </xs:complexType>
+    <xs:complexType name="OutputPort">
+        <xs:complexContent>
+            <xs:extension base="port:Port">
+                <xs:choice>
+                    <xs:element name="value" type="port:LeafValue" />
+                    <xs:element name="list" type="port:ListValue" />
+                    <xs:element name="error" type="port:ErrorValue" />
+                    <xs:element name="absent" type="port:AbsentValue" />
+                </xs:choice>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="Port">
+        <xs:sequence />
+        <xs:attribute ref="port:name" use="required" />
+        <xs:attribute ref="port:depth" />
+    </xs:complexType>
+    <xs:complexType name="LeafValue">
+        <xs:complexContent>
+            <xs:extension base="port:Value">
+                <xs:sequence />
+                <xs:attribute ref="port:contentFile" />
+                <xs:attribute ref="port:contentType" />
+                <xs:attribute ref="port:contentByteLength" />
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType abstract="true" name="Value">
+        <xs:sequence />
+        <xs:attribute ref="xlink:href" />
+    </xs:complexType>
+    <xs:complexType name="ErrorValue">
+        <xs:complexContent>
+            <xs:extension base="port:Value">
+                <xs:sequence />
+                <xs:attribute ref="port:depth" />
+                <xs:attribute ref="port:errorFile" />
+                <xs:attribute ref="port:errorByteLength" />
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="ListValue">
+        <xs:complexContent>
+            <xs:extension base="port:Value">
+                <xs:sequence>
+                    <xs:choice maxOccurs="unbounded" minOccurs="0">
+                        <xs:element name="value" type="port:LeafValue" />
+                        <xs:element name="list" type="port:ListValue" />
+                        <xs:element name="error" type="port:ErrorValue" />
+                        <xs:element name="absent" type="port:AbsentValue" />
+                    </xs:choice>
+                </xs:sequence>
+                <xs:attribute ref="port:length" />
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="AbsentValue">
+        <xs:complexContent>
+            <xs:extension base="port:Value">
+                <xs:sequence />
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="inputDescription">
+        <xs:complexContent>
+            <xs:extension base="port:PortDescription">
+                <xs:sequence>
+                    <xs:element maxOccurs="unbounded" minOccurs="0" name="input" type="port:InputPort" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="InputPort">
+        <xs:complexContent>
+            <xs:extension base="port:Port">
+                <xs:sequence />
+                <xs:attribute ref="xlink:href" />
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:attribute name="contentByteLength" type="xs:long" />
+    <xs:attribute name="contentFile" type="xs:string" />
+    <xs:attribute name="contentType" type="xs:string" />
+    <xs:attribute name="depth" type="xs:int" />
+    <xs:attribute name="errorByteLength" type="xs:long" />
+    <xs:attribute name="errorFile" type="xs:string" />
+    <xs:attribute name="length" type="xs:int" />
+    <xs:attribute name="name" type="xs:ID" />
+    <xs:attribute name="workflowId" type="xs:string" />
+    <xs:attribute name="workflowRun" type="xs:anyURI" />
+    <xs:attribute name="workflowRunId" type="xs:string" />
+</xs:schema>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	xmlns:admin="http://ns.taverna.org.uk/2010/xml/server/admin/"
+	xmlns:feed="http://ns.taverna.org.uk/2010/xml/server/feed/" xmlns:tns="http://ns.taverna.org.uk/2010/xml/server/"
+	xmlns:ts="http://ns.taverna.org.uk/2010/xml/server/" xmlns:ts-rest="http://ns.taverna.org.uk/2010/xml/server/rest/"
+	xmlns:ts-soap="http://ns.taverna.org.uk/2010/xml/server/soap/"
+	xmlns:xlink="http://www.w3.org/1999/xlink" attributeFormDefault="qualified"
+	elementFormDefault="qualified" targetNamespace="http://ns.taverna.org.uk/2010/xml/server/"
+	jxb:version="2.1">
+    <xs:annotation>
+    	<xs:appinfo>
+			<jxb:schemaBindings>
+				<jxb:package name="org.apache.taverna.server.client.generic" />
+			</jxb:schemaBindings>
+    	</xs:appinfo>
+    </xs:annotation>
+    <xs:import namespace="http://www.w3.org/1999/xlink" />
+    <xs:element name="capability" type="ts:Capability" />
+    <xs:element name="dir" type="ts:DirectoryReference" />
+    <xs:element name="file" type="ts:FileReference" />
+    <xs:element name="keypair" type="ts:KeyPairCredential" />
+    <xs:element name="runReference" type="ts:TavernaRun" />
+    <xs:element name="trustedIdentity" type="ts:TrustDescriptor" />
+    <xs:element name="userpass" type="ts:PasswordCredential" />
+    <xs:element name="workflow" type="ts:Workflow" />
+    <xs:complexType abstract="true" name="VersionedElement">
+        <xs:sequence />
+        <xs:attribute ref="ts:serverVersion" />
+        <xs:attribute ref="ts:serverRevision" />
+        <xs:attribute ref="ts:serverBuildTimestamp" />
+    </xs:complexType>
+    <xs:complexType name="Location">
+        <xs:sequence />
+        <xs:attribute ref="xlink:href" />
+    </xs:complexType>
+    <xs:complexType name="Capability">
+        <xs:sequence />
+        <xs:attribute ref="ts:capability" />
+        <xs:attribute ref="ts:version" />
+    </xs:complexType>
+    <xs:complexType name="KeyPairCredential">
+        <xs:complexContent>
+            <xs:extension base="ts:CredentialDescriptor">
+                <xs:sequence>
+                    <xs:element name="credentialName" type="xs:string" />
+                    <xs:element minOccurs="0" name="credentialFile" type="xs:string" />
+                    <xs:element minOccurs="0" name="fileType" type="xs:string" />
+                    <xs:element minOccurs="0" name="unlockPassword" type="xs:string" />
+                    <xs:element minOccurs="0" name="credentialBytes" type="xs:base64Binary" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType abstract="true" name="CredentialDescriptor">
+        <xs:sequence>
+            <xs:element minOccurs="0" name="serviceURI" type="xs:anyURI" />
+        </xs:sequence>
+        <xs:attribute ref="xlink:href" />
+    </xs:complexType>
+    <xs:complexType name="PasswordCredential">
+        <xs:complexContent>
+            <xs:extension base="ts:CredentialDescriptor">
+                <xs:sequence>
+                    <xs:element name="username" type="xs:string" />
+                    <xs:element name="password" type="xs:string" />
+                </xs:sequence>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <xs:complexType name="TavernaRun">
+        <xs:simpleContent>
+            <xs:extension base="xs:string">
+                <xs:attribute ref="xlink:href" />
+                <xs:attribute ref="ts:serverVersion" />
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+    <xs:complexType name="DirectoryEntry">
+        <xs:simpleContent>
+            <xs:extension base="xs:string">
+                <xs:attribute ref="xlink:href" />
+                <xs:attribute ref="ts:name" />
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+    <xs:complexType name="DirectoryReference">
+        <xs:simpleContent>
+            <xs:extension base="ts:DirectoryEntry" />
+        </xs:simpleContent>
+    </xs:complexType>
+    <xs:complexType name="FileReference">
+        <xs:simpleContent>
+            <xs:extension base="ts:DirectoryEntry" />
+        </xs:simpleContent>
+    </xs:complexType>
+    <xs:complexType name="Workflow">
+        <xs:sequence>
+            <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax" />
+        </xs:sequence>
+    </xs:complexType>
+    <xs:complexType final="extension restriction" name="TrustDescriptor">
+        <xs:sequence>
+            <xs:element minOccurs="0" name="certificateFile" type="xs:string" />
+            <xs:element minOccurs="0" name="fileType" type="xs:string" />
+            <xs:element minOccurs="0" name="certificateBytes" type="xs:base64Binary" />
+            <xs:element maxOccurs="unbounded" minOccurs="0" name="serverName" type="xs:string" />
+        </xs:sequence>
+        <xs:attribute ref="xlink:href" />
+    </xs:complexType>
+    <xs:simpleType name="Permission">
+        <xs:restriction base="xs:string">
+            <xs:enumeration value="none" />
+            <xs:enumeration value="read" />
+            <xs:enumeration value="update" />
+            <xs:enumeration value="destroy" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:attribute name="capability" type="xs:anyURI" />
+    <xs:attribute name="name" type="xs:string" />
+    <xs:attribute name="serverBuildTimestamp" type="xs:string" />
+    <xs:attribute name="serverRevision" type="xs:string" />
+    <xs:attribute name="serverVersion" type="xs:string" />
+    <xs:attribute name="version" type="xs:string" />
+</xs:schema>
+</grammars>
+	<resources base="http://example.com/taverna/rest">
+		<resource path="/">
+			<method name="GET">
+				<doc>Produces the description of the service.</doc>
+				<request></request>
+				<response>
+					<representation mediaType="application/xml" element="rest:serverDescription"></representation>
+					<representation mediaType="application/json"></representation>
+				</response>
+			</method>
+			<method name="OPTIONS">
+				<doc>Produces the description of the service.</doc>
+				<response>
+					<representation mediaType="application/octet-stream"></representation>
+				</response>
+			</method>
+			<resource path="runs">
+				<method name="GET">
+					<doc>Produces a list of all runs visible to the user.</doc>
+					<request></request>
+					<response>
+						<representation mediaType="application/xml" element="rest:runList"></representation>
+						<representation mediaType="application/json"></representation>
+					</response>
+				</method>
+				<method name="OPTIONS">
+					<doc>Produces the description of the operations on the collection
+						of runs.</doc>
+					<response>
+						<representation mediaType="application/octet-stream"></representation>
+					</response>
+				</method>
+				<method name="POST">
+					<doc>Accepts (or not) a request to create a new run executing the
+						given workflow.</doc>
+					<request>
+						<representation mediaType="application/vnd.taverna.t2flow+xml" element="server:workflow">
+							<doc>Accepts (or not) a request to create a new run executing the
+								given workflow.</doc>
+						</representation>
+						<representation mediaType="application/xml" element="server:workflow">
+							<doc>Accepts (or not) a request to create a new run executing the
+								given workflow.</doc>
+						</representation>
+					</request>
+					<response>
+						<representation mediaType="application/octet-stream"></representation>
+					</response>
+				</method>
+				<method name="POST">
+					<doc>Accepts a URL to a workflow to download and run. The URL must
+						be hosted on a publicly-accessible service.</doc>
+					<request>
+						<representation mediaType="text/uri-list">
+							<doc>Accepts a URL to a workflow to download and run. The URL
+								must be hosted on a publicly-accessible service.</doc>
+						</representation>
+					</request>
+					<response>
+						<representation mediaType="application/octet-stream"></representation>
+					</response>
+				</method>
+			</resource>
+			<resource path="/policy">
+				<method name="GET">
+					<doc>Describe the parts of this policy.</doc>
+					<request></request>
+					<response>
+						<representation mediaType="application/xml" element="rest:policyDescription"></representation>
+						<representation mediaType="application/json"></representation>
+					</response>
+				</method>
+				<resource path="/capabilities">
+					<method name="GET">
+						<doc>Gets a description of the capabilities supported by this
+							installation of Taverna Server.</doc>
+						<response>
+							<representation mediaType="application/xml" element="rest:capabilities"></representation>
+							<representation mediaType="application/json"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/enabledNotificationFabrics">
+					<method name="GET">
+						<doc>Gets the list of supported, enabled notification fabrics.
+							Each corresponds (approximately) to a protocol, e.g., email.
+						</doc>
+						<response>
+							<representation mediaType="application/xml" element="rest:enabledNotificationFabrics"></representation>
+							<representation mediaType="application/json"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/operatingLimit">
+					<method name="GET">
+						<doc>Gets the maximum number of simultaneously operating runs that
+							the user may have. Note that this is often a global limit; it
+							does not represent a promise that a particular user may be able
+							to have that many operating runs at once.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:int">
+									<doc>Gets the maximum number of simultaneously operating runs
+										that the user may have. Note that this is often a global
+										limit; it does not represent a promise that a particular user
+										may be able to have that many operating runs at once.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/permittedListenerTypes">
+					<method name="GET">
+						<doc>Gets the list of permitted event listener types.</doc>
+						<response>
+							<representation mediaType="application/xml" element="rest:permittedListeners"></representation>
+							<representation mediaType="application/json"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/permittedWorkflows">
+					<method name="GET">
+						<doc>Gets the list of permitted workflows.</doc>
+						<response>
+							<representation mediaType="application/xml" element="rest:permittedWorkflows"></representation>
+							<representation mediaType="application/json"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/runLimit">
+					<method name="GET">
+						<doc>Gets the maximum number of simultaneous runs in any state
+							that the user may create.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:int">
+									<doc>Gets the maximum number of simultaneous runs in any state
+										that the user may create.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+				</resource>
+			</resource>
+			<resource path="/runs/{runName}">
+				<doc>This represents how a Taverna Server workflow run looks to a
+					RESTful API.</doc>
+				<param name="runName" style="template" type="xs:string" />
+				<method name="DELETE">
+					<doc>Deletes a workflow run.</doc>
+					<response>
+						<representation mediaType="application/octet-stream"></representation>
+					</response>
+				</method>
+				<method name="GET">
+					<doc>Describes a workflow run.</doc>
+					<request></request>
+					<response>
+						<representation mediaType="application/xml" element="rest:runDescription"></representation>
+						<representation mediaType="application/json"></representation>
+					</response>
+				</method>
+				<method name="OPTIONS">
+					<doc>Produces the description of the run.</doc>
+					<response>
+						<representation mediaType="application/octet-stream"></representation>
+					</response>
+				</method>
+				<resource path="/createTime">
+					<method name="GET">
+						<doc>Gives the time when the workflow run was first submitted to
+							the server.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Gives the time when the workflow run was first submitted
+										to the server.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of the run create time.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/expiry">
+					<method name="GET">
+						<doc>Gives the time when the workflow run becomes eligible for
+							automatic deletion.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Gives the time when the workflow run becomes eligible for
+										automatic deletion.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of the run expiry.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+					<method name="PUT">
+						<doc>Sets the time when the workflow run becomes eligible for
+							automatic deletion.</doc>
+						<request>
+							<representation mediaType="text/plain">
+								<param name="request" style="plain" type="xs:string">
+									<doc>Sets the time when the workflow run becomes eligible for
+										automatic deletion.</doc>
+								</param>
+							</representation>
+						</request>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Sets the time when the workflow run becomes eligible for
+										automatic deletion.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/finishTime">
+					<method name="GET">
+						<doc>Gives the time when the workflow run was first detected as
+							finished, or an empty string if it has not yet finished
+							(including if it has never started).</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Gives the time when the workflow run was first detected as
+										finished, or an empty string if it has not yet finished
+										(including if it has never started).</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of the run finish time.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/generate-provenance">
+					<method name="GET">
+						<doc>Whether to create the run bundle for the workflow run.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:boolean">
+									<doc>Whether to create the run bundle for the workflow run.
+									</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Whether to create the run bundle for the workflow run.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+					<method name="PUT">
+						<doc>Whether to create the run bundle for the workflow run.</doc>
+						<request>
+							<representation mediaType="text/plain">
+								<param name="request" style="plain" type="xs:boolean">
+									<doc>Whether to create the run bundle for the workflow run.
+									</doc>
+								</param>
+							</representation>
+						</request>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:boolean">
+									<doc>Whether to create the run bundle for the workflow run.
+									</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/log">
+					<method name="GET">
+						<doc>Return the log for the workflow run.</doc>
+						<response>
+							<representation mediaType="text/plain"></representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Return the log for the workflow run.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/name">
+					<method name="GET">
+						<doc>Gives the descriptive name of the workflow run.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Gives the descriptive name of the workflow run.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of the operations on the run&apos;s
+							descriptive name.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+					<method name="PUT">
+						<doc>Set the descriptive name of the workflow run. Note that this
+							value may be arbitrarily truncated by the implementation.</doc>
+						<request>
+							<representation mediaType="text/plain">
+								<param name="request" style="plain" type="xs:string">
+									<doc>Set the descriptive name of the workflow run. Note that
+										this value may be arbitrarily truncated by the implementation.
+									</doc>
+								</param>
+							</representation>
+						</request>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Set the descriptive name of the workflow run. Note that
+										this value may be arbitrarily truncated by the implementation.
+									</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/output">
+					<method name="GET">
+						<doc>Gives the Baclava file where output will be written; empty
+							means use multiple simple files in the out directory.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Gives the Baclava file where output will be written; empty
+										means use multiple simple files in the out directory.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+					<method name="GET">
+						<doc>Gives a description of the outputs, as currently understood
+						</doc>
+						<request></request>
+						<response>
+							<representation mediaType="application/xml" element="port:workflowOutputs"></representation>
+							<representation mediaType="application/json"></representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of the run output.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+					<method name="PUT">
+						<doc>Sets the Baclava file where output will be written; empty
+							means use multiple simple files in the out directory.</doc>
+						<request>
+							<representation mediaType="text/plain">
+								<param name="request" style="plain" type="xs:string">
+									<doc>Sets the Baclava file where output will be written; empty
+										means use multiple simple files in the out directory.</doc>
+								</param>
+							</representation>
+						</request>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Sets the Baclava file where output will be written; empty
+										means use multiple simple files in the out directory.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/run-bundle">
+					<method name="GET">
+						<doc>Return the run bundle for the workflow run.</doc>
+						<response>
+							<representation mediaType="application/vnd.wf4ever.robundle+zip"></representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Return the run bundle for the workflow run.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/startTime">
+					<method name="GET">
+						<doc>Gives the time when the workflow run was started, or an empty
+							string if the run has not yet started.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Gives the time when the workflow run was started, or an
+										empty string if the run has not yet started.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of the run start time.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/status">
+					<method name="GET">
+						<doc>Gives the current status of the workflow run.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Gives the current status of the workflow run.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of the run status.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+					<method name="PUT">
+						<doc>Attempts to update the status of the workflow run.</doc>
+						<request>
+							<representation mediaType="text/plain">
+								<param name="request" style="plain" type="xs:string">
+									<doc>Attempts to update the status of the workflow run.</doc>
+								</param>
+							</representation>
+						</request>
+						<response>
+							<representation mediaType="text/plain"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/stderr">
+					<method name="GET">
+						<doc>Return the stderr for the workflow run.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Return the stderr for the workflow run.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Return the stderr for the workflow run.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/stdout">
+					<method name="GET">
+						<doc>Return the stdout for the workflow run.</doc>
+						<response>
+							<representation mediaType="text/plain">
+								<param name="result" style="plain" type="xs:string">
+									<doc>Return the stdout for the workflow run.</doc>
+								</param>
+							</representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Return the stdout for the workflow run.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/usage">
+					<method name="GET">
+						<doc>Return the usage record for the workflow run.</doc>
+						<response>
+							<representation mediaType="application/xml"></representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Return the usage record for the workflow run.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/workflow">
+					<method name="GET">
+						<doc>Gives the workflow document used to create the workflow run.
+						</doc>
+						<response>
+							<representation mediaType="application/vnd.taverna.t2flow+xml" element="server:workflow"></representation>
+							<representation mediaType="application/xml" element="server:workflow"></representation>
+							<representation mediaType="application/json"></representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of the run workflow.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+				</resource>
+				<resource path="/input">
+					<doc>This represents how a Taverna Server workflow run&apos;s
+						inputs looks to a RESTful API.</doc>
+					<method name="GET">
+						<doc>Describe the sub-URIs of this resource.</doc>
+						<response>
+							<representation mediaType="application/xml" element="rest:runInputs"></representation>
+							<representation mediaType="application/json"></representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of one run&apos;s inputs&apos;
+							operations.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+					<resource path="/baclava">
+						<method name="GET">
+							<doc>Gives the Baclava file describing the inputs, or empty if
+								individual files are used.</doc>
+							<response>
+								<representation mediaType="text/plain">
+									<param name="result" style="plain" type="xs:string">
+										<doc>Gives the Baclava file describing the inputs, or empty if
+											individual files are used.</doc>
+									</param>
+								</representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of the inputs&apos; baclava
+								operations.</doc>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="PUT">
+							<doc>Sets the Baclava file describing the inputs.</doc>
+							<request>
+								<representation mediaType="text/plain">
+									<param name="request" style="plain" type="xs:string">
+										<doc>Sets the Baclava file describing the inputs.</doc>
+									</param>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="text/plain">
+									<param name="result" style="plain" type="xs:string">
+										<doc>Sets the Baclava file describing the inputs.</doc>
+									</param>
+								</representation>
+							</response>
+						</method>
+					</resource>
+					<resource path="/expected">
+						<method name="GET">
+							<doc>Describe the expected inputs of this workflow run.</doc>
+							<response>
+								<representation mediaType="application/xml" element="port:inputDescription"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of the expected inputs&apos;
+								operations.</doc>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+					</resource>
+					<resource path="/input/{name}">
+						<param name="name" style="template" type="xs:string" />
+						<method name="GET">
+							<doc>Gives a description of what is used to supply a particular
+								input.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/xml" element="rest:runInput"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of the one input&apos;s operations.
+							</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="PUT">
+							<doc>Sets the source for a particular input port.</doc>
+							<request>
+								<representation mediaType="application/xml" element="rest:runInput">
+									<doc>Sets the source for a particular input port.</doc>
+								</representation>
+								<representation mediaType="application/json">
+									<doc>Sets the source for a particular input port.</doc>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="application/xml" element="rest:runInput"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+					</resource>
+				</resource>
+				<resource path="/interaction">
+					<method name="GET">
+						<doc>Get the feed document for this ATOM feed.</doc>
+						<response>
+							<representation mediaType="application/atom+xml"></representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Describes what HTTP operations are supported on the feed.
+						</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+					<method name="POST">
+						<doc>Adds an entry to this ATOM feed.</doc>
+						<request>
+							<representation mediaType="application/atom+xml">
+								<doc>Adds an entry to this ATOM feed.</doc>
+							</representation>
+						</request>
+						<response>
+							<representation mediaType="application/atom+xml"></representation>
+						</response>
+					</method>
+					<resource path="/{id}">
+						<param name="id" style="template" type="xs:string" />
+						<method name="DELETE">
+							<doc>Deletes an entry from this ATOM feed.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="text/plain">
+									<param name="result" style="plain" type="xs:string">
+										<doc>Deletes an entry from this ATOM feed.</doc>
+									</param>
+								</representation>
+							</response>
+						</method>
+						<method name="GET">
+							<doc>Get the entry with a particular ID within this ATOM feed.
+							</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/atom+xml"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Describes what HTTP operations are supported on an entry.
+							</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+					</resource>
+				</resource>
+				<resource path="/listeners">
+					<doc>This represents all the event listeners attached to a workflow
+						run.</doc>
+					<method name="GET">
+						<doc>Get the listeners installed in the workflow run.</doc>
+						<request></request>
+						<response>
+							<representation mediaType="application/xml" element="rest:listeners"></representation>
+							<representation mediaType="application/json"></representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of the run listeners&apos;
+							operations.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+					<method name="POST">
+						<doc>Add a new event listener to the named workflow run.</doc>
+						<request>
+							<representation mediaType="application/xml" element="rest:listenerDefinition">
+								<doc>Add a new event listener to the named workflow run.</doc>
+							</representation>
+							<representation mediaType="application/json">
+								<doc>Add a new event listener to the named workflow run.</doc>
+							</representation>
+						</request>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+					<resource path="/{name}">
+						<doc>This represents a single event listener attached to a
+							workflow run.</doc>
+						<param name="name" style="template" type="xs:string" />
+						<method name="GET">
+							<doc>Get the description of this listener.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/xml" element="rest:listenerDescription"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of one run listener&apos;s
+								operations.</doc>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<resource path="/configuration">
+							<method name="GET">
+								<doc>Get the configuration for the given event listener that is
+									attached to a workflow run.</doc>
+								<response>
+									<representation mediaType="text/plain">
+										<param name="result" style="plain" type="xs:string">
+											<doc>Get the configuration for the given event listener that
+												is attached to a workflow run.</doc>
+										</param>
+									</representation>
+								</response>
+							</method>
+							<method name="OPTIONS">
+								<doc>Produces the description of one run listener&apos;s
+									configuration&apos;s operations.</doc>
+								<response>
+									<representation mediaType="application/octet-stream"></representation>
+								</response>
+							</method>
+						</resource>
+						<resource path="/properties">
+							<method name="GET">
+								<doc>Get the list of properties supported by a given event
+									listener attached to a workflow run.</doc>
+								<request></request>
+								<response>
+									<representation mediaType="application/xml" element="rest:properties"></representation>
+									<representation mediaType="application/json"></representation>
+								</response>
+							</method>
+							<method name="OPTIONS">
+								<doc>Produces the description of one run listener&apos;s
+									properties&apos; operations.</doc>
+								<response>
+									<representation mediaType="application/octet-stream"></representation>
+								</response>
+							</method>
+						</resource>
+						<resource path="/properties/{propertyName}">
+							<doc>This represents a single property attached of an event
+								listener.</doc>
+							<param name="propertyName" style="template" type="xs:string" />
+							<method name="GET">
+								<doc>Get the value of the particular property of an event
+									listener attached to a workflow run.</doc>
+								<response>
+									<representation mediaType="text/plain">
+										<param name="result" style="plain" type="xs:string">
+											<doc>Get the value of the particular property of an event
+												listener attached to a workflow run.</doc>
+										</param>
+									</representation>
+								</response>
+							</method>
+							<method name="OPTIONS">
+								<doc>Produces the description of one run listener&apos;s
+									property&apos;s operations.</doc>
+								<response>
+									<representation mediaType="application/octet-stream"></representation>
+								</response>
+							</method>
+							<method name="PUT">
+								<doc>Set the value of the particular property of an event
+									listener attached to a workflow run.</doc>
+								<request>
+									<representation mediaType="text/plain">
+										<param name="request" style="plain" type="xs:string">
+											<doc>Set the value of the particular property of an event
+												listener attached to a workflow run.</doc>
+										</param>
+									</representation>
+								</request>
+								<response>
+									<representation mediaType="text/plain">
+										<param name="result" style="plain" type="xs:string">
+											<doc>Set the value of the particular property of an event
+												listener attached to a workflow run.</doc>
+										</param>
+									</representation>
+								</response>
+							</method>
+						</resource>
+					</resource>
+				</resource>
+				<resource path="/security">
+					<doc>Manages the security of the workflow run. In general, only the
+						owner of a run may access this resource.</doc>
+					<method name="GET">
+						<doc>Gives a description of the security information supported by
+							the workflow run.</doc>
+						<request></request>
+						<response>
+							<representation mediaType="application/xml" element="rest:securityDescriptor"></representation>
+							<representation mediaType="application/json"></representation>
+						</response>
+					</method>
+					<method name="OPTIONS">
+						<doc>Produces the description of the run security.</doc>
+						<response>
+							<representation mediaType="application/octet-stream"></representation>
+						</response>
+					</method>
+					<resource path="/credentials">
+						<method name="DELETE">
+							<doc>Deletes all credentials.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="GET">
+							<doc>Gives a list of credentials supplied to this workflow run.
+							</doc>
+							<response>
+								<representation mediaType="application/xml" element="rest:credentials"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of the run credentials&apos;
+								operations.</doc>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="POST">
+							<doc>Creates a new credential.</doc>
+							<request>
+								<representation mediaType="application/xml" element="rest:credential">
+									<doc>Creates a new credential.</doc>
+								</representation>
+								<representation mediaType="application/json">
+									<doc>Creates a new credential.</doc>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+					</resource>
+					<resource path="/credentials/{id}">
+						<param name="id" style="template" type="xs:string" />
+						<method name="DELETE">
+							<doc>Deletes a particular credential.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="GET">
+							<doc>Describes a particular credential.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/xml" element="rest:credential"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of one run credential&apos;s
+								operations.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="PUT">
+							<doc>Updates a particular credential.</doc>
+							<request>
+								<representation mediaType="application/xml" element="rest:credential">
+									<doc>Updates a particular credential.</doc>
+								</representation>
+								<representation mediaType="application/json">
+									<doc>Updates a particular credential.</doc>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="application/xml" element="rest:credential"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+					</resource>
+					<resource path="/owner">
+						<method name="GET">
+							<doc>Gives the identity of who owns the workflow run.</doc>
+							<response>
+								<representation mediaType="text/plain">
+									<param name="result" style="plain" type="xs:string">
+										<doc>Gives the identity of who owns the workflow run.</doc>
+									</param>
+								</representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of the run owner.</doc>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+					</resource>
+					<resource path="/permissions">
+						<method name="GET">
+							<doc>Gives a list of all non-default permissions associated with
+								the enclosing workflow run. By default, nobody has any access at
+								all except for the owner of the run.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/xml" element="rest:permissionsDescriptor"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of the run permissions&apos;
+								operations.</doc>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="POST">
+							<doc>Creates a new assignment of permissions to a particular
+								user.</doc>
+							<request>
+								<representation mediaType="application/xml" element="rest:permissionUpdate">
+									<doc>Creates a new assignment of permissions to a particular
+										user.</doc>
+								</representation>
+								<representation mediaType="application/json">
+									<doc>Creates a new assignment of permissions to a particular
+										user.</doc>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+					</resource>
+					<resource path="/permissions/{id}">
+						<param name="id" style="template" type="xs:string" />
+						<method name="DELETE">
+							<doc>Deletes (by resetting to default) the permissions associated
+								with a particular user.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="GET">
+							<doc>Describes the permission granted to a particular user.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="text/plain"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of one run permission&apos;s
+								operations.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="PUT">
+							<doc>Updates the permissions granted to a particular user.</doc>
+							<request>
+								<representation mediaType="text/plain">
+									<doc>Updates the permissions granted to a particular user.
+									</doc>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="text/plain"></representation>
+							</response>
+						</method>
+					</resource>
+					<resource path="/trusts">
+						<method name="DELETE">
+							<doc>Deletes all trusted identities.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="GET">
+							<doc>Gives a list of trusted identities supplied to this workflow
+								run.</doc>
+							<response>
+								<representation mediaType="application/xml" element="rest:trustedIdentities"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of the run trusted
+								certificates&apos; operations.</doc>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="POST">
+							<doc>Adds a new trusted identity.</doc>
+							<request>
+								<representation mediaType="application/xml" element="server:trustedIdentity">
+									<doc>Adds a new trusted identity.</doc>
+								</representation>
+								<representation mediaType="application/json">
+									<doc>Adds a new trusted identity.</doc>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+					</resource>
+					<resource path="/trusts/{id}">
+						<param name="id" style="template" type="xs:string" />
+						<method name="DELETE">
+							<doc>Deletes a particular trusted identity.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="GET">
+							<doc>Describes a particular trusted identity.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/xml" element="server:trustedIdentity"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of one run trusted
+								certificate&apos;s operations.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/octet-stream"></representation>
+							</response>
+						</method>
+						<method name="PUT">
+							<doc>Updates a particular trusted identity.</doc>
+							<request>
+								<representation mediaType="application/xml" element="server:trustedIdentity">
+									<doc>Updates a particular trusted identity.</doc>
+								</representation>
+								<representation mediaType="application/json">
+									<doc>Updates a particular trusted identity.</doc>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="application/xml" element="server:trustedIdentity"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+					</resource>
+				</resource>
+				<resource path="/wd">
+					<doc>Representation of how a workflow run&apos;s working directory
+						tree looks.</doc>
+					<method name="GET">
+						<doc>Describes the working directory of the workflow run.</doc>
+						<request></request>
+						<response>
+							<representation mediaType="application/xml" element="rest:directoryContents"></representation>
+							<representation mediaType="application/json"></representation>
+						</response>
+					</method>
+					<resource path="/{path:(.*)}">
+						<param name="path" style="template" repeating="true" />
+						<method name="POST">
+							<doc>Creates or updates a file in a particular location beneath
+								the working directory of the workflow run with the contents of a
+								publicly readable URL.</doc>
+							<request>
+								<representation mediaType="text/uri-list">
+									<doc>Creates or updates a file in a particular location beneath
+										the working directory of the workflow run with the contents of
+										a publicly readable URL.</doc>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="application/xml"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="PUT">
+							<doc>Creates or updates a file in a particular location beneath
+								the working directory of the workflow run.</doc>
+							<request>
+								<representation mediaType="application/octet-stream">
+									<doc>Creates or updates a file in a particular location beneath
+										the working directory of the workflow run.</doc>
+								</representation>
+								<representation mediaType="*/*">
+									<doc>Creates or updates a file in a particular location beneath
+										the working directory of the workflow run.</doc>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="application/xml"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+					</resource>
+					<resource path="/{path:.*}">
+						<param name="path" style="template" repeating="true" />
+						<method name="DELETE">
+							<doc>Deletes a file or directory that is in or below the working
+								directory of a workflow run.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/xml"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="OPTIONS">
+							<doc>Produces the description of the files/directories&apos;
+								baclava operations.</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/xml"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+						<method name="POST">
+							<doc>Creates a directory in the filesystem beneath the working
+								directory of the workflow run, or creates or updates a
+								file&apos;s contents, where that file is in or below the working
+								directory of a workflow run.</doc>
+							<request>
+								<representation mediaType="application/xml" element="rest:filesystemOperation">
+									<doc>Creates a directory in the filesystem beneath the working
+										directory of the workflow run, or creates or updates a
+										file&apos;s contents, where that file is in or below the
+										working directory of a workflow run.</doc>
+								</representation>
+								<representation mediaType="application/json">
+									<doc>Creates a directory in the filesystem beneath the working
+										directory of the workflow run, or creates or updates a
+										file&apos;s contents, where that file is in or below the
+										working directory of a workflow run.</doc>
+								</representation>
+							</request>
+							<response>
+								<representation mediaType="application/xml"></representation>
+								<representation mediaType="application/json"></representation>
+							</response>
+						</method>
+					</resource>
+					<resource path="/{path:.+}">
+						<param name="path" style="template" repeating="true" />
+						<method name="GET">
+							<doc>Gives a description of the named entity in or beneath the
+								working directory of the workflow run (either a Directory or
+								File).</doc>
+							<request></request>
+							<response>
+								<representation mediaType="application/xml"></representation>
+								<representation mediaType="application/json"></representation>
+								<representation mediaType="application/octet-stream"></representation>
+								<representation mediaType="application/zip"></representation>
+								<representation mediaType="*/*"></representation>
+							</response>
+						</method>
+					</resource>
+				</resource>
+			</resource>
+		</resource>
+	</resources>
+</application>
\ No newline at end of file