The <tagsDecl> element as originally defined is supposed to contain a <tagUsage>relement for every distinct element marked up in a text. With the introduction of <rendition> it's also useful for supplying a default rendition, but not every element has one. We therefore need to provide some way of showing whether or not the <tagsDecl> is exhaustive: we propose an attribute @exhaustive with values true or false.
"exhaustive" is a bit of a fancy word which may not be obvious to non-native speakers. I'd rather see partial=true|false, a word we use elsewhere.
But as discussed in the Council meeting, we have to make this mandatory, if its not to be ambiguous. if we do that, we break all existing documents which use <tagUsage>
I (reluctantly) vote against this as unnecessarily waking up a sleeping dog. Leave it to be euthanized in P6.
Last edit: Lou Burnard 2014-07-02
It would not be ambiguous if we say that there is a default assumption that @partial=false. This would also not break existing documents.
Sorry, this would make documents that were previously following the prose text of the Guidelines actually invalid; they're now silently claiming that their tagUsages are partial when they're not. Better to make the defaultVal (ugh) true, which only invalidates documents which were previously ignoring what the Guidelines say, don't you think?
Council face-to-face in Raleigh 2014-11-18; Supports @partial but not creation of the default value. GREEN.
Council agreed that an explicit indication whether or not tagUsage is exhaustively defined would be useful. The use case for non-exhaustive list derives from practice of using tagUsage to specify default rendition (using @render). If the proposals for extending <rendition> in ticket 520 are implemented, it would be possible to deprecate @render, and thus remove this use case
You can easily find out if the tagsDecl is exhaustive simply by checking the document and looking at the tags. Like
<tagsDecl>
itself, largely redundant. But if it makes people happy to have the possibility of inherent contradiction....You may not want to "check the document" or not have access to it.
One interesting use case is when you use the header to indicate affordances for a query system. You don't parse the whole bunch of documents, but you rely on tagsDecl to tell you what you are likely to be able to query there.
Per Council F2F in 2014-11 at Duke, implemented a partial=true|false attribute, and tweaked prose in HD in revision 13121.