summaryrefslogtreecommitdiff
blob: 54a1305d18f95e63f6d12bea5976437265165e7e (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
userlist = element userlist { attlist.userlist, user+ }
attlist.userlist &= empty
user =
  element user {
    attlist.user,
    realname,
    pgpkey+,
    alias*,
    email+,
    joined*,
    retired*,
    status?,
    roles?,
    location?
  }
attlist.user &= attribute username { xsd:ID }
realname = element realname { attlist.realname, firstname, familyname }
attlist.realname &= attribute fullname { text }?
firstname = element firstname { attlist.firstname, text }
attlist.firstname &= empty
familyname = element familyname { attlist.familyname, text }
attlist.familyname &= attribute sort { text }?
pgpkey = element pgpkey { attlist.pgpkey, text }
attlist.pgpkey &= empty
alias = element alias { attlist.alias, text }
attlist.alias &= empty
email = element email { attlist.email, text }
attlist.email &= empty
# all dates should be YYYY-MM-DD - eg '2006-11-22'
joined = element joined { attlist.joined, text }
attlist.joined &= empty
retired = element retired { attlist.retired, text }
attlist.retired &= empty
status = element status { attlist.status, text }
attlist.status &= empty
roles = element roles { attlist.roles, text }
attlist.roles &= empty
# Location is the string displayed on the webpage
location = element location { attlist.location, text }
# signed decimal numbers. degrees north/east.
attlist.location &=
  attribute latitude { text }?,
  attribute longitude { text }?
start = userlist