Changes between Version 99 and Version 100 of CMDI 1.2/Specification


Ignore:
Timestamp:
01/19/16 15:04:10 (8 years ago)
Author:
Twan Goosen
Comment:

Updated Transformation of CCSL into a CMD profile schema definition

Legend:

Unmodified
Added
Removed
Modified
  • CMDI 1.2/Specification

    v99 v100  
    362362Responsible for this section: Thomas
    363363}}}
    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).
     364The 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).
    365365
    366366A 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.
     
    582582
    583583= 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]
     585A 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.
     586A CMD profile schemas `MUST` be derived from a CMD profile specification.
    589587
    590588== General properties of the CMD profile schema definition ==
    591589
    592 A CMD profile schema `MUST` be a single document {or set of linked documents with a single entry point}(?) that allows for 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.
     590A CMD profile schema `MUST` allow for the evaluation of a CMD instance on all levels of description defined in one specific CMD profile.
     591The 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.
    594592
    595593The 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.
     
    609607|| Minimal number of occurrences || `@minOccurs` || `@CardinalityMin`, or '1' if XML attribute not present || `REQUIRED` ^[#ioccditc-note1 1]^ ||
    610608|| 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` ||
    612610|| 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:IDREFS'' `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
     613An optional XML Attribute `@cmd:ref` of type ''xs:IDREF'' `MUST` be allowed on the XML container element derived from any CMD component.
    616614
    617615`<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.
    618616
    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.
     617XML 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.
    620618
    621619=== Document structure prescribed by the schema ===
     
    636634|| Maximal number of occurrences || `@maxOccurs` || `@CardinalityMax`, or '1' if XML attribute not present || `REQUIRED` ^[#ioceditc-note1 1]^ ||
    637635|| Type of the XML element || `@type` || See section 'Content model' || ||
    638 || Concept link || `@dcr:datcat` || `@ConceptLink` || `OPTIONAL` ||
     636|| Concept link || `@cmd:ConceptLink` || `@ConceptLink` || `OPTIONAL` ||
    639637|| 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.
    641639
    642640`<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.
    643641
    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.
     642XML 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.
    645643
    646644An 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").
     
    655653|| Use of the XML attribute || `@use` || 'required' if and only if `@Required` is present and equals true, otherwise 'optional' || `REQUIRED` ^[#iocaditc-note1 1]^ ||
    656654|| Type of the XML attribute || `@type` |||| See section 'Content model' ||
    657 || Concept link || `@dcr:datcat` || `@ConceptLink` || `OPTIONAL` ||
     655|| Concept link || `@cmd:ConceptLink` || `@ConceptLink` || `OPTIONAL` ||
    658656|| 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.
    660658
    661659`<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.
    662660
    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.
     661XML 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.
    664662
    665663The derivation of a content model for the XML attribute declaration on basis of a CMD attribute is described below.
     
    672670'''Otherwise''', if a CMD element or CMD attribute in the CCSL has a descendant XML element `<ValueScheme>` that contains an XML element `<Vocabulary>`:
    673671 * 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 instance
     672 * 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.
    678676
    679677= Appendices =