diff --git a/docs/schemas/interface.rng b/docs/schemas/interface.rng
new file mode 100644
index 0000000..bed2f0a
--- /dev/null
+++ b/docs/schemas/interface.rng
@@ -0,0 +1,385 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ethernet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ vlan
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bridge
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bond
+
+
+
+
+
+
+
+
+
+ balance-rr
+
+ active-backup
+ balance-xor
+ broadcast
+ 802.3ad
+ balance-tlb
+ balance-alb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ioctl
+
+ netif
+
+
+
+
+
+
+
+
+
+
+ none
+ active
+ backup
+ all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ onboot
+ none
+ hotplug
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ipv4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ on
+ off
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+ [0-9]+
+
+
+
+
+
+ [a-zA-Z0-9_\.\-:/]+
+
+
+
+
+
+
+ [a-fA-F0-9]{32}
+
+
+ [a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}
+
+
+
+
+
+
+ ([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}
+
+
+
+
+
+ ([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9]
+
+
+
+
+
+ [1-9]|[12][0-9]|3[0-2]
+
+
+
+
+
+ 4096
+
+
+
diff --git a/tests/interfaceschemadata/bond-arp.xml b/tests/interfaceschemadata/bond-arp.xml
new file mode 100644
index 0000000..7b4ed6f
--- /dev/null
+++ b/tests/interfaceschemadata/bond-arp.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/interfaceschemadata/bond.xml b/tests/interfaceschemadata/bond.xml
new file mode 100644
index 0000000..81b92e3
--- /dev/null
+++ b/tests/interfaceschemadata/bond.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/interfaceschemadata/bridge-no-address.xml b/tests/interfaceschemadata/bridge-no-address.xml
new file mode 100644
index 0000000..cddafb1
--- /dev/null
+++ b/tests/interfaceschemadata/bridge-no-address.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/interfaceschemadata/bridge-vlan.xml b/tests/interfaceschemadata/bridge-vlan.xml
new file mode 100644
index 0000000..77f992d
--- /dev/null
+++ b/tests/interfaceschemadata/bridge-vlan.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/interfaceschemadata/bridge.xml b/tests/interfaceschemadata/bridge.xml
new file mode 100644
index 0000000..1f17114
--- /dev/null
+++ b/tests/interfaceschemadata/bridge.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/interfaceschemadata/bridge42.xml b/tests/interfaceschemadata/bridge42.xml
new file mode 100644
index 0000000..c6639ab
--- /dev/null
+++ b/tests/interfaceschemadata/bridge42.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/tests/interfaceschemadata/ethernet-dhcp.xml b/tests/interfaceschemadata/ethernet-dhcp.xml
new file mode 100644
index 0000000..fe969df
--- /dev/null
+++ b/tests/interfaceschemadata/ethernet-dhcp.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/tests/interfaceschemadata/ethernet-static-no-prefix.xml b/tests/interfaceschemadata/ethernet-static-no-prefix.xml
new file mode 100644
index 0000000..891f9fe
--- /dev/null
+++ b/tests/interfaceschemadata/ethernet-static-no-prefix.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/tests/interfaceschemadata/ethernet-static.xml b/tests/interfaceschemadata/ethernet-static.xml
new file mode 100644
index 0000000..2c50e44
--- /dev/null
+++ b/tests/interfaceschemadata/ethernet-static.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/tests/interfaceschemadata/vlan.xml b/tests/interfaceschemadata/vlan.xml
new file mode 100644
index 0000000..a9570e3
--- /dev/null
+++ b/tests/interfaceschemadata/vlan.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+