Changes between Version 74 and Version 75 of CMDI 1.2/Specification
- Timestamp:
- 11/23/15 16:46:03 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CMDI 1.2/Specification
v74 v75 285 285 Responsible for this section: Thomas 286 286 }}} 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 287 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). 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. 290 291 {{{#!comment 292 TODO: UML diagram of CCSL "Figure XY show the relation of the individual elements of the CCSL." 293 293 }}} 294 294 … … 302 302 303 303 == 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 optionalelement ''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''.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 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''. 305 305 306 306 ||||= Name =||= Valuetype =||= Occurrences =||= Description =|| … … 313 313 || || `<Successor>` || `xs:anyURI` || 0 or 1 || ID of successor component, if available || 314 314 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 == 316 Components 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. 317 317 318 318 … … 322 322 || || `@ComponentId` || `xs:anyURI` || 0 or 1 || Identifier of the component || 323 323 || || `@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 || 325 325 || || `@CardinalityMax` || `xs:nonNegativeInteger` or “unbounded” || 0 or 1 || Maximum number of times this component may occur || 326 326 || || `Documentation` || `xs:string` || 0 to unbounded || Documentation about the purpose of the component || … … 329 329 330 330 == 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.331 CMD 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. 332 332 Besides 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. 333 333 … … 342 342 || || `<Documentation>` || `xs:string` || 0 to unbounded || Documentation about the purpose of the element || 343 343 || || `<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. || 345 345 || || `<AutoValue>` || `xs:string` || 0 to unbounded || Derivation rules for the element's content || 346 346 347 347 == 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.348 Both 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. 349 349 350 350 ||||= Name =||= Valuetype =||= Occurrences =||= Description =|| … … 355 355 || || `@Required` || `xs:boolean` || 0 or 1 || Indication if attribute is required || 356 356 || || `<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. || 358 358 || || `<AutoValue>` || `xs:string` || 0 to unbounded || Derivation rules for the attribute's content || 359 359 360 360 361 361 == 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 avocabulary of allowed values. CMDI 1.2 supports two approaches to describe such a vocabulary: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 controlled vocabulary of allowed values. CMDI 1.2 supports two approaches to describe such a vocabulary: 363 363 * specifying all allowed values with `OPTIONAL` attributes for every value to include a concept link and a description of the specific value, or 364 364 * 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. … … 369 369 370 370 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 || 378 383 379 384 == 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 maybe developed. The CCSL does not prescribe or suggest a specific set of these cue attributes.385 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. 381 386 382 387 = Transformation of CCSL into a CMD profile schema definition =