content = mixed { (persName | eventName)* } nonEmpty = xsd:string { minLength = "1" } persName = element persName { ref, nonEmpty } ref = attribute ref { xsd:string { pattern = "#\S+" } } eventName = element eventName { ref, nonEmpty } start = letter letter = element letter { header, \text } header = element header { title, provenance } provenance = element provenance { nonEmpty } title = element title { nonEmpty } \text = element text { date, salutation, body, closing } date = element date { xsd:date } salutation = element salutation { content } body = element body { p+ } p = element p { content } closing = element closing { valediction?, signature } valediction = element valediction { content } signature = element signature { content }