diff --git a/src/main/java/caosdb/server/converter/xml/EntityXMLConverterHelper.java b/src/main/java/caosdb/server/converter/xml/EntityXMLConverterHelper.java
index b3ac16f5bcf873aff993e988d5ad66dc7c404072..5baaea4cc1ce780962f516c44e8ba50529db0d94 100644
--- a/src/main/java/caosdb/server/converter/xml/EntityXMLConverterHelper.java
+++ b/src/main/java/caosdb/server/converter/xml/EntityXMLConverterHelper.java
@@ -1,14 +1,5 @@
 package caosdb.server.converter.xml;
 
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.converter.misc.AbstractContainerHelper;
-import caosdb.server.entity.Entity;
-import caosdb.server.entity.EntityInterface;
-import caosdb.server.entity.container.Container;
-import caosdb.server.entity.container.TransactionContainer;
-import caosdb.server.resource.JdomRepresentation;
 import java.io.IOException;
 import java.util.Collection;
 import org.apache.shiro.subject.Subject;
@@ -23,6 +14,15 @@ import org.restlet.representation.Representation;
 import org.restlet.representation.Variant;
 import org.restlet.resource.Resource;
 import org.restlet.resource.ResourceException;
+import caosdb.server.accessControl.AuthenticationUtils;
+import caosdb.server.accessControl.Principal;
+import caosdb.server.accessControl.UserSources;
+import caosdb.server.converter.misc.AbstractContainerHelper;
+import caosdb.server.entity.Entity;
+import caosdb.server.entity.EntityInterface;
+import caosdb.server.entity.container.Container;
+import caosdb.server.entity.container.TransactionContainer;
+import caosdb.server.resource.JdomRepresentation;
 
 public class EntityXMLConverterHelper extends AbstractContainerHelper {
 
@@ -70,7 +70,7 @@ public class EntityXMLConverterHelper extends AbstractContainerHelper {
   private Representation toJdomRepresentation(TransactionContainer container, Resource resource) {
     Document doc = toDocument(container, resource);
 
-    String xsl = resource.getAttribute("xsl");
+    String xsl = resource.getResponseAttributes().get("xsl").toString();
     if (xsl != null) {
       addStyleSheet(doc, xsl);
     }
diff --git a/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java b/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
index 7e2a483af1f87a33ee7ffc2f82a6f1d5a806c377..339e6ac01283fbad53a8ba4f9fe6004fa7f75b29 100644
--- a/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
+++ b/src/main/java/caosdb/server/resource/AbstractCaosDBServerResource.java
@@ -74,7 +74,7 @@ public abstract class AbstractCaosDBServerResource extends ServerResource {
 
     this.utils = WebinterfaceUtils.getInstance(getHostRef());
 
-    this.setAttribute("xsl", getXSLScript());
+    this.getResponseAttributes().put("xsl", getXSLScript());
 
     MediaType mediaType = getRequest().getEntity().getMediaType();
 
diff --git a/src/main/java/caosdb/server/resource/FileSystemResource.java b/src/main/java/caosdb/server/resource/FileSystemResource.java
index cc8d8df75d96ea4b53ce26a5b1a2ec859d543d6d..c066e1a70aace980417fa89780cc5adaa7177c3a 100644
--- a/src/main/java/caosdb/server/resource/FileSystemResource.java
+++ b/src/main/java/caosdb/server/resource/FileSystemResource.java
@@ -24,7 +24,17 @@ package caosdb.server.resource;
 
 import static caosdb.server.FileSystem.getFromFileSystem;
 import static java.net.URLDecoder.decode;
-
+import java.io.File;
+import java.io.IOException;
+import org.jdom2.Attribute;
+import org.jdom2.Document;
+import org.jdom2.Element;
+import org.jdom2.JDOMException;
+import org.restlet.data.Disposition;
+import org.restlet.data.MediaType;
+import org.restlet.data.Status;
+import org.restlet.representation.FileRepresentation;
+import org.restlet.representation.Representation;
 import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
 import caosdb.server.database.exceptions.EntityDoesNotExistException;
 import caosdb.server.database.misc.TransactionBenchmark;
@@ -39,17 +49,6 @@ import caosdb.server.transaction.RetrieveSparseEntityByPath;
 import caosdb.server.transaction.Transaction;
 import caosdb.server.utils.FileUtils;
 import caosdb.server.utils.ServerMessages;
-import java.io.File;
-import java.io.IOException;
-import org.jdom2.Attribute;
-import org.jdom2.Document;
-import org.jdom2.Element;
-import org.jdom2.JDOMException;
-import org.restlet.data.Disposition;
-import org.restlet.data.MediaType;
-import org.restlet.data.Status;
-import org.restlet.representation.FileRepresentation;
-import org.restlet.representation.Representation;
 
 /**
  * Download files via GET method from the file system directly without making the detour through the
@@ -222,4 +221,5 @@ public class FileSystemResource extends XMLServerResource {
     this.setStatus(org.restlet.data.Status.CLIENT_ERROR_METHOD_NOT_ALLOWED);
     return null;
   }
+  
 }
diff --git a/src/main/java/caosdb/server/resource/XMLServerResource.java b/src/main/java/caosdb/server/resource/XMLServerResource.java
index 2650660a4864b44b33a043adb5b186b123a1f2e6..70b69b8d20bf7def01849372454858c6b18cda22 100644
--- a/src/main/java/caosdb/server/resource/XMLServerResource.java
+++ b/src/main/java/caosdb/server/resource/XMLServerResource.java
@@ -19,14 +19,6 @@
  */
 package caosdb.server.resource;
 
-import caosdb.server.CaosDBException;
-import caosdb.server.accessControl.AuthenticationUtils;
-import caosdb.server.accessControl.Principal;
-import caosdb.server.accessControl.UserSources;
-import caosdb.server.converter.xml.XMLParser;
-import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
-import caosdb.server.entity.Message;
-import caosdb.server.utils.ServerMessages;
 import java.io.IOException;
 import java.io.InputStream;
 import java.security.NoSuchAlgorithmException;
@@ -40,12 +32,21 @@ import org.apache.shiro.subject.Subject;
 import org.jdom2.Document;
 import org.jdom2.Element;
 import org.jdom2.JDOMException;
+import org.jdom2.ProcessingInstruction;
 import org.restlet.data.Status;
 import org.restlet.representation.Representation;
 import org.restlet.resource.Delete;
 import org.restlet.resource.Get;
 import org.restlet.resource.Post;
 import org.restlet.resource.Put;
+import caosdb.server.CaosDBException;
+import caosdb.server.accessControl.AuthenticationUtils;
+import caosdb.server.accessControl.Principal;
+import caosdb.server.accessControl.UserSources;
+import caosdb.server.converter.xml.XMLParser;
+import caosdb.server.database.backend.implementation.MySQL.ConnectionException;
+import caosdb.server.entity.Message;
+import caosdb.server.utils.ServerMessages;
 
 /**
  * This is a temporary bridge class. It contains all code which is necessary for any resources that
@@ -224,7 +225,7 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
   }
 
   /** Wrap an element for an "OK" response. */
-  protected JdomRepresentation ok(Element root) {
+  protected Representation ok(Element root) {
     return ok(new Document(root));
   }
 
@@ -232,8 +233,8 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
    * Return a JDomRepresentation of the document and leave the {@link Response}'s {@link Status}
    * where it is - which is usually 200 - OK when this method happens to be called.
    */
-  protected JdomRepresentation ok(final Document doc) {
-    return new JdomRepresentation(doc, "  ");
+  protected Representation ok(final Document doc) {
+    return toJdomRepresentation(doc);
   }
 
   /**
@@ -249,12 +250,12 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
     final Element root = generateRootElement();
     root.addContent(m.toElement().setName("Error"));
     doc.setRootElement(root);
-    return error(new JdomRepresentation(doc, "  "), status);
+    return error(doc, status);
   }
 
-  protected Representation error(Representation entity, Status status) {
+  protected Representation error(Document doc, Status status) {
     getResponse().setStatus(status);
-    return entity;
+    return toJdomRepresentation(doc);
   }
 
   protected Representation error(final Message m) {
@@ -262,7 +263,7 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
   }
 
   protected Representation error(final Status status) {
-    return error((Representation) null, status);
+    return error(new Message(status), status);
   }
 
   /**
@@ -272,12 +273,12 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
    * @param m - the warning message.
    * @return A Representation of the warning.
    */
-  protected JdomRepresentation warning(final Message m) {
+  protected Representation warning(final Message m) {
     final Document doc = new Document();
     final Element root = generateRootElement();
     root.addContent(m.toElement().setName("Warning"));
     doc.setRootElement(root);
-    return new JdomRepresentation(doc, "  ");
+    return toJdomRepresentation(doc);
   }
 
   protected Representation noWellFormedNess() {
@@ -325,4 +326,22 @@ public abstract class XMLServerResource extends AbstractCaosDBServerResource {
     }
     return root;
   }
+  
+  public Representation toJdomRepresentation(Document doc) {
+    String xsl = getXSLScript();
+    if(xsl!=null) {
+      addStyleSheet(doc, xsl); 
+    }
+    return new JdomRepresentation(doc, "  ");
+      
+  }
+
+  /** adds the xslt processing instruction to the document. */
+  private void addStyleSheet(Document document, String xslPath) {
+    final ProcessingInstruction pi =
+        new ProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"" + xslPath + "\" ");
+    document.getContent().add(0, pi);
+  }
+ 
+ 
 }