complete most xml relax ng work. work on real interface xml work on python scripts for parsing interface xml
150 lines
3.0 KiB
XML
150 lines
3.0 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
|
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
|
|
<start>
|
|
<element name="install">
|
|
<ref name="serial-number"/>
|
|
<ref name="partitions"/>
|
|
<ref name="raids"/>
|
|
<ref name="mount-points"/>
|
|
<ref name="network"/>
|
|
<ref name="services"/>
|
|
<ref name="groups"/>
|
|
</element>
|
|
</start>
|
|
|
|
<define name="serial-number">
|
|
<element name="serial-number">
|
|
<text/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="partitions">
|
|
<oneOrMore>
|
|
<element name="partition">
|
|
<attribute name="device"/>
|
|
<attribute name="boot">
|
|
<ref name="mybool"/>
|
|
</attribute>
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>primary</value>
|
|
<value>extended</value>
|
|
<value>logic</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name="id"/>
|
|
<attribute name="size"/>
|
|
</element>
|
|
</oneOrMore>
|
|
</define>
|
|
|
|
<define name="raids">
|
|
<zeroOrMore>
|
|
<element name="raid">
|
|
<attribute name="raid-device"/>
|
|
<attribute name="raid-type">
|
|
<choice>
|
|
<value>RAID0</value>
|
|
<value>RAID1</value>
|
|
<value>RAID5</value>
|
|
</choice>
|
|
</attribute>
|
|
<oneOrMore>
|
|
<element name="raw-device">
|
|
<text/>
|
|
</element>
|
|
</oneOrMore>
|
|
</element>
|
|
</zeroOrMore>
|
|
</define>
|
|
|
|
<define name="mount-points">
|
|
<oneOrMore>
|
|
<element name="mount-point">
|
|
<attribute name="device"/>
|
|
<attribute name="directory"/>
|
|
<attribute name="file-system"/>
|
|
</element>
|
|
</oneOrMore>
|
|
</define>
|
|
|
|
<define name="network">
|
|
<element name="network">
|
|
<attribute name="hostname"/>
|
|
<attribute name="configuration">
|
|
<choice>
|
|
<value>dynamic</value>
|
|
<value>static</value>
|
|
</choice>
|
|
</attribute>
|
|
<optional>
|
|
<group>
|
|
<attribute name="ip"/>
|
|
<attribute name="mask"/>
|
|
<attribute name="gateway"/>
|
|
<attribute name="primary_dns"/>
|
|
<attribute name="secondary_dns"/>
|
|
<attribute name="domain"/>
|
|
</group>
|
|
</optional>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="services">
|
|
<zeroOrMore>
|
|
<element name="service">
|
|
<attribute name="name"/>
|
|
<attribute name="start">
|
|
<ref name="mybool"/>
|
|
</attribute>
|
|
</element>
|
|
</zeroOrMore>
|
|
</define>
|
|
|
|
<define name="groups">
|
|
<oneOrMore>
|
|
<element name="group">
|
|
<attribute name="name"/>
|
|
<attribute name="install">
|
|
<ref name="mybool"/>
|
|
</attribute>
|
|
<optional>
|
|
<ref name="description"/>
|
|
</optional>
|
|
<oneOrMore>
|
|
<ref name="including"/>
|
|
</oneOrMore>
|
|
</element>
|
|
</oneOrMore>
|
|
</define>
|
|
|
|
<define name="description">
|
|
<element name="description">
|
|
<text/>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="including">
|
|
<element name="including">
|
|
<attribute name="package"/>
|
|
<attribute name="type">
|
|
<choice>
|
|
<value>mandatory</value>
|
|
<value>optional</value>
|
|
</choice>
|
|
</attribute>
|
|
<attribute name="install">
|
|
<ref name="mybool"/>
|
|
</attribute>
|
|
</element>
|
|
</define>
|
|
|
|
<define name="mybool">
|
|
<choice>
|
|
<value>yes</value>
|
|
<value>no</value>
|
|
</choice>
|
|
</define>
|
|
</grammar>
|