Index: trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/SOAPUtils.java
===================================================================
--- trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/SOAPUtils.java	(revision 1928)
+++ trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/SOAPUtils.java	(revision 1929)
@@ -16,4 +16,5 @@
 
 import java.io.StringWriter;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -27,6 +28,8 @@
 import javax.xml.transform.stream.StreamResult;
 
+import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 import de.ugoe.cs.autoquest.eventcore.Event;
@@ -43,5 +46,5 @@
  */
 public class SOAPUtils {
-    
+
     /**
      * <p>
@@ -69,5 +72,6 @@
                                                                       eventType.getServiceName(),
                                                                       eventType.getClientName(),
-                                                                      eventType.getSoapRequestBody())));
+                                                                      eventType
+                                                                          .getSoapRequestBody())));
                 }
                 else {
@@ -80,5 +84,5 @@
         return newSequence;
     }
-    
+
     /**
      * <p>
@@ -89,6 +93,5 @@
      *            sequence where the events are replaced
      */
-    public static void removeNonSOAPEvents(List<Event> sequence)
-    {
+    public static void removeNonSOAPEvents(List<Event> sequence) {
         for (Iterator<Event> eventIter = sequence.iterator(); eventIter.hasNext();) {
             Event event = eventIter.next();
@@ -188,8 +191,9 @@
         return requestBody;
     }
-    
-    /**
-     * <p>
-     * returns the XML serialization of a DOM node; located here because it is used for SOAP request bodies
+
+    /**
+     * <p>
+     * returns the XML serialization of a DOM node; located here because it is used for SOAP request
+     * bodies
      * </p>
      * 
@@ -199,5 +203,5 @@
      */
     public static String getSerialization(Node node) {
-        if( node==null ) {
+        if (node == null) {
             return null;
         }
@@ -214,5 +218,76 @@
         }
     }
-    
+
+    /**
+     * <p>
+     * Fetches all {@link Element}s that are direct children of the parent node, whose name matches
+     * the given name.
+     * </p>
+     * 
+     * @param typeNameRaw
+     *            name of elements that are looked for
+     * @param parentNode
+     *            DOM node in which the elements are searched for
+     * @return found {@link Element}s
+     */
+    public static List<Element> getMatchingChildNode(String typeNameRaw, Element parentNode) {
+        List<Element> matchingNodes = new ArrayList<>();
+        Node parameterNode = null;
+        if (parentNode != null) {
+            NodeList parameterNodes = parentNode.getChildNodes();
+            String[] typeNameSplit = typeNameRaw.split(":");
+            String typeName = typeNameSplit[typeNameSplit.length - 1];
+            for (int i = 0; i < parameterNodes.getLength(); i++) {
+                parameterNode = parameterNodes.item(i);
+                if (parameterNode.getNodeType() == Node.ELEMENT_NODE) {
+                    String[] parameterNodeSplit = parameterNode.getNodeName().split(":");
+                    String parameterNodeName = parameterNodeSplit[parameterNodeSplit.length - 1];
+                    if (typeName.equals(parameterNodeName)) {
+                        matchingNodes.add((Element) parameterNode);
+                    }
+                }
+            }
+        }
+        return matchingNodes;
+    }
+
+    /**
+     * <p>
+     * Returns the values found in a currentNode for a defined valueName. To this aim, this methods
+     * first determines if there is an attribute with the name "valueName". If this is the case, the
+     * value of this attribute is returned. Otherwise, the methods looks for {@link Element}s that
+     * are direct children of the provided DOM node with the given name and returns the text content
+     * of those nodes.
+     * </p>
+     * <p>
+     * In case no values can be found, an empty list is returned
+     * 
+     * @param valueName
+     *            name of the value that is retrieved
+     * @param node
+     *            node for which the value is retrieved
+     * @return list of the found values.
+     */
+    public static List<String> getValuesFromElement(String valueName, Element node) {
+        List<String> attributeValues = new LinkedList<>();
+
+        if (node != null) {
+            // first check attributes of the node
+            Attr attribute = node.getAttributeNode(valueName);
+            if (attribute != null) {
+                attributeValues.add(attribute.getValue());
+            }
+            else {
+                // now check elements
+                List<Element> elements = getMatchingChildNode(valueName, node);
+                for (Element element : elements) {
+                    attributeValues.add(element.getTextContent());
+                }
+            }
+        }
+
+        return attributeValues;
+    }
+
     /**
      * <p>
