# Import funny characters namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" inline.class = sup | sub | b | brite | c | e | path | img | br | mail | uri | keyval pre.class = comment | i | keyword | ident | const | stmt | var | keyval | uri lists.class = ul | ol | dl ti.class = inline.class | lists.class | fig block.class = figure | fig | note | impo | warn | pre | p | table | lists.class title = element title { title.attlist, text } title.attlist &= empty values = element values { values.attlist, key+ } values.attlist &= empty key = element key { key.attlist, text } key.attlist &= attribute id { text }? author = element author { author.attlist, (text | mail)* } author.attlist &= attribute title { text }? mail = element mail { mail.attlist, text } mail.attlist &= attribute link { text }? uri = element uri { uri.attlist, (text | img)* } uri.attlist &= attribute link { text }? date = element date { date.attlist, text } date.attlist &= empty abstract = element abstract { abstract.attlist, text } abstract.attlist &= empty summary = element summary { summary.attlist, text } summary.attlist &= empty license = element license { license.attlist, empty } license.attlist &= attribute version { text }? version = element version { version.attlist, text } version.attlist &= empty figure = element figure { figure.attlist, empty } figure.attlist &= attribute caption { text }?, attribute short { text }?, attribute link { text } fig = element fig { fig.attlist, empty } fig.attlist &= attribute short { text }?, attribute linkto { text }?, attribute link { text } img = element img { img.attlist, empty } img.attlist &= attribute src { text } br = element br { br.attlist, empty } br.attlist &= empty note = element note { note.attlist, (text | inline.class)* } note.attlist &= attribute test { text }? impo = element impo { impo.attlist, (text | inline.class)* } impo.attlist &= attribute test { text }? warn = element warn { warn.attlist, (text | inline.class)* } warn.attlist &= attribute test { text }? pre = element pre { pre.attlist, (text | pre.class)* } pre.attlist &= attribute caption { text }, attribute test { text }? comment = element comment { comment.attlist, (text | pre.class | b)* } comment.attlist &= empty i = element i { i.attlist, (text | pre.class)* } i.attlist &= empty keyword = element keyword { keyword.attlist, (text | pre.class)* } keyword.attlist &= empty ident = element ident { ident.attlist, (text | pre.class)* } ident.attlist &= empty const = element const { const.attlist, (text | pre.class)* } const.attlist &= empty stmt = element stmt { stmt.attlist, (text | pre.class)* } stmt.attlist &= empty var = element var { var.attlist, (text | pre.class)* } var.attlist &= empty glepindex = element glepindex { glepindex.attlist, empty } glepindex.attlist &= attribute status { text }?, [ a:defaultValue = "/proj/en/glep/gleps.xml" ] attribute index { text }? body.attlist &= attribute test { text }? p = element p { p.attlist, (text | inline.class)* } p.attlist &= attribute by { text }?, attribute test { text }? table = element table { table.attlist, tcolumn*, tr+ } table.attlist &= attribute test { text }? tcolumn = element tcolumn { tcolumn.attlist, empty } tcolumn.attlist &= attribute width { text } tr = element tr { tr.attlist, (th | ti)+ } tr.attlist &= attribute id { text }?, attribute test { text }? th = element th { th.attlist, (text | inline.class)* } th.attlist &= attribute colspan { text }?, attribute rowspan { text }?, [ a:defaultValue = "left" ] attribute align { "left" | "center" | "right" }? ti = element ti { ti.attlist, (text | ti.class)* } ti.attlist &= attribute colspan { text }?, attribute rowspan { text }?, [ a:defaultValue = "left" ] attribute align { "left" | "center" | "right" }? dl = element dl { dl.attlist, (dt | dd)+ } dl.attlist &= empty dt = element dt { dt.attlist, (text | inline.class)* } dt.attlist &= empty dd = element dd { dd.attlist, (text | inline.class | ul | ol)* } dd.attlist &= empty ul = element ul { ul.attlist, li+ } ul.attlist &= attribute test { text }? ol = element ol { ol.attlist, li+ } ol.attlist &= attribute test { text }? li = element li { li.attlist, (text | inline.class | ul | ol)* } li.attlist &= attribute test { text }? sup = element sup { sup.attlist, (text | inline.class)* } sup.attlist &= empty sub = element sub { sub.attlist, (text | inline.class)* } sub.attlist &= empty b = element b { b.attlist, (text | inline.class)* } b.attlist &= empty brite = element brite { brite.attlist, (text | inline.class)* } brite.attlist &= empty c = element c { c.attlist, (text | inline.class)* } c.attlist &= empty e = element e { e.attlist, (text | inline.class)* } e.attlist &= empty path = element path { path.attlist, (text | inline.class)* } path.attlist &= empty keyval = element keyval { keyval.attlist, empty } keyval.attlist &= attribute id { text } section.attlist &= attribute id { text }?, attribute test { text }? included = element included { included.attlist, version, date, (chapter | section | body)+ } included.attlist &= empty \include = element include { include.attlist, empty } include.attlist &= attribute href { text }