diff --git a/src/main/java/org/olat/core/commons/editor/fileeditor/FileEditor.java b/src/main/java/org/olat/core/commons/editor/fileeditor/FileEditor.java
index d6f631e49ea5613e8cd205167725f1ee01463726..813c7b6b51bc5525cfd3465887685e7e3d87d6ed 100644
--- a/src/main/java/org/olat/core/commons/editor/fileeditor/FileEditor.java
+++ b/src/main/java/org/olat/core/commons/editor/fileeditor/FileEditor.java
@@ -50,7 +50,7 @@ import org.springframework.stereotype.Service;
 public class FileEditor implements DocEditor {
 	
 	private static final List<String> HTML_EDITOR_SUFFIX = Arrays.asList("html", "htm");
-	private static final List<String> TEXT_EDITOR_SUFFIX = Arrays.asList("txt", "css", "csv");
+	private static final List<String> TEXT_EDITOR_SUFFIX = Arrays.asList("txt", "css", "csv", "xml");
 	
 	@Autowired
 	private VFSLockManager lockManager;
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/ContentProviderFactory.java b/src/main/java/org/olat/core/commons/services/doceditor/ContentProviderFactory.java
index cbb528405f9652266bb65a9bf3d4ff0f4aeb7d1d..64206967b4fcb9853ed2ce9c123d841414994236 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/ContentProviderFactory.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/ContentProviderFactory.java
@@ -26,6 +26,7 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
 import java.util.Locale;
 import java.util.zip.ZipOutputStream;
 
@@ -46,6 +47,7 @@ public class ContentProviderFactory {
 	private static final Logger log = Tracing.createLoggerFor(ContentProviderFactory.class);
 	
 	private static final ContentProvider EMPTY = new EmptyContentProvider();
+	private static final ContentProvider XML = new XmlContentProvider();
 	private static final ContentProvider DOCX = new DocxContentProvider();
 	private static final ContentProvider XLSX = new XlsxContentProvider();
 	private static final ContentProvider PPTX = new PptxContentProvider();
@@ -54,6 +56,11 @@ public class ContentProviderFactory {
 		return EMPTY;
 	}
 	
+	public static ContentProvider emptyXml() {
+		return XML;
+	}
+	
+	
 	public static ContentProvider emptyDocx() {
 		return DOCX;
 	}
@@ -76,6 +83,16 @@ public class ContentProviderFactory {
 		}
 	}
 	
+	private static final class XmlContentProvider implements ContentProvider {
+
+		private static final String XML_CONTENT = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
+		
+		@Override
+		public InputStream getContent(Locale locale) {
+			return new ByteArrayInputStream(XML_CONTENT.getBytes(StandardCharsets.UTF_8));
+		}
+	}
+	
 	private static final class DocxContentProvider implements ContentProvider {
 
 		@Override
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/DocTemplates.java b/src/main/java/org/olat/core/commons/services/doceditor/DocTemplates.java
index 72f953243ad7e010b26c71d7c232fda4552669f0..a362ee18e7a823f0b8eec33197d1681f5a844a16 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/DocTemplates.java
+++ b/src/main/java/org/olat/core/commons/services/doceditor/DocTemplates.java
@@ -23,6 +23,7 @@ import static org.olat.core.commons.services.doceditor.ContentProviderFactory.em
 import static org.olat.core.commons.services.doceditor.ContentProviderFactory.emptyDocx;
 import static org.olat.core.commons.services.doceditor.ContentProviderFactory.emptyPptx;
 import static org.olat.core.commons.services.doceditor.ContentProviderFactory.emptyXlsx;
+import static org.olat.core.commons.services.doceditor.ContentProviderFactory.emptyXml;
 import static org.olat.core.commons.services.doceditor.DocEditor.Mode.EDIT;
 
 import java.util.ArrayList;
@@ -72,6 +73,9 @@ public class DocTemplates {
 		if (docEditorService.hasEditor(identity, roles, "css", EDIT, hasMeta)) {
 			builder.addCss();
 		}
+		if (docEditorService.hasEditor(identity, roles, "xml", EDIT, hasMeta)) {
+			builder.addXml();
+		}
 		if (docEditorService.hasEditor(identity, roles, "docx", EDIT, hasMeta)) {
 			builder.addDocx();
 		}
@@ -97,23 +101,28 @@ public class DocTemplates {
 			this.translator = Util.createPackageTranslator(CreateDocumentController.class, locale);
 		}
 		
-		public Builder addCss() {
-			docTemplates.add(DocTemplate.of("css", translate("doc.type.css"), empty()));
+		public Builder addTxt() {
+			docTemplates.add(DocTemplate.of("txt", translate("doc.type.txt"), empty()));
 			return this;
 		}
 		
-		public Builder addDocx() {
-			docTemplates.add(DocTemplate.of("docx", translate("doc.type.docx"), emptyDocx()));
+		public Builder addHtml() {
+			docTemplates.add(DocTemplate.of("html", translate("doc.type.html"), empty()));
 			return this;
 		}
 		
-		public Builder addHtml() {
-			docTemplates.add(DocTemplate.of("html", translate("doc.type.html"), empty()));
+		public Builder addCss() {
+			docTemplates.add(DocTemplate.of("css", translate("doc.type.css"), empty()));
 			return this;
 		}
 		
-		public Builder addTxt() {
-			docTemplates.add(DocTemplate.of("txt", translate("doc.type.txt"), empty()));
+		public Builder addXml() {
+			docTemplates.add(DocTemplate.of("xml", translate("doc.type.xml"), emptyXml()));
+			return this;
+		}
+		
+		public Builder addDocx() {
+			docTemplates.add(DocTemplate.of("docx", translate("doc.type.docx"), emptyDocx()));
 			return this;
 		}
 		
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_de.properties
index 9a92ceadc8e477901704a85a77e39bbc30e37777..6266a1c4b6b85204c00a715b43b8338285566a9c 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_de.properties
@@ -23,4 +23,5 @@ doc.type.html=HTML-Dokument
 doc.type.pptx=PowerPoint
 doc.type.txt=Text
 doc.type.xlsx=Excel
+doc.type.xml=Extensible Markup Language
 error.no.editor=Die Datei kann nicht angezeigt werden.
diff --git a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_en.properties
index e990e2515e4fa9dccdf25be0f4697d8d9bb5fe30..b18ca53a4bf51cf1c800e857cc99374dd378cfa0 100644
--- a/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/core/commons/services/doceditor/ui/_i18n/LocalStrings_en.properties
@@ -23,4 +23,5 @@ doc.type.html=HTML Document
 doc.type.pptx=PowerPoint
 doc.type.txt=Text
 doc.type.xlsx=Excel
+doc.type.xml=Extensible Markup Language
 error.no.editor=The content of the document cannot be displayed.