diff --git a/doc/publican/Message_XML.xml b/doc/publican/Message_XML.xml
new file mode 100644
index 00000000..0188eead
--- /dev/null
+++ b/doc/publican/Message_XML.xml
@@ -0,0 +1,928 @@
+
+
+%BOOK_ENTITIES;
+
+protocol">
+copyright">
+description">
+interface">
+enum">
+entry">
+request">
+event">
+arg">
+
+
+
+]>
+
+
+ Message Definition Language
+
+
+ Overview
+
+
+ The fundamentals of the Wayland protocol are explained in
+ . This chapter formally defines the
+ language used to define Wayland protocols.
+
+
+ Wayland is an object-oriented protocol. Each object follows exactly
+ one interface. An interface is a collection of message and enumeration
+ definitions. A message can be either a request (sent by a client)
+ or an event (sent by a server). A message can have arguments.
+ All arguments are typed.
+
+
+
+
+
diff --git a/doc/publican/Wayland.xml b/doc/publican/Wayland.xml
index f02a97fc..049a35f9 100644
--- a/doc/publican/Wayland.xml
+++ b/doc/publican/Wayland.xml
@@ -10,6 +10,7 @@
+
diff --git a/doc/publican/meson.build b/doc/publican/meson.build
index fb730f5f..2cb95b96 100644
--- a/doc/publican/meson.build
+++ b/doc/publican/meson.build
@@ -19,6 +19,7 @@ foreach src : files([
'Color.xml',
'Client.xml',
'Server.xml',
+ 'Message_XML.xml',
])
name = fs.name(src)
publican_inputs += fs.copyfile(name)