diff --git a/XSDVisualiser.Core/XSDVisualiser.Core.csproj b/XSDVisualiser.Core/XSDVisualiser.Core.csproj
new file mode 100644
index 0000000..180cfa3
--- /dev/null
+++ b/XSDVisualiser.Core/XSDVisualiser.Core.csproj
@@ -0,0 +1,12 @@
+
+
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/XSDVisualiser.Desktop/App.axaml b/XSDVisualiser.Desktop/App.axaml
new file mode 100644
index 0000000..610db54
--- /dev/null
+++ b/XSDVisualiser.Desktop/App.axaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/XSDVisualiser.Desktop/App.axaml.cs b/XSDVisualiser.Desktop/App.axaml.cs
new file mode 100644
index 0000000..be0ef03
--- /dev/null
+++ b/XSDVisualiser.Desktop/App.axaml.cs
@@ -0,0 +1,23 @@
+using Avalonia;
+using Avalonia.Controls.ApplicationLifetimes;
+using Avalonia.Markup.Xaml;
+
+namespace XSDVisualiser.Desktop
+{
+ public partial class App : Application
+ {
+ public override void Initialize()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+
+ public override void OnFrameworkInitializationCompleted()
+ {
+ if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
+ {
+ desktop.MainWindow = new MainWindow();
+ }
+ base.OnFrameworkInitializationCompleted();
+ }
+ }
+}
diff --git a/XSDVisualiser.Desktop/MainWindow.axaml b/XSDVisualiser.Desktop/MainWindow.axaml
new file mode 100644
index 0000000..9acbc8e
--- /dev/null
+++ b/XSDVisualiser.Desktop/MainWindow.axaml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/XSDVisualiser.Desktop/MainWindow.axaml.cs b/XSDVisualiser.Desktop/MainWindow.axaml.cs
new file mode 100644
index 0000000..50f86e3
--- /dev/null
+++ b/XSDVisualiser.Desktop/MainWindow.axaml.cs
@@ -0,0 +1,58 @@
+using System;
+using System.Linq;
+using System.Threading.Tasks;
+using Avalonia.Controls;
+using Avalonia.Interactivity;
+using Avalonia.Threading;
+using XSDVisualiser.Parsing;
+using XSDVisualiser.Utils;
+
+namespace XSDVisualiser.Desktop
+{
+ public partial class MainWindow : Window
+ {
+ private Button _openBtn = null!;
+ private TextBox _output = null!;
+
+ public MainWindow()
+ {
+ InitializeComponent();
+ _openBtn = this.FindControl