I have a several questions about extensions. I undestand that, extension is something which extends document form and behaviour of data. I look up on example of atomic extension. But I’m little bit confused. In specification is written that extension cannot alter or remove semantics. But first thing what atomic does is to forbid data and includes. So my first question is, is it right to allow extension forbid particular parts of document?
Next question is about combination of several extension. Is it allowed to support several extension in one request? If so, how to handle colisions between extensions? Like if atomic forbid data to be presented in document and another extension require its exsitence, this leads to semnatic paradox and thus should not happen. My opinion is that only one extension should be allowed per request, but maybe authors could have different view on this topic, so I’m curious how to handle this properly.
I don’t see this as a contradiction. The specification is not redefining the semantics or data or includes, but it is specifying further that they are incompatible with other top-level members that are required.
The values of the ext and profile parameters MUST equal a space-separated (U+0020 SPACE, “ “) list of extension or profile URIs, respectively.
I don’t see anything specifically addressing conflicts between extensions, but I suppose it’s up to you to not specify extensions that are incompatible with one another.
That’s correct. A server must not support an incompatible combination of extensions or profiles. If a client requests an incompatible combination of extensions via Accept request header, a server must response with 406 Not Acceptable.