1 <grammar xmlns="http://relaxng.org/ns/structure/1.0"> 2 <start> 3 <ref name="comps"/> 4 </start> 5 6 <define name="package-name"> 7 <text/> 8 </define> 9 10 <define name="group-name"> 11 <text/> 12 </define> 13 14 <define name="lang"> 15 <text/> 16 </define> 17 18 <define name="description-text"> 19 <text/> 20 </define> 21 22 <define name="comps"> 23 <element name="comps"> 24 <oneOrMore> 25 <ref name="group"/> 26 </oneOrMore> 27 <ref name="grouphierarchy"/> 28 <oneOrMore> 29 <ref name="package"/> 30 </oneOrMore> 31 </element> 32 </define> 33 34 <define name="group"> 35 <element name="group"> 36 <element name="id"> 37 <ref name="group-name"/> 38 </element> 39 <interleave> 40 <ref name="names"/> 41 <optional> 42 <element name="default"> 43 <choice> 44 <value>true</value> 45 <value>false</value> 46 </choice> 47 </element> 48 </optional> 49 <optional> 50 <ref name="descriptions"/> 51 </optional> 52 <optional> 53 <element name="uservisible"> 54 <choice> 55 <value>true</value> 56 <value>false</value> 57 </choice> 58 </element> 59 </optional> 60 <optional> 61 <element name="langonly"> 62 <ref name="lang"/> 63 </element> 64 </optional> 65 </interleave> 66 <optional> 67 <element name="grouplist"> 68 <zeroOrMore> 69 <element name="groupreq"> 70 <ref name="group-name"/> 71 </element> 72 </zeroOrMore> 73 <zeroOrMore> 74 <element name="metapkg"> 75 <attribute name="type"> 76 <choice> 77 <value>default</value> 78 <!-- <value>mandatory</value> ?? --> 79 <value>optional</value> 80 </choice> 81 </attribute> 82 <ref name="package-name"/> 83 </element> 84 </zeroOrMore> 85 </element> 86 </optional> 87 <optional> 88 <element name="packagelist"> 89 <oneOrMore> 90 <element name="packagereq"> 91 <attribute name="type"> 92 <choice> 93 <value>default</value> 94 <value>mandatory</value> 95 <value>optional</value> 96 </choice> 97 </attribute> 98 <optional> 99 <attribute name="requires"> 100 <ref name="package-name"/> 101 </attribute> 102 </optional> 103 <ref name="package-name"/> 104 </element> 105 </oneOrMore> 106 </element> 107 </optional> 108 </element> 109 </define> 110 111 <define name="grouphierarchy"> 112 <element name="grouphierarchy"> 113 <oneOrMore> 114 <ref name="category"/> 115 </oneOrMore> 116 </element> 117 </define> 118 119 <define name="category"> 120 <element name="category"> 121 <ref name="names"/> 122 <optional> 123 <element name="subcategories"> 124 <oneOrMore> 125 <element name="subcategory"> 126 <ref name="package-name"/> 127 </element> 128 </oneOrMore> 129 </element> 130 </optional> 131 </element> 132 </define> 133 134 <define name="package"> 135 <element name="package"> 136 <element name="name"> 137 <ref name="package-name"/> 138 </element> 139 <element name="dependencylist"> 140 <zeroOrMore> 141 <element name="dependency"> 142 <ref name="package-name"/> 143 </element> 144 </zeroOrMore> 145 </element> 146 </element> 147 </define> 148 149 <define name="names"> 150 <element name="name"> 151 <ref name="description-text"/> 152 </element> 153 <zeroOrMore> 154 <element name="name"> 155 <attribute name="xml:lang"> 156 <ref name="lang"/> 157 </attribute> 158 <ref name="description-text"/> 159 </element> 160 </zeroOrMore> 161 </define> 162 163 <define name="descriptions"> 164 <element name="description"> 165 <ref name="description-text"/> 166 </element> 167 <zeroOrMore> 168 <element name="description"> 169 <attribute name="xml:lang"> 170 <ref name="lang"/> 171 </attribute> 172 <ref name="description-text"/> 173 </element> 174 </zeroOrMore> 175 </define> 176 177 </grammar> 178