diff --git a/pom.xml b/pom.xml
index 2b9412c35866a10aa29d27c6cbf60fa2171344f9..5fca367e32261284719852fa937daa5ad33a9654 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,5 +33,31 @@
 			<version>5.5.2</version>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+          <groupId>javax.xml.bind</groupId>
+          <artifactId>jaxb-api</artifactId>
+          <version>2.3.0</version>
+        </dependency>
+        <dependency>
+          <groupId>com.sun.xml.bind</groupId>
+          <artifactId>jaxb-core</artifactId>
+          <version>3.0.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.xml.bind</groupId>
+            <artifactId>jaxb-impl</artifactId>
+            <version>3.0.2</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/javax.activation/activation -->
+        <dependency>
+            <groupId>javax.activation</groupId>
+            <artifactId>activation</artifactId>
+            <version>1.1.1</version>
+        </dependency>
+        <dependency>
+            <groupId>jakarta.xml.bind</groupId>
+            <artifactId>jakarta.xml.bind-api</artifactId>
+            <version>3.0.1</version>
+        </dependency>
 	</dependencies>
 </project>
diff --git a/src/main/java/cz/jezek/lab11/StreamMain.java b/src/main/java/cz/jezek/lab11/StreamMain.java
index 4eb29ae114e3b2028807f29323aa34070721c460..03bae2f6e4ce81bf1dc9ccb3761cd4e6bbb8ea92 100644
--- a/src/main/java/cz/jezek/lab11/StreamMain.java
+++ b/src/main/java/cz/jezek/lab11/StreamMain.java
@@ -1,19 +1,24 @@
 package cz.jezek.lab11;
 
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
+import java.io.OutputStream;
 import java.util.Comparator;
 import java.util.stream.Collectors;
 
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.JAXBException;
+import jakarta.xml.bind.Marshaller;
+
 public class StreamMain {
 
   public static void main(String[] args) {
-    Tournament tournament = loadTournament();
+    Tournament tournament = Tournament.generate();
 
-    printStatAboutTournament(tournament);
+    //printStatAboutTournament(tournament);
 
     saveTournament(tournament);
   }
@@ -72,9 +77,19 @@ public class StreamMain {
   }
 
   public static void saveTournament(Tournament tournament) {
-    try(ObjectOutputStream oos  = new ObjectOutputStream(new FileOutputStream("data.obj"))) {
-    	oos.writeObject(tournament);
+	  
+    try (OutputStream os = new FileOutputStream("tournament.xml")) {
+    	JAXBContext context = JAXBContext.newInstance(Tournament.class);
+    	Marshaller marshaller = context.createMarshaller();
+    	marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+    	marshaller.marshal(tournament, System.out);
+    	marshaller.marshal(tournament, os);
+    } catch (JAXBException exc) {
+    	exc.printStackTrace();
+    } catch (FileNotFoundException e) {
+		e.printStackTrace();
 	} catch (IOException e) {
+		// TODO Auto-generated catch block
 		e.printStackTrace();
 	}
   }
diff --git a/src/main/java/cz/jezek/lab11/Tournament.java b/src/main/java/cz/jezek/lab11/Tournament.java
index 7831cdc0f3886306cf03b997d1c8426fc38c6999..90193bb67e3fb5eabddc5fabdf2aee1e60e07dc2 100644
--- a/src/main/java/cz/jezek/lab11/Tournament.java
+++ b/src/main/java/cz/jezek/lab11/Tournament.java
@@ -8,12 +8,27 @@ import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import jakarta.xml.bind.annotation.XmlAttribute;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
 public class Tournament implements Serializable{
 
   private static final long serialVersionUID = 1L;
  
+  @XmlElement(name = "player")
+  @XmlElementWrapper(name = "players")
   private List<Player> players;
+  
+  @XmlElement(name = "match")
+  @XmlElementWrapper(name = "matches")
+  
   private List<Match> matches;
+  
+  @XmlAttribute
+  private String name = "turnaj";
 
   public static Tournament generate() {
 	// TODO 1.a Generate a list of 10 random players using the stream and then filter so that it does not contain players with the same name
@@ -33,6 +48,9 @@ public class Tournament implements Serializable{
     return new Tournament(players, matches);
   }
 
+  public Tournament() {
+  }
+  
   public Tournament(List<Player> players, List<Match> matches) {
     this.players = players;
     this.matches = matches;
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 35757404f5d12da2642d679d3eb1b4ce681e75da..3a33b2a7ccd55e8ff9021d78608ff599e3920176 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -1,4 +1,6 @@
 module cz.jezek.lab10 {
-    opens cz.jezek.lab11 to javafx.fxml;
+    opens cz.jezek.lab11 to javafx.fxml, jakarta.xml.bind;
     exports cz.jezek.lab11;
+    requires java.xml;
+    requires jakarta.xml.bind;
 }
\ No newline at end of file
diff --git a/tournament.xml b/tournament.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e464fcf355af5ee1a21f8865ad47ec0601925d16
--- /dev/null
+++ b/tournament.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<tournament name="turnaj">
+    <players>
+        <player>
+            <firstName>Ilse</firstName>
+            <lastName>Ĺ ĹĄastnĂ˝</lastName>
+        </player>
+        <player>
+            <firstName>Otakar</firstName>
+            <lastName>Hájek</lastName>
+        </player>
+        <player>
+            <firstName>Ivona</firstName>
+            <lastName>KratochvĂ­l</lastName>
+        </player>
+        <player>
+            <firstName>Marika</firstName>
+            <lastName>Zeman</lastName>
+        </player>
+        <player>
+            <firstName>ÄŚestmĂ­r</firstName>
+            <lastName>Navrátil</lastName>
+        </player>
+        <player>
+            <firstName>Samantha</firstName>
+            <lastName>Dušek</lastName>
+        </player>
+        <player>
+            <firstName>Rajmund</firstName>
+            <lastName>TichĂ˝</lastName>
+        </player>
+        <player>
+            <firstName>Ladislava</firstName>
+            <lastName>KopeckĂ˝</lastName>
+        </player>
+        <player>
+            <firstName>Johanka</firstName>
+            <lastName>Navrátil</lastName>
+        </player>
+        <player>
+            <firstName>Ĺ tefana</firstName>
+            <lastName>Ĺ imek</lastName>
+        </player>
+    </players>
+</tournament>