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
|
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
projects = element projects { attlist.projects, project* }
attlist.projects &= empty
# A project (identified by email address)
project =
element project {
attlist.project, email, name, url, description, subproject*, member*
}
attlist.project &= empty
# Contact e-mail address of a project or a project member
email = element email { attlist.email, text }
attlist.email &= empty
# Name of a project or a project member
name = element name { attlist.name, text }
attlist.name &= empty
# URL of the project homepage
url = element url { attlist.url, text }
attlist.url &= empty
# Description of the project
description = element description { attlist.description, text }
attlist.description &= empty
# Project member
member = element member { attlist.member, email, name, role }
# is-lead="1" indicates that the member is the project's lead
attlist.member &=
[ a:defaultValue = "0" ] attribute is-lead { "0" | "1" }?
# Project member role
role = element role { attlist.role, text }
attlist.role &= empty
# Subproject of a project
subproject = element subproject { attlist.subproject, text }
# inherit-members="1" indicates that the project inherits members
# from the subproject
# ref="" references the subproject by the contact e-mail address
attlist.subproject &=
[ a:defaultValue = "0" ] attribute inherit-members { "0" | "1" }?,
attribute ref { text }
start = projects
|