Changes between Version 99 and Version 100 of CMDI 1.2/Specification
- Timestamp:
- 01/19/16 15:04:10 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CMDI 1.2/Specification
v99 v100 362 362 Responsible for this section: Thomas 363 363 }}} 364 The CMDI Component Specification Language (CCSL) is used to describe a CMD component or CMD profile. Hence, a CCSL document provides the structure for describing an aspect of a resource or (in the case of a profile specification) the complete structure of the CMD instance. It is also basis for the generation of the XML schema file that is used to validate a CMD instance (see section ''Transformation of CCSL into a CMD schema definition''for details).364 The CMDI Component Specification Language (CCSL) is used to describe a CMD component or CMD profile. Hence, a CCSL document provides the structure for describing an aspect of a resource or (in the case of a profile specification) the complete structure of the CMD instance. It is also basis for the generation of the XML schema file that is used to validate a CMD instance (see section [#transformationIntoSchema Transformation of CCSL into a CMD schema definition] for details). 365 365 366 366 A CCSL document `MUST` contain a CCSL header and the actual CMD component description. Its root element `MUST` contain an XML attribute ''isProfile'' to indicate if the document specifies a CMD profile or a CMD component. … … 582 582 583 583 = Transformation of CCSL into a CMD profile schema definition = 584 585 A CMD instance document that is serialised as XML according this specification `SHOULD` contain a reference the location of a CMD profile schema. The infrastructure `MUST` provide a mechanism to derive such a schema for any specific CMD profile on basis of its definition and that of the CMD components that it references. This section specifies how different aspects of a CMD specification should be transformed into elements of a schema definition. The primary schema language targeted is XML Schema, although the infrastructure `MAY` provide support for other schema languages, such as DDML or Relax NG. 586 CMD profile schemas `SHOULD NOT` (`MUST NOT`?) be derived from CMD specifications that are not CMD profiles. 587 588 The transformation as described here is assumed to take place on the fully expanded CMD profile, i.e. a version of the specification that has all referenced (non-inline) CMD Component definitions are resolved and substituted, recursively, by their full definitions. 584 [=#transformationIntoSchema] 585 A CMD instance document that is serialised as XML according this specification `SHOULD` contain a reference to the location of a CMD profile schema. The infrastructure `MUST` provide a mechanism to derive such a schema for any specific CMD profile on basis of its definition and that of the CMD components that it references. This section specifies how different aspects of a CMD specification should be transformed into elements of a schema definition. The primary schema language targeted is XML Schema, although the infrastructure `MAY` provide support for other schema languages, such as DDML or Relax NG. 586 A CMD profile schemas `MUST` be derived from a CMD profile specification. 589 587 590 588 == General properties of the CMD profile schema definition == 591 589 592 A CMD profile schema `MUST` be a single document {or set of linked documents with a single entry point}(?) that allowsfor the evaluation of a CMD instance on all levels of description defined in one specific CMD profile.593 The schema `MUST` require the presence of a CMD instance envelope as described in section "Structure of CMDI -files". The value of the `<MdProfile>` header item in the CMD instance envelope `MUST` only be valid if it is equal to the profile id as specified in the associated CMD profile.590 A CMD profile schema `MUST` allow for the evaluation of a CMD instance on all levels of description defined in one specific CMD profile. 591 The schema `MUST` require the presence of a CMD instance envelope as described in section "Structure of CMDI files". The value of the `<MdProfile>` header item in the CMD instance envelope `MUST` only be valid if it is equal to the profile id as specified in the associated CMD profile. 594 592 595 593 The CMD profile schema `SHOULD` include, as a matter of annotation, a copy of (a subset of) the information contained in the `Header` section of the CMD profile from which it is derived. … … 609 607 || Minimal number of occurrences || `@minOccurs` || `@CardinalityMin`, or '1' if XML attribute not present || `REQUIRED` ^[#ioccditc-note1 1]^ || 610 608 || Maximal number of occurrences || `@maxOccurs` || `@CardinalityMax`, or '1' if XML attribute not present || `REQUIRED` ^[#ioccditc-note1 1]^ || 611 || Concept link || `@ dcr:datcat` || `@ConceptLink` || `OPTIONAL` ||609 || Concept link || `@cmd:ConceptLink` || `@ConceptLink` || `OPTIONAL` || 612 610 || Component id || `@cmd:ComponentId` || `@ComponentId` || `OPTIONAL` || 613 ^[=#ioccditc-note1 1]^The implementation may make use of default evaluation of the schema language if it matches these requirements, as is the case with XML Schema, and therefore omit explicit declaration of these properties 614 615 An optional XML Attribute `@cmd:ref` of type ''xs:IDREF S'' `MUST` be allowed on the XML container element derived from any CMD component.611 ^[=#ioccditc-note1 1]^The implementation may make use of default evaluation of the schema language if it matches these requirements, as is the case with XML Schema, and therefore omit explicit declaration of these properties. 612 613 An optional XML Attribute `@cmd:ref` of type ''xs:IDREF'' `MUST` be allowed on the XML container element derived from any CMD component. 616 614 617 615 `<Documentation>` XML elements contained in CMD Components `SHOULD` be transformed into documentation elements embedded in the XML element declaration. In these, the content language information contained in the `@xml:lang` XML attribute `SHOULD` be preserved. 618 616 619 XML attributes of CMD Components in the 'cue'namespace `SHOULD` be copied into the XML element declaration, in which case the XML attribute name, namespace and value `SHOULD` be preserved.617 XML attributes of CMD Components in the `cue` namespace `SHOULD` be copied into the XML element declaration, in which case the XML attribute name, namespace and value `SHOULD` be preserved. 620 618 621 619 === Document structure prescribed by the schema === … … 636 634 || Maximal number of occurrences || `@maxOccurs` || `@CardinalityMax`, or '1' if XML attribute not present || `REQUIRED` ^[#ioceditc-note1 1]^ || 637 635 || Type of the XML element || `@type` || See section 'Content model' || || 638 || Concept link || `@ dcr:datcat` || `@ConceptLink` || `OPTIONAL` ||636 || Concept link || `@cmd:ConceptLink` || `@ConceptLink` || `OPTIONAL` || 639 637 || Auto value instruction || `@cmd:AutoValue` || `@AutoValue` || `OPTIONAL` || 640 ^[=#ioceditc-note1 1]^The implementation may make use of default evaluation of the schema language if it matches these requirements, as is the case with XML Schema, and therefore omit explicit declaration of these properties 638 ^[=#ioceditc-note1 1]^The implementation may make use of default evaluation of the schema language if it matches these requirements, as is the case with XML Schema, and therefore omit explicit declaration of these properties. 641 639 642 640 `<Documentation>` XML elements contained in CMD elements `SHOULD` be transformed into documentation elements embedded in the XML element declaration In these, the content language information contained in the `@xml:lang` XML attribute `SHOULD` be preserved. 643 641 644 XML attributes of CMD Elements in the 'cue' namespace `SHOULD` be copied into the XML element declaration, in which case the XML attribute name, namespace and value `SHOULD` be preserved.642 XML attributes of CMD elements in the 'cue' namespace `SHOULD` be copied into the XML element declaration, in which case the XML attribute name, namespace and value `SHOULD` be preserved. 645 643 646 644 An optional XML Attribute `@cmd:ValueConceptLink` of type ''xs:anyURI'' `MUST` be allowed on the XML element derived from a CMD element that has a vocabulary with XML attribute `@URI` defined (see section "Content model for CMD elements and CMD attributes in the schema definition"). … … 655 653 || Use of the XML attribute || `@use` || 'required' if and only if `@Required` is present and equals true, otherwise 'optional' || `REQUIRED` ^[#iocaditc-note1 1]^ || 656 654 || Type of the XML attribute || `@type` |||| See section 'Content model' || 657 || Concept link || `@ dcr:datcat` || `@ConceptLink` || `OPTIONAL` ||655 || Concept link || `@cmd:ConceptLink` || `@ConceptLink` || `OPTIONAL` || 658 656 || Auto value instruction || `@cmd:AutoValue` || `@AutoValue` || `OPTIONAL` || 659 ^[=#iocaditc-note1 1]^The implementation may make use of default evaluation of the schema language if it matches these requirements, as is the case with XML Schema, and therefore omit explicit declaration of these properties 657 ^[=#iocaditc-note1 1]^The implementation may make use of default evaluation of the schema language if it matches these requirements, as is the case with XML Schema, and therefore omit explicit declaration of these properties. 660 658 661 659 `<Documentation>` XML elements contained in CMD attributes `SHOULD` be transformed into documentation elements embedded in the XML attribute declaration In these, the content language information contained in the `@xml:lang` XML attribute `SHOULD` be preserved. 662 660 663 XML attributes of CMD Attributes in the 'cue'namespace `SHOULD` be copied into the XML attribute declaration, in which case the XML attribute name, namespace and value `SHOULD` be preserved.661 XML attributes of CMD attributes in the `cue` namespace `SHOULD` be copied into the XML attribute declaration, in which case the XML attribute name, namespace and value `SHOULD` be preserved. 664 662 665 663 The derivation of a content model for the XML attribute declaration on basis of a CMD attribute is described below. … … 672 670 '''Otherwise''', if a CMD element or CMD attribute in the CCSL has a descendant XML element `<ValueScheme>` that contains an XML element `<Vocabulary>`: 673 671 * The XML attribute `@URI` of the XML element `<Vocabulary>`, if present, `SHOULD` be transformed into an attribute `cmd:Vocabulary`^[#cm-note1 1]^ of the same value on the XML element or attribute declaration in the schema. 674 * The XML attributes `@ValueProperty` and `@ValueLanguage` of the XML element `<Vocabulary>` `SHOULD` be transformed into XML attributes^[#cm-note1 1]^ in the 'cmd:'namespace on the XML element declaration in the case of a CMD element or XML attribute declaration in the case of a CMD attribute.675 * The XML elements `<item>` that are descendants of `<enumeration>` contained in `<Vocabulary>` `MUST` be transformed into an enumeration based restriction with values taken from the text content of the `<item>` XML elements. Each enumeration item in the schema `SHOULD` be annotated the value from the XML attribute `@ConceptLink` by means of an XML attribute `@ dcr:datcat`^[#cm-note1 1]^ and the value of the XML attribute `@AppInfo` by means of an attribute `@cmd:label`.676 677 ^[=#cm-note1 1]^The attributes `@cmd:Vocabulary`, `@cmd:ValueProperty`, `@cmd:ValueLanguage` and `@ dcr:datcat` should be present in the schema, not be declared as attributes allowed in the CMD instance672 * The XML attributes `@ValueProperty` and `@ValueLanguage` of the XML element `<Vocabulary>` `SHOULD` be transformed into XML attributes^[#cm-note1 1]^ in the `cmd` namespace on the XML element declaration in the case of a CMD element or XML attribute declaration in the case of a CMD attribute. 673 * The XML elements `<item>` that are descendants of `<enumeration>` contained in `<Vocabulary>` `MUST` be transformed into an enumeration based restriction with values taken from the text content of the `<item>` XML elements. Each enumeration item in the schema `SHOULD` be annotated the value from the XML attribute `@ConceptLink` by means of an XML attribute `@cmd:ConceptLink`^[#cm-note1 1]^ and the value of the XML attribute `@AppInfo` by means of an attribute `@cmd:label`. 674 675 ^[=#cm-note1 1]^The attributes `@cmd:Vocabulary`, `@cmd:ValueProperty`, `@cmd:ValueLanguage` and `@cmd:ConceptLink` should be present in the schema, not be declared as attributes allowed in the CMD instance. 678 676 679 677 = Appendices =