diff options
Diffstat (limited to 'test/relaxng/comps.rng')
-rw-r--r-- | test/relaxng/comps.rng | 177 |
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> |