582 | | |
583 | | A clean solution to avoid these problems it to have a general CMDI XML namespace for the ''wrapper'' elements of an CMDI instance (Header, ...) and a profile specific namespace for the elements below the `Components` elements. The following approaches could be used to lessen the impact of this change for users who don't care for Namespaces: |
| 582 | To avoid these problems at least the fifth solution, i.e., profile specific namespaces, would be needed. Solution six, profile and component specific namespaces, raises the complexity of namespaces too much. Solution five actually uses components like [[http://docstore.mik.ua/orelly/xml/schema/ch10_10.htm|chameleon schema modules]] are used in in XSD, i.e., the imported elements are absorbed in the namespace of the importing schema. The drawback is that the fact that the same element is used by different vocabularies is lost. However, the CMD Infrastructure has its own solutions for that: |
| 583 | |
| 584 | 1. The root elements of the components and profiles have a fixed, but optional,!ComponentId attributes allowing to identify shared components; |
| 585 | 2. All levels in a CMD record can be associated with a !ConceptLink, which can even indicate shared semantics between various components. |
| 586 | |
| 587 | The cleanest solution to avoid these problems it thus to have a general CMDI XML namespace for the ''wrapper'' elements of an CMDI instance (Header, ...) and a profile specific namespace for the elements below the `Components` elements. The following approaches could be used to lessen the impact of this change for users who don't care for Namespaces: |