source: BOOK/schema/clfs/0.1/rng/clfs.rnc@ f59c2ec

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

Expand the filtering ability of the schema to match the stylesheet.

  • Property mode set to 100644
File size: 3.1 KB
Line 
1
2namespace c = "http://schema.cross-lfs.org/book"
3
4# We are building around the DocBook Schema
5include "../../../docbook/4.5/rng/docbook.rnc" {
6 sect1 = (
7 element sect1 {
8 sect1.attlist,
9 sect1info?,
10 sect.title.content,
11 nav.class*,
12 ((divcomponent.mix+, (refentry.class* | sect2* | simplesect*))
13 | refentry.class+
14 | sect2+
15 | simplesect+),
16 nav.class*
17 } | clfs.sect.package )
18}
19
20# Extend the standard profiling attributes
21local.effectivity.attrib &=
22 clfs.attrib.arch,
23 clfs.attrib.bits,
24 clfs.attrib.multilib
25
26# Profiling Attributes
27clfs.attrib.arch = attribute c:arch { text }?
28clfs.attrib.bits = attribute c:bits { text }?
29clfs.attrib.multilib = attribute c:multilib { "true" | "false" }?
30
31# Inline Elements
32
33clfs.inline =
34 (clfs.inline.literal |
35 clfs.inline.replaceable |
36 clfs.inline.application |
37 clfs.inline.dirname |
38 clfs.inline.filename |
39 clfs.inline.command |
40 text)*
41
42clfs.inline.common.attrib =
43 clfs.attrib.arch,
44 clfs.attrib.bits,
45 clfs.attrib.multilib
46
47clfs.inline.literal =
48 element c:literal {
49 clfs.inline.common.attrib,
50 clfs.inline
51 }
52clfs.inline.replaceable =
53 element c:replaceable {
54 clfs.inline.common.attrib,
55 clfs.inline
56 }
57clfs.inline.application =
58 element c:application {
59 clfs.inline.common.attrib,
60 clfs.inline
61 }
62clfs.inline.dirname =
63 element c:dirname {
64 clfs.inline.common.attrib,
65 clfs.inline
66 }
67clfs.inline.filename =
68 element c:filename {
69 clfs.inline.common.attrib,
70 clfs.inline
71 }
72clfs.inline.command =
73 element c:command {
74 clfs.inline.common.attrib,
75 clfs.inline
76 }
77
78# Block Elements
79
80clfs.package.para =
81 element c:para {
82 clfs.attrib.arch,
83 clfs.attrib.bits,
84 clfs.attrib.multilib,
85 clfs.inline
86 }
87
88clfs.package.note =
89 element c:note {
90 clfs.attrib.arch,
91 clfs.attrib.bits,
92 clfs.attrib.multilib,
93 clfs.package.para*
94 }
95
96clfs.package.command =
97 element c:command {
98 clfs.attrib.arch,
99 clfs.attrib.bits,
100 clfs.attrib.multilib,
101 attribute c:nodump {
102 "true" | "false"
103 }?,
104 (element c:literal { text } | text)+
105 }
106
107# The Package
108clfs.sect.package =
109 element c:package {
110 attribute id { text },
111 clfs.attrib.arch,
112 clfs.attrib.bits,
113 clfs.attrib.multilib,
114 attribute c:multibuild {
115 "true" | "false"
116 },
117
118 element c:title { text },
119 element c:version { text },
120 element c:description { clfs.inline },
121
122 element c:install {
123 (clfs.package.para |
124 clfs.package.command |
125 clfs.package.note)+
126 }+,
127
128 element c:contents {
129 attribute c:ref {
130 text
131 } | (
132 element c:program {
133 element c:name {
134 text
135 },
136 element c:description {
137 clfs.inline
138 }
139 }*,
140 element c:library {
141 element c:name {
142 text
143 },
144 element c:description {
145 clfs.inline
146 }
147 }*,
148 element c:directory {
149 element c:name {
150 text
151 },
152 element c:description {
153 clfs.inline
154 }
155 }*
156 )
157 }?
158 }
Note: See TracBrowser for help on using the repository browser.