nonEmpty = xsd:string { minLength = "1" } start = bibliography bibliography = element bibliography { bibItem+ } bibItem = element bibItem { author, articleTitle, journalTitle, volume, issue?, year, pages } author = element author { surname, forename, initial? } surname = element surname { nonEmpty } forename = element forename { nonEmpty } initial = element initial { nonEmpty } articleTitle = element title { attribute type { "article" }, nonEmpty } journalTitle = element title { attribute type { "journal" }, nonEmpty } volume = element volume { xsd:positiveInteger } issue = element issue { xsd:positiveInteger } year = element year { xsd:positiveInteger { pattern = "\d{4}" } } pages = element pages { startPage, endPage } startPage = element start { xsd:positiveInteger } endPage = element end { xsd:positiveInteger }