From 4df45254dd47184d08925c872baac94207a86750 Mon Sep 17 00:00:00 2001
From: Martin Haase <martin.haase@daasi.de>
Date: Wed, 17 Mar 2010 15:59:21 +0000
Subject: [PATCH] ws3 added

git-svn-id: https://textgridlab.org/svn/textgrid/trunk/middleware/tgauth@5748 7c539038-3410-0410-b1ec-0f2a7bf1c452
---
 .../rbacSoap/wsdl-ws3/tgadministration.wsdl   |  555 ++++
 .../rbacSoap/wsdl-ws3/tgextra.wsdl            | 2273 +++++++++++++++++
 .../rbacSoap/wsdl-ws3/tgreview.wsdl           |  497 ++++
 .../rbacSoap/wsdl-ws3/tgsystem.wsdl           |  284 ++
 .../rbacSoap/wsdl-ws3/xacml.wsdl              |   93 +
 .../rbacSoap/wsdl-ws3/xacml.wsdl.readme.txt   |    1 +
 6 files changed, 3703 insertions(+)
 create mode 100644 info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgadministration.wsdl
 create mode 100644 info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgextra.wsdl
 create mode 100644 info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgreview.wsdl
 create mode 100644 info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgsystem.wsdl
 create mode 100644 info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/xacml.wsdl
 create mode 100644 info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/xacml.wsdl.readme.txt

diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgadministration.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgadministration.wsdl
new file mode 100644
index 0000000..cd2a82a
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgadministration.wsdl
@@ -0,0 +1,555 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions name="tgadministration"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:tns="http://textgrid.info/namespaces/middleware/tgauth"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+
+  <!--
+  ####################
+  # Typ-Definitionen #
+  ####################
+  //-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+      <!-- #### addUser #### //-->
+      <xsd:element name="addUserRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="password" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### deleteUser #### //-->
+      <xsd:element name="deleteUserRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addRole #### //-->
+      <xsd:element name="addRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### deleteRole #### //-->
+      <xsd:element name="deleteRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### assignUser #### //-->
+      <xsd:element name="assignUserRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### assignUser #### //-->
+      <xsd:element name="deassignUserRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### grantPermission #### //-->
+      <xsd:element name="grantPermissionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### revokePermission #### //-->
+      <xsd:element name="revokePermissionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addInheritance #### //-->
+      <xsd:element name="addInheritanceRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="ascendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="descendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### deleteInheritance #### //-->
+      <xsd:element name="deleteInheritanceRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="ascendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="descendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addAscendant #### //-->
+      <xsd:element name="addAscendantRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="ascendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="descendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addDescendant #### //-->
+      <xsd:element name="addDescendantRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="ascendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="descendant" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="booleanResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="result" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### rbacFault #### //-->
+      <xsd:element name="rbacFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### authenticationFault #### //-->
+      <xsd:element name="authenticationFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### formatFault #### //-->
+      <xsd:element name="formatFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+    </xsd:schema>
+  </wsdl:types>
+
+
+  <!--
+  #################
+  # WSDL-Messages #
+  #################
+  //-->
+
+  <!-- #### addUser #### //-->
+  <wsdl:message name="addUserRequest">
+    <wsdl:part element="tns:addUserRequest" name="addUserInput" />
+  </wsdl:message>
+  <wsdl:message name="addUserResponse">
+    <wsdl:part element="tns:booleanResponse" name="addUserOutput" />
+  </wsdl:message>
+
+  <!-- #### deleteUser #### //-->
+  <wsdl:message name="deleteUserRequest">
+    <wsdl:part element="tns:deleteUserRequest" name="deleteUserInput" />
+  </wsdl:message>
+  <wsdl:message name="deleteUserResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteUserOutput" />
+  </wsdl:message>
+
+  <!-- #### addRole #### //-->
+  <wsdl:message name="addRoleRequest">
+    <wsdl:part element="tns:addRoleRequest" name="addRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="addRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="addRoleOutput" />
+  </wsdl:message>
+
+  <!-- #### deleteRole #### //-->
+  <wsdl:message name="deleteRoleRequest">
+    <wsdl:part element="tns:deleteRoleRequest" name="deleteRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="deleteRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteRoleOutput" />
+  </wsdl:message>
+
+  <!-- #### assignUser #### //-->
+  <wsdl:message name="assignUserRequest">
+    <wsdl:part element="tns:assignUserRequest" name="assignUserInput" />
+  </wsdl:message>
+  <wsdl:message name="assignUserResponse">
+    <wsdl:part element="tns:booleanResponse" name="assignUserOutput" />
+  </wsdl:message>
+
+  <!-- #### deassignUser #### //-->
+  <wsdl:message name="deassignUserRequest">
+    <wsdl:part element="tns:deassignUserRequest" name="deassignUserInput" />
+  </wsdl:message>
+  <wsdl:message name="deassignUserResponse">
+    <wsdl:part element="tns:booleanResponse" name="deassignUserOutput" />
+  </wsdl:message>
+
+  <!-- #### grantPermission #### //-->
+  <wsdl:message name="grantPermissionRequest">
+    <wsdl:part element="tns:grantPermissionRequest" name="grantPermissionInput" />
+  </wsdl:message>
+  <wsdl:message name="grantPermissionResponse">
+    <wsdl:part element="tns:booleanResponse" name="grantPermissionOutput" />
+  </wsdl:message>
+
+  <!-- #### grantPermission #### //-->
+  <wsdl:message name="revokePermissionRequest">
+    <wsdl:part element="tns:revokePermissionRequest" name="revokePermissionInput" />
+  </wsdl:message>
+  <wsdl:message name="revokePermissionResponse">
+    <wsdl:part element="tns:booleanResponse" name="revokePermissionOutput" />
+  </wsdl:message>
+
+  <!-- #### addInheritance #### //-->
+  <wsdl:message name="addInheritanceRequest">
+    <wsdl:part element="tns:addInheritanceRequest" name="addInheritanceInput" />
+  </wsdl:message>
+  <wsdl:message name="addInheritanceResponse">
+    <wsdl:part element="tns:booleanResponse" name="addInheritanceOutput" />
+  </wsdl:message>
+
+  <!-- #### deleteInheritance #### //-->
+  <wsdl:message name="deleteInheritanceRequest">
+    <wsdl:part element="tns:deleteInheritanceRequest" name="deleteInheritanceInput" />
+  </wsdl:message>
+  <wsdl:message name="deleteInheritanceResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteInheritanceOutput" />
+  </wsdl:message>
+
+  <!-- #### addAscendant #### //-->
+  <wsdl:message name="addAscendantRequest">
+    <wsdl:part element="tns:addAscendantRequest" name="addAscendantInput" />
+  </wsdl:message>
+  <wsdl:message name="addAscendantResponse">
+    <wsdl:part element="tns:booleanResponse" name="addAscendantOutput" />
+  </wsdl:message>
+
+  <!-- #### addAscendant #### //-->
+  <wsdl:message name="addDescendantRequest">
+    <wsdl:part element="tns:addDescendantRequest" name="addDescendantInput" />
+  </wsdl:message>
+  <wsdl:message name="addDescendantResponse">
+    <wsdl:part element="tns:booleanResponse" name="addDescendantOutput" />
+  </wsdl:message>
+
+  <!-- #### rbacFault #### //-->
+  <wsdl:message name="rbacFault">
+    <wsdl:part element="tns:rbacFaultResponse" name="rbacFault" />
+  </wsdl:message>
+
+  <!-- #### authenticationFault #### //-->
+  <wsdl:message name="authenticationFault">
+    <wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" />
+  </wsdl:message>
+
+  <!-- #### formatFault #### //-->
+  <wsdl:message name="formatFault">
+    <wsdl:part element="tns:formatFaultResponse" name="formatFault" />
+  </wsdl:message>
+
+
+  <!--
+  ##########################
+  # Port-Type-Definitionen #
+  ##########################
+  //-->
+  <wsdl:portType name="port_tgadministration">
+
+    <!-- #### addUser #### //-->
+    <wsdl:operation name="addUser">
+      <wsdl:input message="tns:addUserRequest" />
+      <wsdl:output message="tns:addUserResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="formatFault" message="tns:formatFault" />
+    </wsdl:operation>
+
+    <!-- #### deleteUser #### //-->
+    <wsdl:operation name="deleteUser">
+      <wsdl:input message="tns:deleteUserRequest" />
+      <wsdl:output message="tns:deleteUserResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="formatFault" message="tns:formatFault" />
+    </wsdl:operation>
+
+    <!-- #### addRole #### //-->
+    <wsdl:operation name="addRole">
+      <wsdl:input message="tns:addRoleRequest" />
+      <wsdl:output message="tns:addRoleResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### deleteRole #### //-->
+    <wsdl:operation name="deleteRole">
+      <wsdl:input message="tns:deleteRoleRequest" />
+      <wsdl:output message="tns:deleteRoleResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### assignUser #### //-->
+    <wsdl:operation name="assignUser">
+      <wsdl:input message="tns:assignUserRequest" />
+      <wsdl:output message="tns:assignUserResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="formatFault" message="tns:formatFault" />
+    </wsdl:operation>
+
+    <!-- #### deassignUser #### //-->
+    <wsdl:operation name="deassignUser">
+      <wsdl:input message="tns:deassignUserRequest" />
+      <wsdl:output message="tns:deassignUserResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="formatFault" message="tns:formatFault" />
+    </wsdl:operation>
+
+    <!-- #### grantPermission #### //-->
+    <wsdl:operation name="grantPermission">
+      <wsdl:input message="tns:grantPermissionRequest" />
+      <wsdl:output message="tns:grantPermissionResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### revokePermission #### //-->
+    <wsdl:operation name="revokePermission">
+      <wsdl:input message="tns:revokePermissionRequest" />
+      <wsdl:output message="tns:revokePermissionResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### addInheritance #### //-->
+    <wsdl:operation name="addInheritance">
+      <wsdl:input message="tns:addInheritanceRequest" />
+      <wsdl:output message="tns:addInheritanceResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### deleteInheritance #### //-->
+    <wsdl:operation name="deleteInheritance">
+      <wsdl:input message="tns:deleteInheritanceRequest" />
+      <wsdl:output message="tns:deleteInheritanceResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### addAscendant #### //-->
+    <wsdl:operation name="addAscendant">
+      <wsdl:input message="tns:addAscendantRequest" />
+      <wsdl:output message="tns:addAscendantResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### addDescendant #### //-->
+    <wsdl:operation name="addDescendant">
+      <wsdl:input message="tns:addDescendantRequest" />
+      <wsdl:output message="tns:addDescendantResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+  </wsdl:portType>
+
+
+
+  <!--
+  ###########
+  # Binding #
+  ###########
+  //-->
+  <wsdl:binding name="binding_tgadministration" type="tns:port_tgadministration">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+
+    <!-- #### addUser #### //-->
+    <wsdl:operation name="addUser">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addUser" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="formatFault"><soap:fault name="formatFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deleteUser #### //-->
+    <wsdl:operation name="deleteUser">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteUser" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="formatFault"><soap:fault name="formatFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### addRole #### //-->
+    <wsdl:operation name="addRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deleteRole #### //-->
+    <wsdl:operation name="deleteRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### assignUser #### //-->
+    <wsdl:operation name="assignUser">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/assignUser" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="formatFault"><soap:fault name="formatFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deassignUser #### //-->
+    <wsdl:operation name="deassignUser">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deassignUser" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="formatFault"><soap:fault name="formatFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### grantPermission #### //-->
+    <wsdl:operation name="grantPermission">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/grantPermission" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### revokePermission #### //-->
+    <wsdl:operation name="revokePermission">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/revokePermission" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### addInheritance #### //-->
+    <wsdl:operation name="addInheritance">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addInheritance" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deleteInheritance #### //-->
+    <wsdl:operation name="deleteInheritance">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteInheritance" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### addAscendant #### //-->
+    <wsdl:operation name="addAscendant">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addAscendant" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### addDescendant #### //-->
+    <wsdl:operation name="addDescendant">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addDescendant" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+  </wsdl:binding>
+
+
+
+  <!--
+  #####################
+  # Servicedefinition #
+  #####################
+  //-->
+  <wsdl:service name="tgadministration">
+    <wsdl:port binding="tns:binding_tgadministration" name="tgadministration">
+      <soap:address location="http://134.76.20.87/tgauth/rbacSoap/tgadministration.php" />
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgextra.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgextra.wsdl
new file mode 100644
index 0000000..367ed2b
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgextra.wsdl
@@ -0,0 +1,2273 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions name="tgextra"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:tns="http://textgrid.info/namespaces/middleware/tgauth"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+
+  <!--
+  ####################
+  # Typ-Definitionen #
+  ####################
+  //-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+      <!-- #### authenticate #### //-->
+      <xsd:element name="authenticateRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="password" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="authenticateResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### userExists #### //-->
+      <xsd:element name="userExistsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### createProject #### //-->
+      <xsd:element name="createProjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="file" type="xsd:string" minOccurs="0" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="createProjectResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="projectId" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### filterBySid #### //-->
+      <xsd:element name="filterBySidRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addMember #### //-->
+      <xsd:element name="addMemberRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### deleteMember #### //-->
+      <xsd:element name="deleteMemberRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### getSid #### //-->
+      <xsd:element name="getSidResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### registerResource #### //-->
+      <xsd:element name="registerResourceRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="uri" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="secret" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### unregisterResource #### //-->
+      <xsd:element name="unregisterResourceRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="uri" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="secret" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### getObjects #### //-->
+      <xsd:element name="getObjectsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### getAllProjects #### //-->
+      <xsd:element name="getAllProjectsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="getAllProjectsResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="project" type="tns:projectInfo" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### getDeactivatedProjects #### //-->
+      <xsd:element name="getDeactivatedProjectsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="getDeactivatedProjectsResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="project" type="tns:projectInfo" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### tgCheckAccess #### //-->
+      <xsd:element name="tgCheckAccessRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### tgAddActiveRole #### //-->
+      <xsd:element name="tgAddActiveRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### tgDropActiveRole #### //-->
+      <xsd:element name="tgDropActiveRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### tgAssignedRoles #### //-->
+      <xsd:element name="tgAssignedRolesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="0" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### tgAssignedProjects #### //-->
+      <xsd:element name="tgAssignedProjectsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="level" type="xsd:int" minOccurs="0" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### getLeader #### //-->
+      <xsd:element name="getLeaderRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### tgGrantPermission #### //-->
+      <xsd:element name="tgGrantPermissionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### tgRevokePermission #### //-->
+      <xsd:element name="tgRevokePermissionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### getOwner #### //-->
+      <xsd:element name="getOwnerRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="getOwnerResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="owner" type="xsd:string" minOccurs="0" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### getMembers #### //-->
+      <xsd:element name="getMembersRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### getUserRole #### //-->
+      <xsd:element name="getUserRoleRequest">
+	<xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+	  </xsd:sequence>
+	</xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### getRights #### //-->
+      <xsd:element name="getRightsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="0" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### publish #### //-->
+      <xsd:element name="publishRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### isPublic #### //-->
+      <xsd:element name="isPublicRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### hasPublicResourcesRequest #### //-->
+      <xsd:element name="hasPublicResourcesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### setProjectFile #### //-->
+      <xsd:element name="setProjectFileRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="file" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### getProjectDescription #### //-->
+      <xsd:element name="getProjectDescriptionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="getProjectDescriptionResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="project" type="tns:projectInfo" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### deactivateProject #### //-->
+      <xsd:element name="deactivateProjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### reactivateProject #### //-->
+      <xsd:element name="reactivateProjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### deleteProject #### //-->
+      <xsd:element name="deleteProjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="auth" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="log" type="xsd:string" minOccurs="0" maxOccurs="1" />
+            <xsd:element name="project" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="filterResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="resource" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="booleanResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="result" type="xsd:boolean" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="rolesetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="role" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="usersetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="username" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="resourcesetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="resource" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="operationsetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="operation" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="getUserRoleResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="userRole" type="tns:userRole" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:complexType name="userRole">
+	<xsd:sequence>
+	  <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+	  <xsd:element name="roles" type="xsd:string"  minOccurs="1" maxOccurs="unbounded" />
+	</xsd:sequence>
+      </xsd:complexType>
+
+
+      <xsd:complexType name="projectInfo">
+        <xsd:sequence>
+          <xsd:element name="id" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          <xsd:element name="description" type="xsd:string" minOccurs="0" maxOccurs="1" />
+          <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          <xsd:element name="file" type="xsd:string" minOccurs="0" maxOccurs="1" />
+        </xsd:sequence>
+      </xsd:complexType>
+
+
+      <!-- #### authenticationFault #### //-->
+      <xsd:element name="authenticationFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### unknownResourceFault #### //-->
+      <xsd:element name="unknownResourceFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### unknownProjectFault #### //-->
+      <xsd:element name="unknownProjectFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### rbacFault #### //-->
+      <xsd:element name="rbacFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### notEmptyFault #### //-->
+      <xsd:element name="notEmptyFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+    </xsd:schema>
+  </wsdl:types>
+
+
+  <!--
+  #################
+  # WSDL-Messages #
+  #################
+  //-->
+
+  <!-- #### authenticate #### //-->
+  <wsdl:message name="authenticateRequest">
+    <wsdl:part element="tns:authenticateRequest" name="authenticateInput" />
+  </wsdl:message>
+  <wsdl:message name="authenticateResponse">
+    <wsdl:part element="tns:authenticateResponse" name="authenticateOutput" />
+  </wsdl:message>
+
+  <!-- #### userExists #### //-->
+  <wsdl:message name="userExistsRequest">
+    <wsdl:part element="tns:userExistsRequest" name="userExistsInput" />
+  </wsdl:message>
+  <wsdl:message name="userExistsResponse">
+    <wsdl:part element="tns:booleanResponse" name="userExistsOutput" />
+  </wsdl:message>
+
+  <!-- #### createProject #### //-->
+  <wsdl:message name="createProjectRequest">
+    <wsdl:part element="tns:createProjectRequest" name="createProjectInput" />
+  </wsdl:message>
+  <wsdl:message name="createProjectResponse">
+    <wsdl:part element="tns:createProjectResponse" name="createProjectOutput" />
+  </wsdl:message>
+
+  <!-- #### getObjects #### //-->
+  <wsdl:message name="getObjectsRequest">
+    <wsdl:part element="tns:getObjectsRequest" name="getObjectsInput" />
+  </wsdl:message>
+  <wsdl:message name="getObjectsResponse">
+    <wsdl:part element="tns:resourcesetResponse" name="getObjectsOutput" />
+  </wsdl:message>
+
+  <!-- #### addMember #### //-->
+  <wsdl:message name="addMemberRequest">
+    <wsdl:part element="tns:addMemberRequest" name="addMemberInput" />
+  </wsdl:message>
+  <wsdl:message name="addMemberResponse">
+    <wsdl:part element="tns:booleanResponse" name="addMemberOutput" />
+  </wsdl:message>
+
+  <!-- #### deleteMember #### //-->
+  <wsdl:message name="deleteMemberRequest">
+    <wsdl:part element="tns:deleteMemberRequest" name="deleteMemberInput" />
+  </wsdl:message>
+  <wsdl:message name="deleteMemberResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteMemberOutput" />
+  </wsdl:message>
+
+  <!-- #### tgCheckAccess #### //-->
+  <wsdl:message name="tgCheckAccessRequest">
+    <wsdl:part element="tns:tgCheckAccessRequest" name="tgCheckAccessInput" />
+  </wsdl:message>
+  <wsdl:message name="tgCheckAccessResponse">
+    <wsdl:part element="tns:booleanResponse" name="tgCheckAccessOutput" />
+  </wsdl:message>
+
+  <!-- #### tgAddActiveRole #### //-->
+  <wsdl:message name="tgAddActiveRoleRequest">
+    <wsdl:part element="tns:tgAddActiveRoleRequest" name="tgAddActiveRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="tgAddActiveRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="tgAddActiveRoleOutput" />
+  </wsdl:message>
+
+  <!-- #### tgDropActiveRole #### //-->
+  <wsdl:message name="tgDropActiveRoleRequest">
+    <wsdl:part element="tns:tgDropActiveRoleRequest" name="tgDropActiveRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="tgDropActiveRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="tgDropActiveRoleOutput" />
+  </wsdl:message>
+
+  <!-- #### tgAssignedRoles #### //-->
+  <wsdl:message name="tgAssignedRolesRequest">
+    <wsdl:part element="tns:tgAssignedRolesRequest" name="tgAssignedRolesInput" />
+  </wsdl:message>
+  <wsdl:message name="tgAssignedRolesResponse">
+    <wsdl:part element="tns:rolesetResponse" name="tgAssignedRolesOutput" />
+  </wsdl:message>
+
+  <!-- #### tgAssignedProjects #### //-->
+  <wsdl:message name="tgAssignedProjectsRequest">
+    <wsdl:part element="tns:tgAssignedProjectsRequest" name="tgAssignedProjectsInput" />
+  </wsdl:message>
+  <wsdl:message name="tgAssignedProjectsResponse">
+    <wsdl:part element="tns:rolesetResponse" name="tgAssignedProjectsOutput" />
+  </wsdl:message>
+
+  <!-- #### getAllProjects #### //-->
+  <wsdl:message name="getAllProjectsRequest">
+    <wsdl:part element="tns:getAllProjectsRequest" name="getAllProjectsInput" />
+  </wsdl:message>
+  <wsdl:message name="getAllProjectsResponse">
+    <wsdl:part element="tns:getAllProjectsResponse" name="getAllProjectsOutput" />
+  </wsdl:message>
+
+  <!-- #### getDeactivatedProjects #### //-->
+  <wsdl:message name="getDeactivatedProjectsRequest">
+    <wsdl:part element="tns:getDeactivatedProjectsRequest" name="getDeactivatedProjectsInput" />
+  </wsdl:message>
+  <wsdl:message name="getDeactivatedProjectsResponse">
+    <wsdl:part element="tns:getDeactivatedProjectsResponse" name="getDeactivatedProjectsOutput" />
+  </wsdl:message>
+
+  <!-- #### getLeader #### //-->
+  <wsdl:message name="getLeaderRequest">
+    <wsdl:part element="tns:getLeaderRequest" name="getLeaderInput" />
+  </wsdl:message>
+  <wsdl:message name="getLeaderResponse">
+    <wsdl:part element="tns:usersetResponse" name="getLeaderOutput" />
+  </wsdl:message>
+
+  <!-- #### registerResource #### //-->
+  <wsdl:message name="registerResourceRequest">
+    <wsdl:part element="tns:registerResourceRequest" name="registerResourceInput" />
+  </wsdl:message>
+  <wsdl:message name="registerResourceResponse">
+    <wsdl:part element="tns:booleanResponse" name="registerResourceOutput" />
+  </wsdl:message>
+
+  <!-- #### unregisterResource #### //-->
+  <wsdl:message name="unregisterResourceRequest">
+    <wsdl:part element="tns:unregisterResourceRequest" name="unregisterResourceInput" />
+  </wsdl:message>
+  <wsdl:message name="unregisterResourceResponse">
+    <wsdl:part element="tns:booleanResponse" name="unregisterResourceOutput" />
+  </wsdl:message>
+
+  <!-- #### filterBySid #### //-->
+  <wsdl:message name="filterBySidRequest">
+    <wsdl:part element="tns:filterBySidRequest" name="filterBySidInput" />
+  </wsdl:message>
+  <wsdl:message name="filterBySidResponse">
+    <wsdl:part element="tns:filterResponse" name="filterBySidOutput" />
+  </wsdl:message>
+
+  <!-- #### tgGrantPermission #### //-->
+  <wsdl:message name="tgGrantPermissionRequest">
+    <wsdl:part element="tns:tgGrantPermissionRequest" name="tgGrantPermissionInput" />
+  </wsdl:message>
+  <wsdl:message name="tgGrantPermissionResponse">
+    <wsdl:part element="tns:booleanResponse" name="tgGrantPermissionOutput" />
+  </wsdl:message>
+
+  <!-- #### tgRevokePermission #### //-->
+  <wsdl:message name="tgRevokePermissionRequest">
+    <wsdl:part element="tns:tgRevokePermissionRequest" name="tgRevokePermissionInput" />
+  </wsdl:message>
+  <wsdl:message name="tgRevokePermissionResponse">
+    <wsdl:part element="tns:booleanResponse" name="tgRevokePermissionOutput" />
+  </wsdl:message>
+
+  <!-- #### getOwner #### //-->
+  <wsdl:message name="getOwnerRequest">
+    <wsdl:part element="tns:getOwnerRequest" name="getOwnerInput" />
+  </wsdl:message>
+  <wsdl:message name="getOwnerResponse">
+    <wsdl:part element="tns:getOwnerResponse" name="getOwnerOutput" />
+  </wsdl:message>
+
+  <!-- #### getMembers #### //-->
+  <wsdl:message name="getMembersRequest">
+    <wsdl:part element="tns:getMembersRequest" name="getMembersInput" />
+  </wsdl:message>
+  <wsdl:message name="getMembersResponse">
+    <wsdl:part element="tns:usersetResponse" name="getMembersOutput" />
+  </wsdl:message>
+
+  <!-- #### getUserRole #### //-->
+  <wsdl:message name="getUserRoleRequest">
+    <wsdl:part element="tns:getUserRoleRequest" name="getUserRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="getUserRoleResponse">
+    <wsdl:part element="tns:getUserRoleResponse" name="getUserRoleOutput" />
+  </wsdl:message>
+
+
+  <!-- #### getRights #### //-->
+  <wsdl:message name="getRightsRequest">
+    <wsdl:part element="tns:getRightsRequest" name="getRightsInput" />
+  </wsdl:message>
+  <wsdl:message name="getRightsResponse">
+    <wsdl:part element="tns:operationsetResponse" name="getRightsOutput" />
+  </wsdl:message>
+
+  <!-- #### publish #### //-->
+  <wsdl:message name="publishRequest">
+    <wsdl:part element="tns:publishRequest" name="publishInput" />
+  </wsdl:message>
+  <wsdl:message name="publishResponse">
+    <wsdl:part element="tns:booleanResponse" name="publishOutput" />
+  </wsdl:message>
+
+  <!-- #### isPublic #### //-->
+  <wsdl:message name="isPublicRequest">
+    <wsdl:part element="tns:isPublicRequest" name="isPublicInput" />
+  </wsdl:message>
+  <wsdl:message name="isPublicResponse">
+    <wsdl:part element="tns:booleanResponse" name="isPublicOutput" />
+  </wsdl:message>
+
+  <!-- #### hasPublicResources #### //-->
+  <wsdl:message name="hasPublicResourcesRequest">
+    <wsdl:part element="tns:hasPublicResourcesRequest" name="hasPublicResourcesInput" />
+  </wsdl:message>
+  <wsdl:message name="hasPublicResourcesResponse">
+    <wsdl:part element="tns:booleanResponse" name="hasPublicResourcesOutput" />
+  </wsdl:message>
+
+  <!-- #### setProjectFile #### //-->
+  <wsdl:message name="setProjectFileRequest">
+    <wsdl:part element="tns:setProjectFileRequest" name="setProjectFileInput" />
+  </wsdl:message>
+  <wsdl:message name="setProjectFileResponse">
+    <wsdl:part element="tns:booleanResponse" name="setProjectFileOutput" />
+  </wsdl:message>
+
+  <!-- #### getProjectDescription #### //-->
+  <wsdl:message name="getProjectDescriptionRequest">
+    <wsdl:part element="tns:getProjectDescriptionRequest" name="getProjectDescriptionInput" />
+  </wsdl:message>
+  <wsdl:message name="getProjectDescriptionResponse">
+    <wsdl:part element="tns:getProjectDescriptionResponse" name="getProjectDescriptionOutput" />
+  </wsdl:message>
+
+  <!-- #### deactivateProject #### //-->
+  <wsdl:message name="deactivateProjectRequest">
+    <wsdl:part element="tns:deactivateProjectRequest" name="deactivateProjectInput" />
+  </wsdl:message>
+  <wsdl:message name="deactivateProjectResponse">
+    <wsdl:part element="tns:booleanResponse" name="deactivateProjectOutput" />
+  </wsdl:message>
+
+  <!-- #### reactivateProject #### //-->
+  <wsdl:message name="reactivateProjectRequest">
+    <wsdl:part element="tns:reactivateProjectRequest" name="reactivateProjectInput" />
+  </wsdl:message>
+  <wsdl:message name="reactivateProjectResponse">
+    <wsdl:part element="tns:booleanResponse" name="reactivateProjectOutput" />
+  </wsdl:message>
+
+  <!-- #### deleteProject #### //-->
+  <wsdl:message name="deleteProjectRequest">
+    <wsdl:part element="tns:deleteProjectRequest" name="deleteProjectInput" />
+  </wsdl:message>
+  <wsdl:message name="deleteProjectResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteProjectOutput" />
+  </wsdl:message>
+
+  <!-- #### getSid #### //-->
+  <wsdl:message name="getSidResponse">
+    <wsdl:part element="tns:getSidResponse" name="getSidOutput" />
+  </wsdl:message>
+
+  <!-- #### authenticationFault #### //-->
+  <wsdl:message name="authenticationFault">
+    <wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" />
+  </wsdl:message>
+
+  <!-- #### unknownResourceFault #### //-->
+  <wsdl:message name="unknownResourceFault">
+    <wsdl:part element="tns:unknownResourceFaultResponse" name="unknownResourceFault" />
+  </wsdl:message>
+
+  <!-- #### unknownProjectFault #### //-->
+  <wsdl:message name="unknownProjectFault">
+    <wsdl:part element="tns:unknownProjectFaultResponse" name="unknownProjectFault" />
+  </wsdl:message>
+
+  <!-- #### rbacFault #### //-->
+  <wsdl:message name="rbacFault">
+    <wsdl:part element="tns:rbacFaultResponse" name="rbacFault" />
+  </wsdl:message>
+
+  <!-- #### notEmptyFault #### //-->
+  <wsdl:message name="notEmptyFault">
+    <wsdl:part element="tns:notEmptyFaultResponse" name="notEmptyFault" />
+  </wsdl:message>
+
+
+  <!--
+  ##########################
+  # Port-Type-Definitionen #
+  ##########################
+  //-->
+  <wsdl:portType name="port_tgextra">
+
+    <!-- #### authenticate #### //-->
+    <wsdl:operation name="authenticate">
+      <wsdl:documentation>
+	Internal function used by applications to identify themselves
+	(via shared secret between RBAC and WebAuth).
+	<ul>
+	  <li><b>Input Parameters</b> authenticateRequest, with elements
+	    <ul>
+	      <li>username - String with name of application</li>
+	      <li>password - String with password for this application</li>
+	      <li>log - String for log information, optional</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> authenticateResponse, with element
+	  <ul>
+	    <li>auth - String, SessionID of authenticated application
+	    (See getSid() for format.)</li>
+	  </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+      <wsdl:input message="tns:authenticateRequest" />
+      <wsdl:output message="tns:authenticateResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### userExists #### //-->
+    <wsdl:operation name="userExists">
+
+      <wsdl:documentation>
+	Checks whether this UserID (eduPersonPrincipalName) exists in RBAC.
+	<ul>
+	  <li><b>Input Parameters</b> userExistsRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of application or user asking</li>
+	      <li>log - String for log information, optional</li>
+	      <li>username - String containing the ID (ePPN) of the user</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	  <ul>
+	    <li>result - boolean, true if user exists, false
+	    otherwise</li>
+	  </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:userExistsRequest" />
+      <wsdl:output message="tns:userExistsResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### createProject #### //-->
+    <wsdl:operation name="createProject">
+
+      <wsdl:documentation>
+	Creates a project. Projects are roles with various sub-roles,
+	i.e Leader, Administrator... Creates default roles with
+	default permissions:
+	<table>
+	  <tr><td>Role</td> <td>Right on Project</td></tr>
+	  <tr><td>Projektleiter (project leader)</td><td>delegate</td></tr>
+	  <tr><td>Administrator</td><td>-none-</td></tr>
+	  <tr><td>Bearbeiter (editor)</td><td>create</td></tr>
+	  <tr><td>Beobachter (observer)</td><td>-none-</td></tr>
+	</table>
+	  These permissions can be adapted afterwards. For the rights
+	  on resources, see registerResource().
+	<ul>
+	  <li><b>Input Parameters</b> createProjectRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of future project
+	      leader</li>
+	      <li>log - String for log information, optional</li>
+	      <li>name - String with name of project</li>
+	      <li>description - String with description of
+	      project</li>
+	      <li>file - String with URI of project file
+	      - <em>currently unused, omit or leave empty and use
+	      setProjectFile( ) once the file resource has been
+	      created</em></li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> createProjectResponse, with element
+	    <ul>
+	      <li>projectId - String with the newly assigned project
+	      ID, such as "TGPR123"</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:createProjectRequest" />
+      <wsdl:output message="tns:createProjectResponse" />
+    </wsdl:operation>
+
+    <!-- #### setProjectFile #### //-->
+    <wsdl:operation name="setProjectFile">
+
+      <wsdl:documentation>
+	Registers the URI of a TextGridObject to be the project file
+	for project-specific settings. The URI must be registered at
+	RBAC.
+	<ul>
+	  <li><b>Input Parameters</b> setProjectFileRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of Project Leader</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String with projectID</li>
+	      <li>file - String with URI of project file</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:setProjectFileRequest" />
+      <wsdl:output message="tns:setProjectFileResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### getObjects #### //-->
+    <wsdl:operation name="getObjects">
+
+      <wsdl:documentation>
+	Returns URIs of all resources in project. Caller must have
+	some role in the project.
+	<ul>
+	  <li><b>Input Parameters</b> getObjectsRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String with projectID</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> resourcesetResponse, with element
+	    <ul>
+	      <li>resource - String with URI of resource in
+	      project. Can occur multiple times</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:getObjectsRequest" />
+      <wsdl:output message="tns:getObjectsResponse" />
+    </wsdl:operation>
+
+    <!-- #### addMember #### //-->
+    <wsdl:operation name="addMember">
+
+      <wsdl:documentation>
+	Project leaders can assign users into specific roles. This
+	still does not effect <em>activation</em> of the role in the
+	user(s)' session(s).
+	<ul>
+	  <li><b>Input Parameters</b> addMemberRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of project leader</li>
+	      <li>log - String for log information, optional</li>
+	      <li>username - String with ePPN of user to be added</li>
+	      <li>role - String with full-qualified role name of the
+	      role the user is to be signed into. The full-qualified
+	      role name has the form
+	      "Administrator,TGPR3,Projekt-Teilnehmer"</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>rbacFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:addMemberRequest" />
+      <wsdl:output message="tns:addMemberResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+    </wsdl:operation>
+
+    <!-- #### deleteMember #### //-->
+    <wsdl:operation name="deleteMember">
+      <wsdl:documentation>
+	Project leaders can delete a role from a user. This
+	still does not effect <em>(de-)activation</em> of the role in the
+	user(s)' session(s).
+	<ul>
+	  <li><b>Input Parameters</b> deleteMemberRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of project leader</li>
+	      <li>log - String for log information, optional</li>
+	      <li>username - String with ePPN of user to be signed off</li>
+	      <li>role - String with full-qualified role name of the
+	      role the user is to be signed off. The full-qualified
+	      role name has the form
+	      "Administrator,TGPR3,Projekt-Teilnehmer"</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:deleteMemberRequest" />
+      <wsdl:output message="tns:deleteMemberResponse" />
+    </wsdl:operation>
+
+    <!-- #### tgAddActiveRole #### //-->
+    <wsdl:operation name="tgAddActiveRole">
+
+      <wsdl:documentation>
+	Activates a role for a session. NB, currently the login
+	process activates <em>all</em> available roles of the user.
+	<ul>
+	  <li><b>Input Parameters</b> tgAddActiveRoleRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user</li>
+	      <li>log - String for log information, optional</li>
+	      <li>role - String with full-qualified role name of the
+	      role the user wants to activate. The full-qualified role
+	      name has the form
+	      "Administrator,TGPR3,Projekt-Teilnehmer".</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:tgAddActiveRoleRequest" />
+      <wsdl:output message="tns:tgAddActiveRoleResponse" />
+    </wsdl:operation>
+
+    <!-- #### tgDropActiveRole #### //-->
+    <wsdl:operation name="tgDropActiveRole">
+
+      <wsdl:documentation>
+	De-activates a role for a session.
+	<ul>
+	  <li><b>Input Parameters</b> tgDropActiveRoleRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user</li>
+	      <li>log - String for log information, optional</li>
+	      <li>role - String with full-qualified role name of the
+	      role the user wants to de-activate. The full-qualified role
+	      name has the form
+	      "Administrator,TGPR3,Projekt-Teilnehmer".</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:tgDropActiveRoleRequest" />
+      <wsdl:output message="tns:tgDropActiveRoleResponse" />
+    </wsdl:operation>
+
+    <!-- #### tgCheckAccess #### //-->
+    <wsdl:operation name="tgCheckAccess">
+
+      <wsdl:documentation>
+	Returns access decision for given operation on given resource
+	for session.
+	<ul>
+	  <li><b>Input Parameters</b> tgCheckAccessRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user (or service) that
+	      wants to intitiate the check</li>
+	      <li>log - String for log information, optional</li>
+	      <li>sid - String, SessionID of user for whom the check
+	      is to be done. Leave empty if check is to be done for
+	      user's own session given under <em>auth</em></li>
+	      <li>operation - String, such as "read", "write"</li>
+	      <li>resource - String, name of project or role, or URI of
+	      TgObject resource</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>unknownResourceFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:tgCheckAccessRequest" />
+      <wsdl:output message="tns:tgCheckAccessResponse" />
+      <wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault" />
+    </wsdl:operation>
+
+    <!-- #### tgAssignedRoles #### //-->
+    <wsdl:operation name="tgAssignedRoles">
+
+      <wsdl:documentation>
+	Returns the roles the requesting user has, in any project. Can
+	be called for another user by project leaders, then roles will
+	be limited to the intersection of those projects
+	where <em>auth</em> is leader AND <em>username</em> has some
+	role in.
+	<ul>
+	  <li><b>Input Parameters</b> tgAssignedRolesRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to
+	      query for roles</li>
+	      <li>log - String for log information, optional</li>
+	      <li>username - String, ePPN of user for whom the
+	      query is to be done. Can be empty.</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> rolesetResponse, with element
+	    <ul>
+	      <li>role - String with full-qualified role name of the
+	      role. The full-qualified role name has the form
+	      "Administrator,TGPR3,Projekt-Teilnehmer". Can occur
+	      multiple times.</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:tgAssignedRolesRequest" />
+      <wsdl:output message="tns:tgAssignedRolesResponse" />
+    </wsdl:operation>
+
+    <!-- #### tgAssignedProjects #### //-->
+    <wsdl:operation name="tgAssignedProjects">
+
+      <wsdl:documentation>
+	Returns projectIDs of all projects the user has some role in.
+	<ul>
+	  <li><b>Input Parameters</b> tgAssignedProjectsRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to
+	      query for roles</li>
+	      <li>log - String for log information, optional</li>
+	      <li>level - Integer. Can be either empty (= level 0) or one of
+	      the following:
+		<ul>
+		  <li>0 - Returns all projects the user has any
+		  role in (default).</li>
+		  <li>1 - Returns only projects where the user has
+		  read access, i.e. <ul><li>she is Beobachter
+		  (observer) or</li><li>she is Bearbeiter (editor)
+		  or</li><li>there are any public resources in the
+		  project</li></ul></li>
+		  <li>2 - like level 1, but public resources do not
+		  count</li>
+		  <li>3 - Returns only projects where the user has
+		  write access, i.e. she is Bearbeiter (editor)</li>
+		  <li>4 - Returns only projects where the user has
+		  delegate access, i.e. she is Projektleiter (project
+		  leader)</li>
+		</ul>
+	      </li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> rolesetResponse, with element
+	    <ul>
+	      <li>role - String with projectID (no full-qualified role
+	      name is needed here). Can occur multiple times.</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:tgAssignedProjectsRequest" />
+      <wsdl:output message="tns:tgAssignedProjectsResponse" />
+    </wsdl:operation>
+
+    <!-- #### getAllProjects #### //-->
+    <wsdl:operation name="getAllProjects">
+
+      <wsdl:documentation>
+	Returns all projects stored in this RBAC instance with ID,
+	name, and description. See also getProjectDescription().
+	<ul>
+	  <li><b>Input Parameters</b> getAllProjectsRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to query
+	      for projects. Can be omitted as this information can be
+	      reviewed publicly</li>
+	      <li>log - String for log information, optional</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> getAllProjectsResponse, with element
+	    <ul>
+	      <li>project - projectInfo, can occur multiple
+	      times. <br/>
+		The type projectInfo consists of the following elements:
+		<ul>
+		  <li>id - String, project ID, such as "TGPR123"</li>
+		  <li>description - String, project description</li>
+		  <li>name - String, project name</li>
+		  <li>file - String with URI of project file for
+		  project-specific settings. </li>
+		</ul>
+	      </li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:getAllProjectsRequest" />
+      <wsdl:output message="tns:getAllProjectsResponse" />
+    </wsdl:operation>
+
+    <!-- #### getDeactivatedProjects #### //-->
+    <wsdl:operation name="getDeactivatedProjects">
+
+      <wsdl:documentation>
+        Returns all projects stored in this RBAC instance with ID,
+        name, and description that are deactivated and can be
+        reactivated by the current user.
+        <ul>
+          <li><b>Input Parameters</b> getAllProjectsRequest, with elements
+            <ul>
+              <li>auth - String, SessionID of user that wants to query
+              for projects. Can be omitted as this information can be
+              reviewed publicly</li>
+              <li>log - String for log information, optional</li>
+            </ul>
+          </li>
+          <li><b>Output Parameters</b> getDeactivatedProjectsResponse, with element
+            <ul>
+              <li>project - projectInfo, can occur multiple
+              times. <br/>
+                The type projectInfo consists of the following elements:
+                <ul>
+                  <li>id - String, project ID, such as "TGPR123"</li>
+                  <li>description - String, project description</li>
+                  <li>name - String, project name</li>
+                  <li>file - String with URI of project file for
+                  project-specific settings. </li>
+                </ul>
+              </li>
+            </ul>
+          </li>
+        </ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:getDeactivatedProjectsRequest" />
+      <wsdl:output message="tns:getDeactivatedProjectsResponse" />
+    </wsdl:operation>
+
+    <!-- #### getLeader #### //-->
+    <wsdl:operation name="getLeader">
+
+      <wsdl:documentation>
+	Returns Project Leader/s (i.e. who have delegate right on the
+	respective project resource).
+	<ul>
+	  <li><b>Input Parameters</b> getLeaderRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to query
+	      for projects. Can be omitted as this information can be
+	      reviewed publicly</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String with project ID, such as "TGPR123"</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> usersetResponse, with element
+	    <ul>
+	      <li>username - String holding ePPN of user, can occur
+	      multiple times.
+	      </li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:getLeaderRequest" />
+      <wsdl:output message="tns:getLeaderResponse" />
+    </wsdl:operation>
+
+    <!-- #### registerResource #### //-->
+    <wsdl:operation name="registerResource">
+
+      <wsdl:documentation>
+	Registers a resource in the database. Assigns standard
+	permissions to roles in project:
+	<table>
+	  <tr><td>Role</td> <td>Right on Resource</td></tr>
+	  <tr><td>Projektleiter (project leader)</td><td>delegate, publish</td></tr>
+	  <tr><td>Administrator</td><td>delete</td></tr>
+	  <tr><td>Bearbeiter (editor)</td><td>read, write</td></tr>
+	  <tr><td>Beobachter (observer)</td><td>read</td></tr>
+	</table>
+	  These permissions can be adapted afterwards. User needs
+	create right on project resource, see createProject().<br/>
+	This function is <b>only for use by TG-crud.</b> Clients
+	should call TG-crud.create instead.
+	<ul>
+	  <li><b>Input Parameters</b> registerResourceRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of future owner of this resource</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String with project ID, such as "TGPR123".</li>
+	      <li>uri - String holding URI of TgObject resource to be
+	      registered in RBAC</li>
+	      <li>secret - String known by TG-crud to authenticate
+	      itself</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+      	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:registerResourceRequest" />
+      <wsdl:output message="tns:registerResourceResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### unregisterResource #### //-->
+    <wsdl:operation name="unregisterResource">
+
+      <wsdl:documentation>
+	Removes resource from database. User needs delete right on
+	resource. <b>Only for use by TG-crud.</b> Clients should call
+	TG-crud.delete instead.
+	<ul>
+	  <li><b>Input Parameters</b> unregisterResourceRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of requester</li>
+	      <li>log - String for log information, optional</li>
+	      <li>uri - String holding URI of TgObject resource to be
+	      removed from RBAC</li>
+	      <li>secret - String known by TG-crud to authenticate
+	      itself</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+      	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>unknownResourceFault</li>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:unregisterResourceRequest" />
+      <wsdl:output message="tns:unregisterResourceResponse" />
+      <wsdl:fault name="unknownResourceFault" message="tns:unknownResourceFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### filterBySid #### //-->
+    <wsdl:operation name="filterBySid">
+
+      <wsdl:documentation>
+	This is tgCheckAccess in batch operation: Returns a list of
+	the resources where a given operation with this SessionID is
+	allowed. The resource parameter must contain a list of
+	resources, and the subset of this list that matches
+	will be returned.
+	<ul>
+	  <li><b>Input Parameters</b> filterBySidRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to
+	      do the check</li>
+	      <li>log - String for log information, optional</li>
+	      <li>resource - String with projectID, or URI of
+	      TgObject resource. Can occur multiple times.</li>
+	      <li>operation - String, such as "read", "write"</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> filterResponse, with element
+	    <ul>
+	      <li>resource - String with projectID, or URIs that
+	      match. Can occur multiple times.</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:filterBySidRequest" />
+      <wsdl:output message="tns:filterBySidResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### tgGrantPermission #### //-->
+    <wsdl:operation name="tgGrantPermission">
+
+      <wsdl:documentation>
+	Enables given operation for given role on given
+	resource. Resource may be an URI of a TgObject, or
+	a projectID. Users need delegate right on resource or project
+	(i.e. be project leader).
+	<ul>
+	  <li><b>Input Parameters</b> tgGrantPermissionRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user</li>
+	      <li>log - String for log information, optional</li>
+	      <li>role - String with full-qualified role name of the
+	      role the user wants to grant a right. The full-qualified
+	      role name has the form
+	      "Administrator,TGPR3,Projekt-Teilnehmer".</li>
+	      <li>operation - String, operation to be granted, such as
+	      "read", "write".</li>
+	      <li>resource - String, URI of TgObject, or projectID</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	      <li>rbacFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:tgGrantPermissionRequest" />
+      <wsdl:output message="tns:tgGrantPermissionResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### tgRevokePermission #### //-->
+    <wsdl:operation name="tgRevokePermission">
+
+      <wsdl:documentation>
+	Disables this permission, see tgGrantPermission for limitations.
+	<ul>
+	  <li><b>Input Parameters</b> tgRevokePermissionRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user</li>
+	      <li>log - String for log information, optional</li>
+	      <li>role - String with full-qualified role name of the
+	      role the user wants to revoke a right. The full-qualified
+	      role name has the form
+	      "Administrator,TGPR3,Projekt-Teilnehmer".</li>
+	      <li>operation - String, operation to be granted, such as
+	      "read", "write".</li>
+	      <li>resource - String, URI of TgObject, or projectID</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:tgRevokePermissionRequest" />
+      <wsdl:output message="tns:tgRevokePermissionResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### getOwner #### //-->
+    <wsdl:operation name="getOwner">
+
+      <wsdl:documentation>
+	Returns ePPN of owner that was set in registerResource. User
+	must have read permission on the resource, or resource must be
+	public.
+	<ul>
+	  <li><b>Input Parameters</b> getOwnerRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to query
+	      for the owner</li>
+	      <li>log - String for log information, optional</li>
+	      <li>resource - String, URI of TgObject</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> getOwnerResponse, with element
+	    <ul>
+	      <li>owner - String, ePPN of owner.</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:getOwnerRequest" />
+      <wsdl:output message="tns:getOwnerResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### getMembers #### //-->
+    <wsdl:operation name="getMembers">
+
+      <wsdl:documentation>
+	Returns ePPNs of all members in the project, caller must be
+	member herself.
+	<ul>
+	  <li><b>Input Parameters</b> getMembersRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to query
+	      for members</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String, ProjectID, such as "TGPR123"</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> usersetResponse, with element
+	    <ul>
+	      <li>username - String holding ePPN of user, can occur
+	      multiple times.
+	      </li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+       <wsdl:input message="tns:getMembersRequest" />
+      <wsdl:output message="tns:getMembersResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+
+    <!-- #### getUserRole #### //-->
+    <wsdl:operation name="getUserRole">
+
+      <wsdl:documentation>
+	Returns ePPNs plus Array of Roles of all members in the project, 
+	caller must be member herself.
+	<ul>
+	  <li><b>Input Parameters</b> getUserRoleRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to query
+	      for members</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String, ProjectID, such as "TGPR123"</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> getUserRoleResponse. It contains 0...n userRoles, which themselves have elements
+	    <ul>
+	      <li>username - String holding ePPN of user </li>
+	      <li>roles - array of Strings with roles the user has (e.g. "Bearbeiter").</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	      <li>unknownProjectFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:getUserRoleRequest" />
+      <wsdl:output message="tns:getUserRoleResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="unknownProjectFault" message="tns:unknownProjectFault" />
+    </wsdl:operation>
+
+
+    <!-- #### getRights #### //-->
+    <wsdl:operation name="getRights">
+
+      <wsdl:documentation>
+	Returns permissions for given resource or projectID. Can be
+	used by project leaders to check permissions for another
+	project member.
+	<ul>
+	  <li><b>Input Parameters</b> getRightsRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to query
+	      the rights</li>
+	      <li>log - String for log information, optional</li>
+	      <li>resource - String, URI of TgObject or ProjectID</li>
+	      <li>username - ePPN of user whose rights shall be
+	      queried. Leave empty to get rights of user authenticated
+	      by the auth parameter.</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> operationsetResponse, with element
+	    <ul>
+	      <li>operation - String with a right, such as "read" or
+	      "delegate". Can occur multiple times.</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:getRightsRequest" />
+      <wsdl:output message="tns:getRightsResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### publish #### //-->
+    <wsdl:operation name="publish">
+
+      <wsdl:documentation>
+	Sets the isPublic flag of a TextGridObject identified by its
+	URI to TRUE. The resource will then be world-readable. This is
+	irreversible (only by manual modification of the database) and
+	needs the publish right, which by default is granted to
+	project leaders.
+	<ul>
+	  <li><b>Input Parameters</b> publishRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants publish</li>
+	      <li>log - String for log information, optional</li>
+	      <li>resource - String, URI of TgObject</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:publishRequest" />
+      <wsdl:output message="tns:publishResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### isPublic #### //-->
+    <wsdl:operation name="isPublic">
+
+      <wsdl:documentation>
+	Returns status of isPublic flag for a TextGridObject.
+	<ul>
+	  <li><b>Input Parameters</b> isPublicRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to
+	      query. Can be empty.</li>
+	      <li>log - String for log information, optional</li>
+	      <li>resource - String, URI of TgObject</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if resource has the isPublic
+	      flag set to TRUE, i.e. has been published, false
+	      otherwise</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:isPublicRequest" />
+      <wsdl:output message="tns:isPublicResponse" />
+    </wsdl:operation>
+
+    <!-- #### hasPublicResources #### //-->
+    <wsdl:operation name="hasPublicResources">
+
+      <wsdl:documentation>
+	Checks if a project has public resources.
+	<ul>
+	  <li><b>Input Parameters</b> hasPublicResourcesRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants to
+	      query. Can be empty.</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if project has public
+	      resources.</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:hasPublicResourcesRequest" />
+      <wsdl:output message="tns:hasPublicResourcesResponse" />
+    </wsdl:operation>
+
+    <!-- #### deactivateProject #### //-->
+    <wsdl:operation name="deactivateProject">
+
+      <wsdl:documentation>
+	Hides a project. User must be project leader of the project to
+	be deactivated. Hidden projects cannot be modified or read
+	anymore (except published resources). However, information is
+	preserved so that the project can be re-activated by manual
+	modification of the database.
+	<ul>
+	  <li><b>Input Parameters</b> deactivateProjectRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants publish</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String, ProjectID</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:deactivateProjectRequest" />
+      <wsdl:output message="tns:deactivateProjectResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### reactivateProject #### //-->
+    <wsdl:operation name="reactivateProject">
+
+      <wsdl:documentation>
+	Reactivate a hidden and deactivated project. The user must be the
+        former project leader of the project to be able to reactivate it.
+        All rights will be restored.
+	<ul>
+	  <li><b>Input Parameters</b> reactivateProjectRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants publish</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String, ProjectID</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:reactivateProjectRequest" />
+      <wsdl:output message="tns:reactivateProjectResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="unknownProjectFault" message="tns:unknownProjectFault" />
+    </wsdl:operation>
+
+    <!-- #### deleteProject #### //-->
+    <wsdl:operation name="deleteProject">
+
+      <wsdl:documentation>
+	Delete a project. User must be project leader of the project that
+	is deleted. Before a project can be deleted there must not be any
+        resources associated with the project. A deleted project cannot be
+        restored.
+	<ul>
+	  <li><b>Input Parameters</b> deleteProjectRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user that wants publish</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String, ProjectID</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> booleanResponse, with element
+	    <ul>
+	      <li>result - boolean, true if operation was successful,
+	      false otherwise</li>
+	    </ul>
+	  </li>
+	  <li><b>Faults</b>
+	    <ul>
+	      <li>authenticationFault</li>
+              <li>notEmptyFault</li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:deleteProjectRequest" />
+      <wsdl:output message="tns:deleteProjectResponse" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+      <wsdl:fault name="notEmptyFault" message="tns:notEmptyFault" />
+    </wsdl:operation>
+
+    <!-- #### getProjectDescription #### //-->
+    <wsdl:operation name="getProjectDescription">
+
+      <wsdl:documentation>
+	Returns name and description of project identified by ID. See
+	also getAllProjects().
+	<ul>
+	  <li><b>Input Parameters</b> getProjectDescriptionRequest, with elements
+	    <ul>
+	      <li>auth - String, SessionID of user. Can be empty.</li>
+	      <li>log - String for log information, optional</li>
+	      <li>project - String, ProjectID</li>
+	    </ul>
+	  </li>
+	  <li><b>Output Parameters</b> getProjectDescriptionResponse, with element
+	    <ul>
+	      <li>project - projectInfo<br/>
+		The type projectInfo consists of the following elements:
+		<ul>
+		  <li>id - String, project ID, such as "TGPR123"</li>
+		  <li>description - String, project description</li>
+		  <li>name - String, project name</li>
+		  <li>file - String with URI of project file for
+		  project-specific settings. </li>
+		</ul>
+	      </li>
+	    </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:input message="tns:getProjectDescriptionRequest" />
+      <wsdl:output message="tns:getProjectDescriptionResponse" />
+    </wsdl:operation>
+
+    <!-- #### getSid #### //-->
+    <wsdl:operation name="getSid">
+
+      <wsdl:documentation>
+	Returns some random SessionID suitable for RBAC.
+	<ul>
+	  <li><b>Input Parameters</b> none </li>
+	  <li><b>Output Parameters</b> getSidResponse, with element
+	  <ul>
+	    <li>sid - String, approximately 60-70 bytes long, consisting of random characters taken from a-zA-Z0-9.</li>
+	  </ul>
+	  </li>
+	</ul>
+      </wsdl:documentation>
+
+      <wsdl:output message="tns:getSidResponse" />
+    </wsdl:operation>
+
+  </wsdl:portType>
+
+
+
+  <!--
+  ###########
+  # Binding #
+  ###########
+  //-->
+  <wsdl:binding name="binding_tgextra" type="tns:port_tgextra">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+
+    <!-- #### authenticate #### //-->
+    <wsdl:operation name="authenticate">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/authenticate" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### userExists #### //-->
+    <wsdl:operation name="userExists">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/userExists" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### createProject #### //-->
+    <wsdl:operation name="createProject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/createProject" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### setProjectFile #### //-->
+    <wsdl:operation name="setProjectFile">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/setProjectFile" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### getObjects #### //-->
+    <wsdl:operation name="getObjects">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getObjects" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### addMember #### //-->
+    <wsdl:operation name="addMember">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addMember" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deleteMember #### //-->
+    <wsdl:operation name="deleteMember">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteMember" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### tgAddActiveRole #### //-->
+    <wsdl:operation name="tgAddActiveRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgAddActiveRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### tgDropActiveRole #### //-->
+    <wsdl:operation name="tgDropActiveRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgDropActiveRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### tgCheckAccess #### //-->
+    <wsdl:operation name="tgCheckAccess">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgCheckAccess" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="unknownResourceFault"><soap:fault name="unknownResourceFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### tgAssignedRoles #### //-->
+    <wsdl:operation name="tgAssignedRoles">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgAssignedRoles" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### tgAssignedProjects #### //-->
+    <wsdl:operation name="tgAssignedProjects">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgAssignedProjects" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### getAllProjects #### //-->
+    <wsdl:operation name="getAllProjects">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getAllProjects" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### getLeader #### //-->
+    <wsdl:operation name="getLeader">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getLeader" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### registerResource #### //-->
+    <wsdl:operation name="registerResource">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/registerResource" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### unregisterResource #### //-->
+    <wsdl:operation name="unregisterResource">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/unregisterResource" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="unknownResourceFault"><soap:fault name="unknownResourceFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### filterBySid #### //-->
+    <wsdl:operation name="filterBySid">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/filterBySid" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### tgGrantPermission #### //-->
+    <wsdl:operation name="tgGrantPermission">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgGrantPermission" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### tgRevokePermission #### //-->
+    <wsdl:operation name="tgRevokePermission">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/tgRevokePermission" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### getOwner #### //-->
+    <wsdl:operation name="getOwner">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getOwner" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### getMembers #### //-->
+    <wsdl:operation name="getMembers">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getMembers" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### getUserRole #### //-->
+    <wsdl:operation name="getUserRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getUserRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="unknownProjectFault"><soap:fault name="unknownProjectFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### getRights #### //-->
+    <wsdl:operation name="getRights">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getRights" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### publish #### //-->
+    <wsdl:operation name="publish">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/publish" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### isPublic #### //-->
+    <wsdl:operation name="isPublic">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/isPublic" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### hasPublicResources #### //-->
+    <wsdl:operation name="hasPublicResources">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/hasPublicResources" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### getProjectDescription #### //-->
+    <wsdl:operation name="getProjectDescription">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getProjectDescription" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### deactivateProject #### //-->
+    <wsdl:operation name="deactivateProject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deactivateProject" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### getDeactivatedProjects #### //-->
+    <wsdl:operation name="getDeactivatedProjects">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getDeactivatedProjects" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+    <!-- #### reactivateProject #### //-->
+    <wsdl:operation name="reactivateProject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/reactivateProject" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal" /></wsdl:fault>
+      <wsdl:fault name="unknownProjectFault"><soap:fault name="unknownProjectFault" use="literal" /></wsdl:fault>
+    </wsdl:operation>
+ 
+    <!-- #### deleteProject #### //-->
+    <wsdl:operation name="deleteProject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteProject" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="authenticationFault"><soap:fault name="authenticationFault" use="literal" /></wsdl:fault>
+      <wsdl:fault name="notEmptyFault"><soap:fault name="notEmptyFault" use="literal" /></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### getSid #### //-->
+    <wsdl:operation name="getSid">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/getSid" />
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+  </wsdl:binding>
+
+
+
+  <!--
+  #####################
+  # Servicedefinition #
+  #####################
+  //-->
+  <wsdl:service name="tgextra">
+    <wsdl:port binding="tns:binding_tgextra" name="tgextra">
+      <soap:address location="http://134.76.20.87/tgauth/rbacSoap/tgextra.php" />
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgreview.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgreview.wsdl
new file mode 100644
index 0000000..320e68b
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgreview.wsdl
@@ -0,0 +1,497 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions name="tgreview"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:tns="http://textgrid.info/namespaces/middleware/tgauth"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+
+  <!--
+  ####################
+  # Typ-Definitionen #
+  ####################
+  //-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+      <!-- #### sessionRoles #### //-->
+      <xsd:element name="sessionRolesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### assignedRoles #### //-->
+      <xsd:element name="assignedRolesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### authorizedRoles #### //-->
+      <xsd:element name="authorizedRolesRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### authorizedUsers #### //-->
+      <xsd:element name="authorizedUsersRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### rolePermissions #### //-->
+      <xsd:element name="rolePermissionsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### userPermissions #### //-->
+      <xsd:element name="userPermissionsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### sessionPermissions #### //-->
+      <xsd:element name="sessionPermissionsRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### assignedUsers #### //-->
+      <xsd:element name="assignedUsersRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### roleOperationsOnObject #### //-->
+      <xsd:element name="roleOperationsOnObjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### userOperationsOnObject #### //-->
+      <xsd:element name="userOperationsOnObjectRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="user" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="operationsetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="operationset" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="permissionsetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="permissionset" type="tns:permission" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="rolesetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="role" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="usersetResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="username" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="booleanResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="result" type="xsd:boolean" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <xsd:element name="permission">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### rbacFault #### //-->
+      <xsd:element name="rbacFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### authenticationFault #### //-->
+      <xsd:element name="authenticationFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+    </xsd:schema>
+
+  </wsdl:types>
+
+
+  <!--
+  #################
+  # WSDL-Messages #
+  #################
+  //-->
+
+  <!-- #### sessionRoles #### //-->
+  <wsdl:message name="sessionRolesRequest">
+    <wsdl:part element="tns:sessionRolesRequest" name="sessionRolesInput" />
+  </wsdl:message>
+  <wsdl:message name="sessionRolesResponse">
+    <wsdl:part element="tns:rolesetResponse" name="sessionRolesOutput" />
+  </wsdl:message>
+
+  <!-- #### assignedRoles #### //-->
+  <wsdl:message name="assignedRolesRequest">
+    <wsdl:part element="tns:assignedRolesRequest" name="assignedRolesInput" />
+  </wsdl:message>
+  <wsdl:message name="assignedRolesResponse">
+    <wsdl:part element="tns:rolesetResponse" name="assignedRolesOutput" />
+  </wsdl:message>
+
+  <!-- #### authorizedRoles #### //-->
+  <wsdl:message name="authorizedRolesRequest">
+    <wsdl:part element="tns:authorizedRolesRequest" name="authorizedRolesInput" />
+  </wsdl:message>
+  <wsdl:message name="authorizedRolesResponse">
+    <wsdl:part element="tns:rolesetResponse" name="authorizedRolesOutput" />
+  </wsdl:message>
+
+  <!-- #### authorizedUsers #### //-->
+  <wsdl:message name="authorizedUsersRequest">
+    <wsdl:part element="tns:authorizedUsersRequest" name="authorizedUsersInput" />
+  </wsdl:message>
+  <wsdl:message name="authorizedUsersResponse">
+    <wsdl:part element="tns:usersetResponse" name="authorizedUsersOutput" />
+  </wsdl:message>
+
+  <!-- #### rolePermissions #### //-->
+  <wsdl:message name="rolePermissionsRequest">
+    <wsdl:part element="tns:rolePermissionsRequest" name="rolePermissionsInput" />
+  </wsdl:message>
+  <wsdl:message name="rolePermissionsResponse">
+    <wsdl:part element="tns:permissionsetResponse" name="rolePermissionsOutput" />
+  </wsdl:message>
+
+  <!-- #### userPermissions #### //-->
+  <wsdl:message name="userPermissionsRequest">
+    <wsdl:part element="tns:userPermissionsRequest" name="userPermissionsInput" />
+  </wsdl:message>
+  <wsdl:message name="userPermissionsResponse">
+    <wsdl:part element="tns:permissionsetResponse" name="userPermissionsOutput" />
+  </wsdl:message>
+
+  <!-- #### sessionPermissions #### //-->
+  <wsdl:message name="sessionPermissionsRequest">
+    <wsdl:part element="tns:sessionPermissionsRequest" name="sessionPermissionsInput" />
+  </wsdl:message>
+  <wsdl:message name="sessionPermissionsResponse">
+    <wsdl:part element="tns:permissionsetResponse" name="sessionPermissionsOutput" />
+  </wsdl:message>
+
+  <!-- #### assignedUsers #### //-->
+  <wsdl:message name="assignedUsersRequest">
+    <wsdl:part element="tns:assignedUsersRequest" name="assignedUsersInput" />
+  </wsdl:message>
+  <wsdl:message name="assignedUsersResponse">
+    <wsdl:part element="tns:usersetResponse" name="assignedUsersOutput" />
+  </wsdl:message>
+
+  <!-- #### roleOperationsOnObject #### //-->
+  <wsdl:message name="roleOperationsOnObjectRequest">
+    <wsdl:part element="tns:roleOperationsOnObjectRequest" name="roleOperationsOnObjectInput" />
+  </wsdl:message>
+  <wsdl:message name="roleOperationsOnObjectResponse">
+    <wsdl:part element="tns:operationsetResponse" name="roleOperationsOnObjectOutput" />
+  </wsdl:message>
+
+  <!-- #### userOperationsOnObject #### //-->
+  <wsdl:message name="userOperationsOnObjectRequest">
+    <wsdl:part element="tns:userOperationsOnObjectRequest" name="userOperationsOnObjectInput" />
+  </wsdl:message>
+  <wsdl:message name="userOperationsOnObjectResponse">
+    <wsdl:part element="tns:operationsetResponse" name="userOperationsOnObjectOutput" />
+  </wsdl:message>
+
+  <!-- #### rbacFault #### //-->
+  <wsdl:message name="rbacFault">
+    <wsdl:part element="tns:rbacFaultResponse" name="rbacFault" />
+  </wsdl:message>
+
+  <!-- #### authenticationFault #### //-->
+  <wsdl:message name="authenticationFault">
+    <wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" />
+  </wsdl:message>
+
+
+  <!--
+  ##########################
+  # Port-Type-Definitionen #
+  ##########################
+  //-->
+  <wsdl:portType name="port_tgreview">
+
+    <!-- #### sessionRoles #### //-->
+    <wsdl:operation name="sessionRoles">
+      <wsdl:input message="tns:sessionRolesRequest" />
+      <wsdl:output message="tns:sessionRolesResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### assignedRoles #### //-->
+    <wsdl:operation name="assignedRoles">
+      <wsdl:input message="tns:assignedRolesRequest" />
+      <wsdl:output message="tns:assignedRolesResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### authorizedRoles #### //-->
+    <wsdl:operation name="authorizedRoles">
+      <wsdl:input message="tns:authorizedRolesRequest" />
+      <wsdl:output message="tns:authorizedRolesResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### authorizedUsers #### //-->
+    <wsdl:operation name="authorizedUsers">
+      <wsdl:input message="tns:authorizedUsersRequest" />
+      <wsdl:output message="tns:authorizedUsersResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### rolePermissions #### //-->
+    <wsdl:operation name="rolePermissions">
+      <wsdl:input message="tns:rolePermissionsRequest" />
+      <wsdl:output message="tns:rolePermissionsResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### userPermissions #### //-->
+    <wsdl:operation name="userPermissions">
+      <wsdl:input message="tns:userPermissionsRequest" />
+      <wsdl:output message="tns:userPermissionsResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### sessionPermissions #### //-->
+    <wsdl:operation name="sessionPermissions">
+      <wsdl:input message="tns:sessionPermissionsRequest" />
+      <wsdl:output message="tns:sessionPermissionsResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### assignedUsers #### //-->
+    <wsdl:operation name="assignedUsers">
+      <wsdl:input message="tns:assignedUsersRequest" />
+      <wsdl:output message="tns:assignedUsersResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### roleOperationsOnOBject #### //-->
+    <wsdl:operation name="roleOperationsOnObject">
+      <wsdl:input message="tns:roleOperationsOnObjectRequest" />
+      <wsdl:output message="tns:roleOperationsOnObjectResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### userOperationsOnOBject #### //-->
+    <wsdl:operation name="userOperationsOnObject">
+      <wsdl:input message="tns:userOperationsOnObjectRequest" />
+      <wsdl:output message="tns:userOperationsOnObjectResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+  </wsdl:portType>
+
+
+
+  <!--
+  ###########
+  # Binding #
+  ###########
+  //-->
+  <wsdl:binding name="binding_tgreview" type="tns:port_tgreview">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+
+    <!-- #### sessionRoles #### //-->
+    <wsdl:operation name="sessionRoles">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/sessionRoles" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### assignedRoles #### //-->
+    <wsdl:operation name="assignedRoles">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/assignedRoles" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### authorizedRoles #### //-->
+    <wsdl:operation name="authorizedRoles">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/authorizedRoles" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### authorizedUsers #### //-->
+    <wsdl:operation name="authorizedUsers">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/authorizedUsers" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### rolePermissions #### //-->
+    <wsdl:operation name="rolePermissions">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/rolePermissions" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### userPermissions #### //-->
+    <wsdl:operation name="userPermissions">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/userPermissions" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### sessionPermissions #### //-->
+    <wsdl:operation name="sessionPermissions">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/sessionPermissions" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### assignedUsers #### //-->
+    <wsdl:operation name="assignedUsers">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/assignedUsers" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### roleOperationsOnObject #### //-->
+    <wsdl:operation name="roleOperationsOnObject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/roleOperationsOnObject" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### userOperationsOnObject #### //-->
+    <wsdl:operation name="userOperationsOnObject">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/userOperationsOnObject" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+  </wsdl:binding>
+
+
+
+  <!--
+  #####################
+  # Servicedefinition #
+  #####################
+  //-->
+  <wsdl:service name="tgreview">
+    <wsdl:port binding="tns:binding_tgreview" name="tns:tgreview">
+      <soap:address location="http://134.76.20.87/tgauth/rbacSoap/tgreview.php" />
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgsystem.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgsystem.wsdl
new file mode 100644
index 0000000..8c7e179
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/tgsystem.wsdl
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions name="tgsystem"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:tns="http://textgrid.info/namespaces/middleware/tgauth"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+
+  <!--
+  ####################
+  # Typ-Definitionen #
+  ####################
+  //-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://textgrid.info/namespaces/middleware/tgauth">
+
+      <!-- #### createSession #### //-->
+      <xsd:element name="createSessionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="roleset" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### deleteSession #### //-->
+      <xsd:element name="deleteSessionRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### addActiveRole #### //-->
+      <xsd:element name="addActiveRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### dropActiveRole #### //-->
+      <xsd:element name="dropActiveRoleRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="role" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### checkAccess #### //-->
+      <xsd:element name="checkAccessRequest">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="intSid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="sid" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="operation" type="xsd:string" minOccurs="1" maxOccurs="1" />
+            <xsd:element name="resource" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <xsd:element name="booleanResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="result" type="xsd:boolean" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+
+      <!-- #### rbacFault #### //-->
+      <xsd:element name="rbacFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+      <!-- #### authenticationFault #### //-->
+      <xsd:element name="authenticationFaultResponse">
+        <xsd:complexType>
+          <xsd:sequence>
+            <xsd:element name="fault" type="xsd:string" minOccurs="1" maxOccurs="1" />
+          </xsd:sequence>
+        </xsd:complexType>
+      </xsd:element>
+
+    </xsd:schema>
+
+  </wsdl:types>
+
+
+  <!--
+  #################
+  # WSDL-Messages #
+  #################
+  //-->
+
+  <!-- #### createSession #### //-->
+  <wsdl:message name="createSessionRequest">
+    <wsdl:part element="tns:createSessionRequest" name="createSessionInput" />
+  </wsdl:message>
+  <wsdl:message name="createSessionResponse">
+    <wsdl:part element="tns:booleanResponse" name="createSessionOutput" />
+  </wsdl:message>
+
+  <!-- #### deleteSession #### //-->
+  <wsdl:message name="deleteSessionRequest">
+    <wsdl:part element="tns:deleteSessionRequest" name="deleteSessionInput" />
+  </wsdl:message>
+  <wsdl:message name="deleteSessionResponse">
+    <wsdl:part element="tns:booleanResponse" name="deleteSessionOutput" />
+  </wsdl:message>
+
+  <!-- #### addActiveRole #### //-->
+  <wsdl:message name="addActiveRoleRequest">
+    <wsdl:part element="tns:addActiveRoleRequest" name="addActiveRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="addActiveRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="addActiveRoleOutput" />
+  </wsdl:message>
+
+  <!-- #### dropActiveRole #### //-->
+  <wsdl:message name="dropActiveRoleRequest">
+    <wsdl:part element="tns:dropActiveRoleRequest" name="dropActiveRoleInput" />
+  </wsdl:message>
+  <wsdl:message name="dropActiveRoleResponse">
+    <wsdl:part element="tns:booleanResponse" name="dropActiveRoleOutput" />
+  </wsdl:message>
+
+  <!-- #### checkAccess #### //-->
+  <wsdl:message name="checkAccessRequest">
+    <wsdl:part element="tns:checkAccessRequest" name="checkAccessInput" />
+  </wsdl:message>
+  <wsdl:message name="checkAccessResponse">
+    <wsdl:part element="tns:booleanResponse" name="checkAccessOutput" />
+  </wsdl:message>
+
+  <!-- #### rbacFault #### //-->
+  <wsdl:message name="rbacFault">
+    <wsdl:part element="tns:rbacFaultResponse" name="rbacFault" />
+  </wsdl:message>
+
+  <!-- #### authenticationFault #### //-->
+  <wsdl:message name="authenticationFault">
+    <wsdl:part element="tns:authenticationFaultResponse" name="authenticationFault" />
+  </wsdl:message>
+
+
+  <!--
+  ##########################
+  # Port-Type-Definitionen #
+  ##########################
+  //-->
+  <wsdl:portType name="port_tgsystem">
+
+    <!-- #### createSession #### //-->
+    <wsdl:operation name="createSession">
+      <wsdl:input message="tns:createSessionRequest" />
+      <wsdl:output message="tns:createSessionResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### deleteSession #### //-->
+    <wsdl:operation name="deleteSession">
+      <wsdl:input message="tns:deleteSessionRequest" />
+      <wsdl:output message="tns:deleteSessionResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### addActiveRole #### //-->
+    <wsdl:operation name="addActiveRole">
+      <wsdl:input message="tns:addActiveRoleRequest" />
+      <wsdl:output message="tns:addActiveRoleResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+    </wsdl:operation>
+
+    <!-- #### addActiveRole #### //-->
+    <wsdl:operation name="dropActiveRole">
+      <wsdl:input message="tns:dropActiveRoleRequest" />
+      <wsdl:output message="tns:dropActiveRoleResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+    <!-- #### checkAccess #### //-->
+    <wsdl:operation name="checkAccess">
+      <wsdl:input message="tns:checkAccessRequest" />
+      <wsdl:output message="tns:checkAccessResponse" />
+      <wsdl:fault name="rbacFault" message="tns:rbacFault" />
+      <wsdl:fault name="authenticationFault" message="tns:authenticationFault" />
+    </wsdl:operation>
+
+  </wsdl:portType>
+
+
+
+  <!--
+  ###########
+  # Binding #
+  ###########
+  //-->
+  <wsdl:binding name="binding_tgsystem" type="tns:port_tgsystem">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+
+    <!-- #### createSession #### //-->
+    <wsdl:operation name="createSession">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/createSession" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### deleteSession #### //-->
+    <wsdl:operation name="deleteSession">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/deleteSession" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### addActiveRole #### //-->
+    <wsdl:operation name="addActiveRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/addActiveRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### dropActiveRole #### //-->
+    <wsdl:operation name="dropActiveRole">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/dropActiveRole" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+    <!-- #### checkAccess #### //-->
+    <wsdl:operation name="checkAccess">
+      <soap:operation soapAction="http://textgrid.info/namespaces/middleware/tgauth/checkAccess" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+      <wsdl:fault name="rbacFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+      <wsdl:fault name="authenticationFault"><soap:fault name="rbacFault" use="literal"/></wsdl:fault>
+    </wsdl:operation>
+
+  </wsdl:binding>
+
+
+
+  <!--
+  #####################
+  # Servicedefinition #
+  #####################
+  //-->
+  <wsdl:service name="tgsystem">
+    <wsdl:port binding="tns:binding_tgsystem" name="tgsystem">
+      <soap:address location="http://134.76.20.87/tgauth/rbacSoap/tgsystem.php" />
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/xacml.wsdl b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/xacml.wsdl
new file mode 100644
index 0000000..f7a4c9c
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/xacml.wsdl
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<wsdl:definitions name="xacml"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:tns="http://daasi.de/namespaces/rbac/xacml"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  targetNamespace="http://daasi.de/namespaces/rbac/xacml"
+                  xmlns:xacml-samlp="urn:oasis:xacml:2.0:saml:protocol:schema:os"
+                  xmlns:xacml-saml="urn:oasis:xacml:2.0:saml:assertion:schema:os">
+
+
+  <!--
+  ####################
+  # Typ-Definitionen #
+  ####################
+  //-->
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://daasi.de/namespaces/rbac/xacml">
+    	<xsd:import namespace="urn:oasis:xacml:2.0:saml:assertion:schema:os"
+                    schemaLocation="http://www.daasi.de/schema/oasis/access_control-xacml-2.0-saml-assertion-schema-os.xsd" />
+	<xsd:import namespace="urn:oasis:xacml:2.0:saml:protocol:schema:os"
+                    schemaLocation="http://www.daasi.de/schema/oasis/access_control-xacml-2.0-saml-protocol-schema-os.xsd"/>
+
+    </xsd:schema>
+
+  </wsdl:types>
+
+
+  <!--
+  #################
+  # WSDL-Messages #
+  #################
+  //-->
+
+  <!-- #### checkXACMLaccess #### //-->
+  <wsdl:message name="checkXACMLaccessRequest">
+    <wsdl:part element="xacml-samlp:XACMLAuthzDecisionQuery" name="checkXACMLaccessInput" />
+  </wsdl:message>
+  <wsdl:message name="checkXACMLaccessResponse">
+    <wsdl:part element="xacml-saml:XACMLAuthzDecisionStatement" name="checkXACMLaccessOutput" />
+  </wsdl:message>
+
+
+
+  <!--
+  ##########################
+  # Port-Type-Definitionen #
+  ##########################
+  //-->
+  <wsdl:portType name="port_xacml">
+
+    <!-- #### checkXACMLaccess #### //-->
+    <wsdl:operation name="checkXACMLaccess">
+      <wsdl:input message="tns:checkXACMLaccessRequest" />
+      <wsdl:output message="tns:checkXACMLaccessResponse" />
+    </wsdl:operation>
+
+  </wsdl:portType>
+
+
+
+  <!--
+  ###########
+  # Binding #
+  ###########
+  //-->
+  <wsdl:binding name="binding_xacml" type="tns:port_xacml">
+    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+
+    <!-- #### checkXACMLaccess #### //-->
+    <wsdl:operation name="checkXACMLaccess">
+      <soap:operation soapAction="http://daasi.de/rbac/xacml/checkXACMLaccess" />
+      <wsdl:input><soap:body use="literal" /></wsdl:input>
+      <wsdl:output><soap:body use="literal" /></wsdl:output>
+    </wsdl:operation>
+
+  </wsdl:binding>
+
+
+
+  <!--
+  #####################
+  # Servicedefinition #
+  #####################
+  //-->
+  <wsdl:service name="xacml">
+    <wsdl:port binding="tns:binding_xacml" name="tns:xacml">
+      <soap:address location="http://textgrid-ws1.gwdg.de/tgauth/rbacSoap/xacml.php" />
+    </wsdl:port>
+  </wsdl:service>
+
+</wsdl:definitions>
diff --git a/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/xacml.wsdl.readme.txt b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/xacml.wsdl.readme.txt
new file mode 100644
index 0000000..305325a
--- /dev/null
+++ b/info.textgrid.middleware.tgauth.rbac/rbacSoap/wsdl-ws3/xacml.wsdl.readme.txt
@@ -0,0 +1 @@
+xacml.wsdl imports corrected OASIS XML schemas beacause these were found to be incorrect
-- 
GitLab