title.opt = title? & titleabbrev? & subtitle?
title.req = title & titleabbrev? & subtitle?
info.notitle =
element info { (author|...)* }
info.titlereq =
element info { title.req, (author|...)* }
element article {
(title.req, info.notitle) | info.titlereq,
...
}
(This isn’t exactly the same semantic.)