summaryrefslogtreecommitdiff
path: root/test/relaxng/comps.rng
diff options
context:
space:
mode:
Diffstat (limited to 'test/relaxng/comps.rng')
-rw-r--r--test/relaxng/comps.rng177
1 files changed, 177 insertions, 0 deletions
diff --git a/test/relaxng/comps.rng b/test/relaxng/comps.rng
new file mode 100644
index 0000000..86172c1
--- /dev/null
+++ b/test/relaxng/comps.rng
@@ -0,0 +1,177 @@
+<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+<start>
+ <ref name="comps"/>
+</start>
+
+<define name="package-name">
+ <text/>
+</define>
+
+<define name="group-name">
+ <text/>
+</define>
+
+<define name="lang">
+ <text/>
+</define>
+
+<define name="description-text">
+ <text/>
+</define>
+
+<define name="comps">
+ <element name="comps">
+ <oneOrMore>
+ <ref name="group"/>
+ </oneOrMore>
+ <ref name="grouphierarchy"/>
+ <oneOrMore>
+ <ref name="package"/>
+ </oneOrMore>
+ </element>
+</define>
+
+<define name="group">
+ <element name="group">
+ <element name="id">
+ <ref name="group-name"/>
+ </element>
+ <interleave>
+ <ref name="names"/>
+ <optional>
+ <element name="default">
+ <choice>
+ <value>true</value>
+ <value>false</value>
+ </choice>
+ </element>
+ </optional>
+ <optional>
+ <ref name="descriptions"/>
+ </optional>
+ <optional>
+ <element name="uservisible">
+ <choice>
+ <value>true</value>
+ <value>false</value>
+ </choice>
+ </element>
+ </optional>
+ <optional>
+ <element name="langonly">
+ <ref name="lang"/>
+ </element>
+ </optional>
+ </interleave>
+ <optional>
+ <element name="grouplist">
+ <zeroOrMore>
+ <element name="groupreq">
+ <ref name="group-name"/>
+ </element>
+ </zeroOrMore>
+ <zeroOrMore>
+ <element name="metapkg">
+ <attribute name="type">
+ <choice>
+ <value>default</value>
+ <!-- <value>mandatory</value> ?? -->
+ <value>optional</value>
+ </choice>
+ </attribute>
+ <ref name="package-name"/>
+ </element>
+ </zeroOrMore>
+ </element>
+ </optional>
+ <optional>
+ <element name="packagelist">
+ <oneOrMore>
+ <element name="packagereq">
+ <attribute name="type">
+ <choice>
+ <value>default</value>
+ <value>mandatory</value>
+ <value>optional</value>
+ </choice>
+ </attribute>
+ <optional>
+ <attribute name="requires">
+ <ref name="package-name"/>
+ </attribute>
+ </optional>
+ <ref name="package-name"/>
+ </element>
+ </oneOrMore>
+ </element>
+ </optional>
+ </element>
+</define>
+
+<define name="grouphierarchy">
+ <element name="grouphierarchy">
+ <oneOrMore>
+ <ref name="category"/>
+ </oneOrMore>
+ </element>
+</define>
+
+<define name="category">
+ <element name="category">
+ <ref name="names"/>
+ <optional>
+ <element name="subcategories">
+ <oneOrMore>
+ <element name="subcategory">
+ <ref name="package-name"/>
+ </element>
+ </oneOrMore>
+ </element>
+ </optional>
+ </element>
+</define>
+
+<define name="package">
+ <element name="package">
+ <element name="name">
+ <ref name="package-name"/>
+ </element>
+ <element name="dependencylist">
+ <zeroOrMore>
+ <element name="dependency">
+ <ref name="package-name"/>
+ </element>
+ </zeroOrMore>
+ </element>
+ </element>
+</define>
+
+<define name="names">
+ <element name="name">
+ <ref name="description-text"/>
+ </element>
+ <zeroOrMore>
+ <element name="name">
+ <attribute name="xml:lang">
+ <ref name="lang"/>
+ </attribute>
+ <ref name="description-text"/>
+ </element>
+ </zeroOrMore>
+</define>
+
+<define name="descriptions">
+ <element name="description">
+ <ref name="description-text"/>
+ </element>
+ <zeroOrMore>
+ <element name="description">
+ <attribute name="xml:lang">
+ <ref name="lang"/>
+ </attribute>
+ <ref name="description-text"/>
+ </element>
+ </zeroOrMore>
+</define>
+
+</grammar>