</start>
<define name="RSpec">
<element name="RSpec">
+ <attribute name="expires">
+ <data type="NMTOKEN"/>
+ </attribute>
+ <attribute name="generated">
+ <data type="NMTOKEN"/>
+ </attribute>
<attribute name="type">
<data type="NMTOKEN"/>
</attribute>
<data type="NMTOKEN"/>
</attribute>
</optional>
+ <optional>
+ <ref name="sliver_defaults"/>
+ </optional>
<oneOrMore>
- <choice>
- <ref name="site"/>
- <ref name="link"/>
- </choice>
+ <ref name="site"/>
</oneOrMore>
+ <zeroOrMore>
+ <ref name="link"/>
+ </zeroOrMore>
+ </element>
+ </define>
+ <define name="sliver_defaults">
+ <element name="sliver_defaults">
+ <ref name="sliver_elements"/>
</element>
</define>
<define name="site">
<element name="name">
<text/>
</element>
- <oneOrMore>
+ <zeroOrMore>
<ref name="node"/>
- </oneOrMore>
+ </zeroOrMore>
</element>
</define>
<define name="node">
<attribute name="id">
<data type="ID"/>
</attribute>
- <ref name="hostname"/>
- <ref name="kbps"/>
+ <element name="hostname">
+ <text/>
+ </element>
+ <optional>
+ <element name="bw_unallocated">
+ <attribute name="units">
+ <data type="NMTOKEN"/>
+ </attribute>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="bw_limit">
+ <attribute name="units">
+ <data type="NMTOKEN"/>
+ </attribute>
+ <text/>
+ </element>
+ </optional>
<zeroOrMore>
<ref name="sliver"/>
</zeroOrMore>
<text/>
</element>
</optional>
- <optional>
- <ref name="kbps"/>
- </optional>
+ <element name="bw_unallocated">
+ <attribute name="units">
+ <data type="NMTOKEN"/>
+ </attribute>
+ <text/>
+ </element>
<zeroOrMore>
<ref name="vlink"/>
</zeroOrMore>
</define>
<define name="request">
<element name="request">
- <oneOrMore>
- <choice>
- <ref name="sliver"/>
- <ref name="vlink"/>
- </choice>
- </oneOrMore>
+ <attribute name="name">
+ <data type="NMTOKEN"/>
+ </attribute>
+ <optional>
+ <ref name="sliver_defaults"/>
+ </optional>
+ <zeroOrMore>
+ <ref name="sliver"/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name="vlink"/>
+ </zeroOrMore>
</element>
</define>
<define name="sliver">
<data type="ID"/>
</attribute>
</optional>
- <empty/>
+ <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>
<define name="vlink">
<element name="vlink">
<optional>
</element>
</optional>
<optional>
- <ref name="kbps"/>
+ <element name="kbps">
+ <text/>
+ </element>
</optional>
</element>
</define>
- <define name="hostname">
- <element name="hostname">
- <text/>
- </element>
- </define>
- <define name="kbps">
- <element name="kbps">
- <text/>
- </element>
- </define>
</grammar>