summaryrefslogtreecommitdiff
blob: 6a885a563b87131d75faeb73bbda4bc715b6fca9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"

include "common.rnc"
body.class = block.class | glepindex
body = element body { body.attlist, body.class* }
project =
  element project {
    project.attlist,
    name,
    longname?,
    date?,
    author*,
    description,
    longdescription,
    goals?,
    recruitment?,
    (dev
     | resource
     | subproject
     | plannedproject
     | extraproject
     | extrachapter
     | herd
     | task
     | author)*
  }
project.attlist &=
  attribute disclaimer { "draft" | "obsolete" }?,
  attribute redirect { text }?
name = element name { name.attlist, text }
name.attlist &= empty
longname = element longname { longname.attlist, text }
longname.attlist &= empty
description = element description { description.attlist, text }
description.attlist &= empty
longdescription =
  element longdescription { longdescription.attlist, body.class* }
longdescription.attlist &= empty
goals = element goals { goals.attlist, body.class* }
goals.attlist &= empty
recruitment = element recruitment { recruitment.attlist, job+ }
recruitment.attlist &= empty
job =
  element job { job.attlist, summary, details, requirements, contact+ }
job.attlist &= empty
details = element details { details.attlist, (text | inline.class)* }
details.attlist &= empty
requirements =
  element requirements { requirements.attlist, (text | inline.class)* }
requirements.attlist &= empty
contact = element contact { contact.attlist, text }
contact.attlist &= empty
dev = element dev { dev.attlist, text }
dev.attlist &=
  [ a:defaultValue = "member" ] attribute role { text }?,
  attribute description { text }?
resource = element resource { resource.attlist, text }
resource.attlist &= attribute link { text }?
subproject = element subproject { subproject.attlist, empty }
subproject.attlist &=
  attribute ref { text },
  [ a:defaultValue = "no" ] attribute inheritmembers { "yes" | "no" }?,
  [ a:defaultValue = "no" ] attribute inheritresources { "yes" | "no" }?
extraproject =
  element extraproject { extraproject.attlist, (text | inline.class)* }
extraproject.attlist &=
  attribute name { text },
  attribute lead { text }?,
  attribute link { text }?
plannedproject =
  element plannedproject {
    plannedproject.attlist, (text | inline.class)*
  }
plannedproject.attlist &= attribute name { text }
extrachapter =
  element extrachapter { extrachapter.attlist, title, section+ }
section = element section { section.attlist, title?, body+ }
extrachapter.attlist &=
  [ a:defaultValue = "bottom" ]
  attribute position {
    "top"
    | "bottom"
    | "subproject"
    | "goals"
    | "resources"
    | "devs"
    | "recruitment"
    | "tasks"
  }?
herd = element herd { herd.attlist, empty }
herd.attlist &= attribute name { text }
# TASK tags declaration
task =
  element task {
    task.attlist,
    name,
    description,
    longdescription?,
    startdate,
    enddate?,
    (reference | milestone | dev | depends)*
  }
task.attlist &=
  attribute id { xsd:ID }?,
  attribute lead { text },
  [ a:defaultValue = "no" ] attribute finished { "yes" | "no" }?
startdate = element startdate { startdate.attlist, text }
startdate.attlist &= empty
enddate = element enddate { enddate.attlist, text }
enddate.attlist &= empty
reference =
  element reference { reference.attlist, (text | bug | mail | uri)* }
reference.attlist &= empty
bug = element bug { bug.attlist, text }
bug.attlist &= attribute no { text }
milestone =
  element milestone { milestone.attlist, enddate, description }
milestone.attlist &=
  [ a:defaultValue = "no" ] attribute finished { "yes" | "no" }?
depends = element depends { depends.attlist, text }
depends.attlist &= attribute ref { xsd:IDREF }
chapter |= notAllowed
start = project | license | values | included | \include | abstract