--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <start>
+ <ref name="RSpec"/>
+ </start>
+ <define name="RSpec">
+ <element name="RSpec">
+ <attribute name="type">
+ <data type="NMTOKEN"/>
+ </attribute>
+ <choice>
+ <ref name="network"/>
+ <ref name="request"/>
+ </choice>
+ </element>
+ </define>
+ <define name="network">
+ <element name="network">
+ <attribute name="name">
+ <data type="NMTOKEN"/>
+ </attribute>
+ <optional>
+ <attribute name="slice">
+ <data type="NMTOKEN"/>
+ </attribute>
+ </optional>
+ <optional>
+ <ref name="sliver_defaults"/>
+ </optional>
+ <oneOrMore>
+ <ref name="site"/>
+ </oneOrMore>
+ </element>
+ </define>
+ <define name="sliver_defaults">
+ <element name="sliver_defaults">
+ <ref name="sliver_elements"/>
+ </element>
+ </define>
+ <define name="site">
+ <element name="site">
+ <attribute name="id">
+ <data type="ID"/>
+ </attribute>
+ <element name="name">
+ <text/>
+ </element>
+ <zeroOrMore>
+ <ref name="node"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="node">
+ <element name="node">
+ <attribute name="id">
+ <data type="ID"/>
+ </attribute>
+ <element name="hostname">
+ <text/>
+ </element>
+ <optional>
+ <element name="bw_limit">
+ <attribute name="units">
+ <data type="NMTOKEN"/>
+ </attribute>
+ <text/>
+ </element>
+ </optional>
+ <zeroOrMore>
+ <ref name="sliver"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="request">
+ <element name="request">
+ <oneOrMore>
+ <ref name="sliver"/>
+ </oneOrMore>
+ </element>
+ </define>
+ <define name="sliver">
+ <element name="sliver">
+ <optional>
+ <attribute name="nodeid">
+ <data type="ID"/>
+ </attribute>
+ </optional>
+ <ref name="sliver_elements"/>
+ </element>
+ </define>
+ <define name="sliver_elements">
+ <interleave>
+ <optional>
+ <element name="capabilities">
+ <text/>
+ </element>
+ </optional>
+ <zeroOrMore>
+ <element name="codemux">
+ <text/>
+ </element>
+ </zeroOrMore>
+ <optional>
+ <element name="cpu_pct">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="cpu_share">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="delegations">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="disk_max">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="initscript">
+ <text/>
+ </element>
+ </optional>
+ <zeroOrMore>
+ <element name="ip_addresses">
+ <text/>
+ </element>
+ </zeroOrMore>
+ <optional>
+ <element name="net_i2_max_kbyte">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="net_i2_max_rate">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="net_i2_min_rate">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="net_i2_share">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="net_i2_thresh_kbyte">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="net_max_kbyte">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="net_max_rate">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="net_min_rate">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="net_share">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="net_thresh_kbyte">
+ <text/>
+ </element>
+ </optional>
+ <zeroOrMore>
+ <element name="vsys">
+ <text/>
+ </element>
+ </zeroOrMore>
+ <optional>
+ <element name="vsys_vnet">
+ <text/>
+ </element>
+ </optional>
+ </interleave>
+ </define>
+</grammar>