source: BOOK/schema/clfs/0.1/rng/clfs.rng @ babec4b

Last change on this file since babec4b was babec4b, checked in by Joe Ciccone <jciccone@…>, 13 years ago

Update the schema and stylesheet to have both a note and a warning box.

  • Property mode set to 100644
File size: 7.5 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<grammar xmlns:c="http://schema.cross-lfs.org/book" xmlns="http://relaxng.org/ns/structure/1.0">
3  <!-- We are building around the DocBook Schema -->
4  <include href="docbook.rng">
5    <define name="sect1">
6      <choice>
7        <element name="sect1">
8          <ref name="sect1.attlist"/>
9          <optional>
10            <ref name="sect1info"/>
11          </optional>
12          <ref name="sect.title.content"/>
13          <zeroOrMore>
14            <ref name="nav.class"/>
15          </zeroOrMore>
16          <choice>
17            <group>
18              <oneOrMore>
19                <ref name="divcomponent.mix"/>
20              </oneOrMore>
21              <choice>
22                <zeroOrMore>
23                  <ref name="refentry.class"/>
24                </zeroOrMore>
25                <zeroOrMore>
26                  <ref name="sect2"/>
27                </zeroOrMore>
28                <zeroOrMore>
29                  <ref name="simplesect"/>
30                </zeroOrMore>
31              </choice>
32            </group>
33            <oneOrMore>
34              <ref name="refentry.class"/>
35            </oneOrMore>
36            <oneOrMore>
37              <ref name="sect2"/>
38            </oneOrMore>
39            <oneOrMore>
40              <ref name="simplesect"/>
41            </oneOrMore>
42          </choice>
43          <zeroOrMore>
44            <ref name="nav.class"/>
45          </zeroOrMore>
46        </element>
47        <ref name="clfs.sect.package"/>
48      </choice>
49    </define>
50  </include>
51  <!-- Extend the standard profiling attributes -->
52  <define name="local.effectivity.attrib" combine="interleave">
53    <ref name="clfs.attrib.arch"/>
54    <ref name="clfs.attrib.bits"/>
55    <ref name="clfs.attrib.multilib"/>
56  </define>
57  <!-- Profiling Attributes -->
58  <define name="clfs.attrib.arch">
59    <optional>
60      <attribute name="c:arch"/>
61    </optional>
62  </define>
63  <define name="clfs.attrib.bits">
64    <optional>
65      <attribute name="c:bits"/>
66    </optional>
67  </define>
68  <define name="clfs.attrib.multilib">
69    <optional>
70      <attribute name="c:multilib">
71        <choice>
72          <value>true</value>
73          <value>false</value>
74        </choice>
75      </attribute>
76    </optional>
77  </define>
78  <!-- Inline Elements -->
79  <define name="clfs.inline">
80    <zeroOrMore>
81      <choice>
82        <ref name="clfs.inline.literal"/>
83        <ref name="clfs.inline.replaceable"/>
84        <ref name="clfs.inline.application"/>
85        <ref name="clfs.inline.dirname"/>
86        <ref name="clfs.inline.filename"/>
87        <ref name="clfs.inline.command"/>
88        <text/>
89      </choice>
90    </zeroOrMore>
91  </define>
92  <define name="clfs.inline.common.attrib">
93    <ref name="clfs.attrib.arch"/>
94    <ref name="clfs.attrib.bits"/>
95    <ref name="clfs.attrib.multilib"/>
96  </define>
97  <define name="clfs.inline.literal">
98    <element name="c:literal">
99      <ref name="clfs.inline.common.attrib"/>
100      <ref name="clfs.inline"/>
101    </element>
102  </define>
103  <define name="clfs.inline.replaceable">
104    <element name="c:replaceable">
105      <ref name="clfs.inline.common.attrib"/>
106      <ref name="clfs.inline"/>
107    </element>
108  </define>
109  <define name="clfs.inline.application">
110    <element name="c:application">
111      <ref name="clfs.inline.common.attrib"/>
112      <ref name="clfs.inline"/>
113    </element>
114  </define>
115  <define name="clfs.inline.dirname">
116    <element name="c:dirname">
117      <ref name="clfs.inline.common.attrib"/>
118      <ref name="clfs.inline"/>
119    </element>
120  </define>
121  <define name="clfs.inline.filename">
122    <element name="c:filename">
123      <ref name="clfs.inline.common.attrib"/>
124      <ref name="clfs.inline"/>
125    </element>
126  </define>
127  <define name="clfs.inline.command">
128    <element name="c:command">
129      <ref name="clfs.inline.common.attrib"/>
130      <ref name="clfs.inline"/>
131    </element>
132  </define>
133  <!-- Block Elements -->
134  <define name="clfs.package.para">
135    <element name="c:para">
136      <ref name="clfs.attrib.arch"/>
137      <ref name="clfs.attrib.bits"/>
138      <ref name="clfs.attrib.multilib"/>
139      <ref name="clfs.inline"/>
140    </element>
141  </define>
142  <define name="clfs.package.note">
143    <element name="c:note">
144      <ref name="clfs.attrib.arch"/>
145      <ref name="clfs.attrib.bits"/>
146      <ref name="clfs.attrib.multilib"/>
147      <zeroOrMore>
148        <choice>
149          <ref name="clfs.package.para"/>
150          <ref name="clfs.package.command"/>
151        </choice>
152      </zeroOrMore>
153    </element>
154  </define>
155  <define name="clfs.package.warning">
156    <element name="c:note">
157      <ref name="clfs.attrib.arch"/>
158      <ref name="clfs.attrib.bits"/>
159      <ref name="clfs.attrib.multilib"/>
160      <zeroOrMore>
161        <choice>
162          <ref name="clfs.package.para"/>
163          <ref name="clfs.package.command"/>
164        </choice>
165      </zeroOrMore>
166    </element>
167  </define>
168  <define name="clfs.package.command">
169    <element name="c:command">
170      <ref name="clfs.attrib.arch"/>
171      <ref name="clfs.attrib.bits"/>
172      <ref name="clfs.attrib.multilib"/>
173      <optional>
174        <attribute name="c:nodump">
175          <choice>
176            <value>true</value>
177            <value>false</value>
178          </choice>
179        </attribute>
180      </optional>
181      <oneOrMore>
182        <choice>
183          <element name="c:literal">
184            <text/>
185          </element>
186          <text/>
187        </choice>
188      </oneOrMore>
189    </element>
190  </define>
191  <!-- The Package -->
192  <define name="clfs.sect.package">
193    <element name="c:package">
194      <attribute name="id"/>
195      <ref name="clfs.attrib.arch"/>
196      <ref name="clfs.attrib.bits"/>
197      <ref name="clfs.attrib.multilib"/>
198      <attribute name="c:multibuild">
199        <choice>
200          <value>true</value>
201          <value>false</value>
202        </choice>
203      </attribute>
204      <element name="c:title">
205        <text/>
206      </element>
207      <element name="c:version">
208        <text/>
209      </element>
210      <element name="c:description">
211        <ref name="clfs.inline"/>
212      </element>
213      <oneOrMore>
214        <element name="c:install">
215          <oneOrMore>
216            <choice>
217              <ref name="clfs.package.para"/>
218              <ref name="clfs.package.command"/>
219              <ref name="clfs.package.note"/>
220              <ref name="clfs.package.warning"/>
221            </choice>
222          </oneOrMore>
223        </element>
224      </oneOrMore>
225      <optional>
226        <element name="c:contents">
227          <choice>
228            <attribute name="c:ref"/>
229            <group>
230              <zeroOrMore>
231                <element name="c:program">
232                  <element name="c:name">
233                    <text/>
234                  </element>
235                  <element name="c:description">
236                    <ref name="clfs.inline"/>
237                  </element>
238                </element>
239              </zeroOrMore>
240              <zeroOrMore>
241                <element name="c:library">
242                  <element name="c:name">
243                    <text/>
244                  </element>
245                  <element name="c:description">
246                    <ref name="clfs.inline"/>
247                  </element>
248                </element>
249              </zeroOrMore>
250              <zeroOrMore>
251                <element name="c:directory">
252                  <element name="c:name">
253                    <text/>
254                  </element>
255                  <element name="c:description">
256                    <ref name="clfs.inline"/>
257                  </element>
258                </element>
259              </zeroOrMore>
260            </group>
261          </choice>
262        </element>
263      </optional>
264    </element>
265  </define>
266</grammar>
Note: See TracBrowser for help on using the repository browser.