Changes between Version 74 and Version 75 of CMDI 1.2/Specification


Ignore:
Timestamp:
11/23/15 16:46:03 (8 years ago)
Author:
teckart@informatik.uni-leipzig.de
Comment:

CCSL

Legend:

Unmodified
Added
Removed
Modified
  • CMDI 1.2/Specification

    v74 v75  
    285285Responsible for this section: Thomas
    286286}}}
    287 The 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).
    288 
    289 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. Figure XY show the relation of the individual elements of the CCSL.
    290 
    291 {{{#!comment
    292 TODO: UML diagram of CCSL
     287The 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).
     288
     289A 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.
     290
     291{{{#!comment
     292TODO: UML diagram of CCSL "Figure XY show the relation of the individual elements of the CCSL."
    293293}}}
    294294
     
    302302
    303303==      CCSL header ==
    304 The CCSL header provides information relevant to identify and describe the component. This part includes a persistent identifier, the name, the description of the component and information about the status of the specification. The status information 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 `MAY` be stored in the element ''Successor''.
     304The CCSL header provides information relevant to identify and describe the component. This part includes a persistent identifier, the name, the description of the component and information about the status of the specification. The header `MUST` contain an element indicating the component's status in its lifecycle (using the three lifecycles ''development'', ''production'', or ''deprecated'') and `MAY` contain  the 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 `MAY` be stored in the element ''Successor''.
    305305
    306306||||= Name =||= Valuetype =||= Occurrences =||= Description =||
     
    313313|| || `<Successor>` || `xs:anyURI` || 0 or 1 || ID of successor component, if available ||
    314314
    315 ==      CMD Component definition ==
    316 Components 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. If an already defined CMD component (i.e. a CMD component with its own identifier) should be referenced, `@ComponentId` `MUST` be used to indicate its identifier. If this is not the case, the specification of a CMD components `MAY` contain the name of the component, the component's identifier, a concept link, and information about the allowed cardinality of the component. Furthermore documentation texts and further CMD attributes `MAY` be specified.
     315==      CMD component definition ==
     316Components are defined as a sequence of elements which `MAY` be followed by other components. The latter is allowed because components may be embedded in other components. If an already defined CMD component (i.e. a CMD component with its own identifier) should be referenced, `@ComponentId` `MUST` be used to indicate its identifier. If this is not the case, the specification of a CMD components `MAY` contain the name of the component, the component's identifier, a concept link, and information about the allowed cardinality of the component. Furthermore documentation texts and further CMD attributes `MAY` be specified.
    317317
    318318
     
    322322|| || `@ComponentId` || `xs:anyURI` || 0 or 1 || Identifier of the component ||
    323323|| || `@ConceptLink` || `xs:anyURI` || 0 or 1 || Concept link ||
    324 || || `@CardinalityMin` || `xs:nonNegativeInteger`  || 0 or 1 || Minimum number of times this component has to occur||
     324|| || `@CardinalityMin` || `xs:nonNegativeInteger`  || 0 or 1 || Minimum number of times this component has to occur ||
    325325|| || `@CardinalityMax` || `xs:nonNegativeInteger` or “unbounded” || 0 or 1 || Maximum number of times this component may occur ||
    326326|| || `Documentation` || `xs:string` || 0 to unbounded || Documentation about the purpose of the component ||
     
    329329
    330330==      CMD element definition ==
    331 CMD elements are a template for storing atomic values constrained by a value scheme in a CMD instance. The CCSL specification `MUST` contain the name of the element and `MAY` contain a concept link, the value schema, and information about the allowed cardinality of the element. Furthermore it `MAY` be indicated if the element may have different instance values in multiple languages, and hence an unlimited upper cardinality bound.
     331CMD elements are a template for storing atomic values constrained by a value scheme in a CMD instance. The CCSL specification of an CMD element `MUST` contain the name of the element and `MAY` contain a concept link, the value schema, and information about the allowed cardinality of the element. Furthermore it `MAY` be indicated if the element may have different instance values in multiple languages, and hence an unlimited upper cardinality bound.
    332332Besides standard XML schema datatypes the value of a CMD element `MAY` 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.
    333333
     
    342342|| || `<Documentation>` || `xs:string` || 0 to unbounded || Documentation about the purpose of the element ||
    343343|| || `<AttributeList>` || `xs:complexType` || 0 or 1 || Additional attributes specified by the component creator ||
    344 || || `<ValueScheme>` || `xs:complexType` || 0 or 1 || Value restrictions based on a regular expression or a specified vocabulary ||
     344|| || `<ValueScheme>` || `xs:complexType` || 0 or 1 || Value restrictions based on a regular expression or a specified vocabulary. See ''Value restrictions for elements and attributes'' for details. ||
    345345|| || `<AutoValue>` || `xs:string` || 0 to unbounded || Derivation rules for the element's content ||
    346346
    347347==      CMD attribute definition ==
    348 Both the CMD element and component description allow the specification of additional CMD attributes. Every CMD attribute definition `MUST` contain a name.
     348Both the CMD element and component description allow the specification of additional CMD attributes. Every CMD attribute definition `MUST` contain a `@name` attribute and `MAY` contain other attributes or elements for a more detailled description.
    349349
    350350||||= Name =||= Valuetype =||= Occurrences =||= Description =||
     
    355355|| || `@Required` || `xs:boolean` || 0 or 1 || Indication if attribute is required ||
    356356|| || `<Documentation>` || `xs:string` || 0 to unbounded || Documentation about the purpose of the attribute ||
    357 || || `<ValueScheme>` || `xs:complexType` || 0 or 1 ||Value restrictions based on a regular expression or a specified vocabulary ||
     357|| || `<ValueScheme>` || `xs:complexType` || 0 or 1 ||Value restrictions based on a regular expression or a specified vocabulary. See ''Value restrictions for elements and attributes'' for details. ||
    358358|| || `<AutoValue>` || `xs:string` || 0 to unbounded || Derivation rules for the attribute's content ||
    359359
    360360
    361361==      Value restrictions for elements and attributes ==
    362 Apart 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:
     362Apart 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 controlled vocabulary of allowed values. CMDI 1.2 supports two approaches to describe such a vocabulary:
    363363* specifying all allowed values with `OPTIONAL` attributes for every value to include a concept link and a description of the specific value, or
    364364* referring to an external vocabulary via a URI specified in `@URI`. `OPTIONAL` XML attributes `@ValueProperty` and `@ValueLanguage` `MAY` be used to give more information about preferred label and language in the chosen vocabulary.
     
    369369
    370370
    371 ||||= Name =||= Valuetype =||= Occurrences =||= Description =||
    372 |||| `<Vocabulary>` || `xs:complexType` || || Root element of every CMD vocabulary definition ||
    373 |||| `<item>` || `xs:complexType` || 0 to unbounded || An item from a controlled vocabulary ||
    374 |||| `<appinfo>` || `xs:string` || 0 to unbounded || End-user guidance about the value of the controlled vocabulary as a whole. Currently not used. ||
    375 || || `@URI` || `xs:anyURI` || 0 or 1 || URI of an external vocabulary ||
    376 || || `@ValueProperty` || `xs:string` || 0 or 1 || preferred label in the selected vocabulary ||
    377 || || `@ValueLanguage` || `xs:language` || 0 or 1 || preferred language in the selected vocabulary ||
     371||||||||||= Name =||= Valuetype =||= Occurrences =||= Description =||
     372|||||||||| `<ValueScheme>` || `xs:complexType` || || Specification of the value scheme of an element or attribute. ||
     373|| |||||||| `<pattern>` || `xs:string` || 0 or 1 || Specification of a regular expression the element should comply with. ||
     374|| |||||||| `<Vocabulary>` || `xs:complexType` || 0 or 1 || Specification of a CMD vocabulary ||
     375|| || |||||| `<Enumeration>` || `xs:complexType` || 0 or 1 || Enumeration of items from a controlled vocabulary ||
     376|| || || |||| `<item>` || `xs:string` || 0 to unbounded || An item from a controlled vocabulary ||
     377|| || || || || `@ConceptLink` || `xs:anyURI` || 0 or 1 || Concept link of item value ||
     378|| || || || || `@AppInfo` || `xs:string` || 0 or 1 || End-user guidance about the value of this controlled vocabulary item. ||
     379|| || || |||| `<appinfo>` || `xs:string` || 0 to unbounded || End-user guidance about the value of the controlled vocabulary as a whole. Currently not used. ||
     380|| || |||||| `@URI` || `xs:anyURI` || 0 or 1 || URI of an external vocabulary ||
     381|| || |||||| `@ValueProperty` || `xs:string` || 0 or 1 || preferred label in the selected vocabulary ||
     382|| || |||||| `@ValueLanguage` || `xs:language` || 0 or 1 || preferred language in the selected vocabulary ||
    378383
    379384==      Cues attributes ==
    380 All CMD attribute, element, and component specifications may contain additional attributes with the namespace “http://www.clarin.eu/cmd/cues/1”. 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.
     385All CMD attribute, element, and component specifications may contain additional attributes with the namespace “http://www.clarin.eu/cmd/cues/1”. 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.
    381386
    382387= Transformation of CCSL into a CMD profile schema definition =