When to use different namespaces
from charlie mccay:
Lloyd and all
I suggest that we establish concrete criteria for making the decision (what are we worried about). I propose the following as sensible questions in this area, and would welcome other sensible questions to add to the list. Having done this little exercise I am more confident that the same namespace is the way to go for both XML ITS 1.1 and the new ITS -- but if this is not generally agreed then lets get some answers to the extended list of questions and see what rationale can be developed for a decision.
1) What is the cost of migrating from support for one ITS to support for the next
2) How easy/expensive will it be to maintain systems that implement both?
3) What is the risk of an instance conforming to one ITS being assumed to conform to the other?
4) What is the cost of that confusion, and how easy is it to resolve?
5) What is industry (best) practice in this area? Are we following it? If not, or it is not clear, then can we justify why we are going off-piste.
6) What is consistent with the XML ITS R1 namespace policy
My answers are:
1) significantly lower for same-namespace as existing code and transforms can eb ported without namespace changes
2) mildly cheaper to be able to reuse some code across multiple ITS implementations with same namespace, but certainly different namespaces don’t make things any easier
3) With a required version attribute in the root node, it is hard to see there being much confusion
4) Trivial given that instances will not conform to the schema, and that the version indicator is there in every instance.
5) XSLT uses same namespace, XSD leans towards same namespace. Using same-namespace for model-derived and maintained XML language definitions seems to me at least established industry good practice, even if we do not yet have commonly agreed best practice.
6) In the XML ITS R1 we allow for the same element name to have different content models based on the interactionId attribute, and so have established the practice of not using namespaces to partition HL7 sets of names. This attribute-driven semantics in HL7 is consistent with RDF, and makes sense when maintaining a rich and evolving semantic structure.
In summary: namespaces are too brittle to support smooth evolution of implementations.