318 | | The following table contains a summary of allowed specifications for a CMD component. |
319 | | |
320 | | ||= Name =||= Valuetype =||= Description =|| |
321 | | || `@name` || `xs:Name` || Name of the component || |
322 | | || `@ComponentId` || `xs:anyURI` || Identifier of the component || |
323 | | || `@ConceptLink` || `xs:anyURI` || Concept link || |
324 | | || `@CardinalityMin` || `xs:nonNegativeInteger` || Minimum number of times this component has to occur|| |
325 | | || `@CardinalityMax` || `xs:nonNegativeInteger` or “unbounded” || Maximum number of times this component may occur || |
326 | | || `Documentation` || `xs:string` || Documentation about the purpose of the component || |
327 | | || `AttributeList` || `xs:complexType` || Additional attributes specified by the component creator || |
| 318 | |
| 319 | |
| 320 | ||||= Name =||= Valuetype =||= Occurrences =||= Description =|| |
| 321 | |||| `<Component` || `xs:complexType` || || Root element of every CMD component definition || |
| 322 | || || `@name` || `xs:Name` || 0 or 1 || Name of the component || |
| 323 | || || `@ComponentId` || `xs:anyURI` || 0 or 1 || Identifier of the component || |
| 324 | || || `@ConceptLink` || `xs:anyURI` || 0 or 1 || Concept link || |
| 325 | || || `@CardinalityMin` || `xs:nonNegativeInteger` || 0 or 1 || Minimum number of times this component has to occur|| |
| 326 | || || `@CardinalityMax` || `xs:nonNegativeInteger` or “unbounded” || 0 or 1 || Maximum number of times this component may occur || |
| 327 | || || `Documentation` || `xs:string` || 0 to unbounded || Documentation about the purpose of the component || |
| 328 | || || `AttributeList` || `xs:complexType` || 0 or 1 || Additional attributes specified by the component creator || |
| 329 | |
347 | | Both 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. |
348 | | The following table contains a summary of allowed specifications for a CMD attribute. |
349 | | |
350 | | ||= Name =||= Valuetype =||= Description =|| |
351 | | || `@name` || `xs:Name` || Name of the attribute || |
352 | | || `@ConceptLink` || `xs:anyURI` || Concept link || |
353 | | || `@ValueScheme` || Subset of XSD datatypes || Allowed data type if simple XML type is used || |
354 | | || `@Required` || `xs:boolean` || Indication if attribute is required || |
355 | | || `Documentation` || `xs:string` || Documentation about the purpose of the attribute || |
356 | | || `ValueScheme` || `xs:complexType` || Value restrictions based on a regular expression or a specified vocabulary || |
357 | | || `AutoValue` || `xs:string` || Derivation rules for the attribute's content || |
| 349 | Both the CMD element and component description allow the specification of additional CMD attributes. Every CMD attribute definition `MUST` contain a name. |
| 350 | |
| 351 | ||||= Name =||= Valuetype =||= Occurrences =||= Description =|| |
| 352 | |||| `<Attribute>` || `xs:complexType` || || Root element of every CMD attribute definition || |
| 353 | || || `@name` || `xs:Name` || 1 || Name of the attribute || |
| 354 | || || `@ConceptLink` || `xs:anyURI` || 0 or 1 || Concept link || |
| 355 | || || `@ValueScheme` || Subset of XSD datatypes || 0 or 1 || Allowed data type if simple XML type is used || |
| 356 | || || `@Required` || `xs:boolean` || 0 or 1 || Indication if attribute is required || |
| 357 | || || `<Documentation>` || `xs:string` || 0 to unbounded || Documentation about the purpose of the attribute || |
| 358 | || || `<ValueScheme>` || `xs:complexType` || 0 or 1 ||Value restrictions based on a regular expression or a specified vocabulary || |
| 359 | || || `<AutoValue>` || `xs:string` || 0 to unbounded || Derivation rules for the attribute's content || |
361 | | 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: |
362 | | * specifying all allowed values with optional attributes for every value to include a concept link and a description of the specific value, or |
363 | | * 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. |
| 363 | 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: |
| 364 | * specifying all allowed values with `OPTIONAL` attributes for every value to include a concept link and a description of the specific value, or |
| 365 | * 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. |
| 366 | |
| 367 | ||||= Name =||= Valuetype =||= Occurrences =||= Description =|| |
| 368 | |||| `<Vocabulary>` || `xs:complexType` || || Root element of every CMD vocabulary definition || |
| 369 | |||| `<item>` || `xs:complexType` || 0 to unbounded || An item from a controlled vocabulary || |
| 370 | |||| `<appinfo>` || `xs:string` || 0 to unbounded || End-user guidance about the value of the controlled vocabulary as a whole. Currently not used. || |
| 371 | || || `@URI` || `xs:anyURI` || 0 or 1 || URI of an external vocabulary || |
| 372 | || || `@ValueProperty` || `xs:string` || 0 or 1 || preferred label in the selected vocabulary || |
| 373 | || || `@ValueLanguage` || `xs:language` || 0 or 1 || preferred language in the selected vocabulary || |