
Karl Czajkowski wrote:
Being able to mark some elements as mandatory and others as optional means that a consumer, for whatever reason, can filter out optional pieces and consider the remaining document as "equivalent" for the needs of the producer. This allows the consumer to eliminate extensions that it does not understand as well as parts it understands but which conflict with its own policies.
The problem is that there's no way for us to force such attributes on extension elements (I think) and we don't need it for any non-ext elements in JSDL since the spec has everything as "must understand" (though a consumer could reject the doc if it doesn't "support" the term in question).
Conversely, anything marked as mandatory that is not understood or welcome will have to lead to "failure", whatever that means in the usage context. The consumer knows that it cannot fully support, for whatever reason, the declarative bits that the producer thinks are essential to the meaning of the document as a whole.
We need to make sure that the BES people remember to make their service state which terms are actually supported as part of their metadata. Alas, such things can't be done in JSDL itself as it's just a language spec and does not discuss the execution meta-environment. Donal.