SGML's implied close tags are a pain in the ass though. End tags in XML are overly verbose, but at least they're required.
<!ELEMENT e - -(f,g,h) -- no tag omission -->
<!ELEMENT f O - (#PCDATA) -- start-tag omission -->
<!ELEMENT g - O (#PCDATA) -- end-tag omission -->
<!ELEMENT h O O (#PCDATA) -- both start- and end-
tag omission allowed-->
What's painful about end-element tag omission?The lack of </> in XML is a crime against humanity.