ID.datatype = xsd:ID LanguageCode.datatype = xsd:language id.attrib = attribute id { ID.datatype }? xmlbase.attrib = attribute xml:base { text }? Core.attrib = id.attrib, xmlbase.attrib lang.attrib = attribute xml:lang { LanguageCode.datatype }? I18n.attrib = lang.attrib Common.attrib = Core.attrib, I18n.attrib start = file | line | segment | whitespace file = element file { file.attlist, file.content } file.attlist = Common.attrib, attribute path { text }, attribute type { text } file.content = line* line = element line { line.attlist, line.content } line.attlist = Common.attrib line.content = (segment | whitespace)* segment = element segment { segment.attlist, text } segment.attlist = Common.attrib, attribute type { text } whitespace = element whitespace { whitespace.attlist, empty } whitespace.attlist = Common.attrib