| <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> |