Changes between Version 23 and Version 24 of CMDI 1.2/Specification


Ignore:
Timestamp:
11/09/15 19:37:23 (9 years ago)
Author:
teckart@informatik.uni-leipzig.de
Comment:

First draft for CCSL specification

Legend:

Unmodified
Added
Removed
Modified
  • CMDI 1.2/Specification

    v23 v24  
    254254Responsible for this section: Thomas
    255255}}}
     256The CMDI Component Specification Language (CCSL) is used to describe a CMD component or CMD profile. Hence, a CCSL document provides the structure of an aspect of a resource or (in the case of a profile specification) the complete structure of the instance's payload. 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 schema'' for details).
     257A CCSL document consists of two sections, the 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. Figure XY show the relation of the individual elements of the CCSL.
    256258
    257259{{{#!comment
     
    260262
    261263==      CCSL header ==
    262 
    263 ==      Component definition ==
    264 
    265 ==      Element definition ==
    266 
    267 ==      Cardinality of elements and components ==
    268 
    269 ==      Describing multilingual content ==
    270 
    271 ==      Attributes for elements and components ==
     264The CCSL header provides information relevant to identify and describe the component. This part includes a persistent identifier, the name, and a description of the component. The header also supports information about the status of the specification. These include a mandatory element indicating the component's status in its lifecycle (using the three lifecycles ''development'', ''production'', or ''deprecated'') and an optional element ''statusComment'' to contain information about the reason for the current status. In the case of a deprecated specification that was succeeded by a new specification, the identifier of the direct successor should be stored in the element ''Successor''.
     265
     266==      CMD Component definition ==
     267Components are defined as a sequence of elements which may be followed by other components. The later is allowed because components may be embedded in other components.
     268The specification of a CMD components contains the name of the component, the component's identifier, an optional concept link, and information about the allowed cardinality of the component. Furthermore documentation texts and further CMD attributes may be specified.
     269The following table contains a summary of allowed specifications for a CMD component.
     270
     271|| Name || Element/Attribute || Valuetype || Description ||
     272|| name || Attribute || xs:Name || Name of the component ||
     273|| ComponentId || Attribute || xs:anyURI || Identifier of the component ||
     274|| ConceptLink || Attribute || xs:anyURI || Concept link ||
     275|| CardinalityMin || Attribute || xs:nonNegativeInteger  || Minimum number of times this component has to occur||
     276|| CardinalityMax || Attribute || xs:nonNegativeInteger or “unbounded” || Maximum number of times this component may occur ||
     277|| Documentation || Element || xs:string || Documentation about the purpose of the component ||
     278|| AttributeList || Element || xs:complexType || Additional attributes specified by the component creator ||
     279
     280==      CMD element definition ==
     281CMD elements are a template for storing atomic values constrained by a value scheme in a CMD instance. All relevant information and restrictions for such an element is contained in the CMD element definition. Most of this information is stored in XML attributes. This includes the mandatory name of the element, an optional concept link, the value schema, and information about the allowed cardinality of the element. Furthermore it can be indicated if the element may have different instance values in multiple languages, and hence an unlimited upper cardinality bound.
     282Besides standard XML schema datatypes the value of a CMD element can be constrained by using regular expressions or vocabularies. The latter can be specified by giving the complete list of allowed values or by stating the URI of an external vocabulary (for details see ''Value restrictions for elements and attributes''). If the instance's content of the element can be derived from other values, the element ''AutoValue'' may be used to give indication about the derivation function. The CCSL does not prescribe or suggest a specific set of derivation functions.
     283The following table contains a summary of allowed specifications for a CMD element.
     284
     285|| Name || Element/Attribute || Valuetype || Description ||
     286|| name || Attribute || xs:Name || Name of the element ||
     287|| ConceptLink || Attribute || xs:anyURI || Concept link ||
     288|| ValueScheme || Attribute || Subset of XSD datatypes || Allowed data type if simple XML type is used ||
     289|| CardinalityMin || Attribute || xs:nonNegativeInteger or “unbounded” || Minimum number of times this element has to occur ||
     290|| CardinalityMax || Attribute || xs:nonNegativeInteger or “unbounded” || Maximum number of times this element may occur
     291|| Multilingual || Attribute || xs:boolean || Indication that the element can have values in multiple languages ||
     292|| Documentation || Element || xs:string || Documentation about the purpose of the element ||
     293|| AttributeList || Element || xs:complexType || Additional attributes specified by the component creator ||
     294|| ValueScheme || Element || xs:complexType || Value restrictions based on a regular expression or a specified vocabulary ||
     295|| AutoValue || Element || xs:string || Derivation rules for the element's content ||
     296
     297==      CMD attribute definition ==
     298Both the CMD element and component description allow the specification of additional CMD attributes. Every CMD attribute is specified using similar attributes and elements as for CMD elements.
     299The following table contains a summary of allowed specifications for a CMD attribute.
     300
     301|| Name || Element/Attribute || Valuetype || Description ||
     302|| name || Attribute || xs:Name || Name of the attribute ||
     303|| ConceptLink || Attribute || xs:anyURI || Concept link ||
     304|| ValueScheme || Attribute || Subset of XSD datatypes || Allowed data type if simple XML type is used ||
     305|| Required || Attribute || xs:boolean || Indication if attribute is required ||
     306||Documentation || Element || xs:string || Documentation about the purpose of the attribute ||
     307||ValueScheme || Element || xs:complexType || Value restrictions based on a regular expression or a specified vocabulary ||
     308||AutoValue || Element || xs:string || Derivation rules for the attribute's content ||
     309
     310
     311==      Value restrictions for elements and attributes ==
     312Apart from standard XML schema datatypes the content of a CMD element or attribute instance can be restricted by two means. The ''ValueScheme'' element may contain either an XML element ''pattern'' with the specification of a regular expression the element should comply with, or the definition of a vocabulary of allowed values. CMDI 1.2 supports two approaches to describe such a vocabulary:
     313* specifying all allowed values with optional attributes for every value to include a concept link and a description of the specific value, or
     314* referring to an external vocabulary via a URI specified in the attribute URI. Optional XML attributes ''ValueProperty'' and ''ValueLanguage'' may be used to give more information about preferred label and language in the chosen vocabulary.
     315
     316==      Cues attributes ==
     317All CMD attribute, element, and component specifications may contain additional attributes with the namespace “http://www.clarin.eu/cmdi/cues/display/1.0”. These may be used to give information about how the payload contained in CMD instances should be presented. Different styles for the same CMD component may be developed. The CCSL does not prescribe or suggest a specific set of these cue attributes.
     318
    272319
    273320=       Transformation of CCSL into a CMD profile schema =