-
Notifications
You must be signed in to change notification settings - Fork 1
/
rapSchema.rnc
30 lines (21 loc) · 991 Bytes
/
rapSchema.rnc
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
datatypes xsd = "http://www.w3.org/2001/XMLSchema-datatypes"
start = song
song = element song {head, lyrics}
head = element head {songTitle, artist, featuredArtist*, producer+, album, certification, order}
songTitle = element songTitle {text}
artist = element artist {text}
featuredArtist = element featuredArtist {text}
producer = element producer {text}
album = element album {text}
certification = element certification {text}
order = element order {text}
lyrics = element lyrics {(line+ | intro | verse | chorus | outro)*}
intro = element intro {mixed{(line | singer | featuredSinger)*}}
verse = element verse {mixed{(line | singer | featuredSinger)*}}
chorus = element chorus {mixed{(line | singer | featuredSinger)*}}
outro = element outro {mixed{(line | singer | featuredSinger)*}}
line = element line {mixed{phrase*}}
phrase = element phrase {mixed{(type | phrase)*}}
type = attribute type {text}
singer = element singer {text}
featuredSinger = element featuredSinger {text}