STU 2 Ballot

This page is part of the Data Access Framework (v1.6.0: STU 2 Ballot 1) based on FHIR v1.6.0. . For a full list of available versions, see the Directory of published versions

D.4.1 StructureDefinition: DAF-conformance

The official URL for this profile is:

http://hl7.org/fhir/us/daf/StructureDefinition/daf-conformance

This profile was published on Fri Aug 12 00:00:00 AEST 2016 as a draft by Health Level Seven International (FHIR Infrastructure WG - Data Access Framework).

D.4.1.1 Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

This structure is derived from Conformance

Summary

Mandatory: 5 elements (+10 nested mandatory elements)
Must-Support: 40 elements

NameFlagsCard.TypeDescription & Constraintsdoco
.. Conformance I1..1A conformance statement
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-1: If the resource is contained in another resource, it SHALL NOT contain any narrative
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource
cnf-8: There can only be one REST declaration per mode
cnf-7: The set of documents must be unique by the combination of profile & mode
cnf-2: A Conformance statement SHALL have at least one of description, software, or implementation
cnf-3: Messaging end-point is required (and is only permitted) when statement is for an implementation
cnf-1: A Conformance statement SHALL have at least one of REST, messaging or document
cnf-14: Conformance statements of kind 'requirements' do not have software or implementation elements
cnf-15: Conformance statements of kind 'software' do not have implementation elements
... id 0..1idLogical id of this artifact
... meta 0..1MetaMetadata about the resource
... implicitRules ?!0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url S0..1uriLogical uri to reference this statement
... version S0..1stringLogical id for this version of the statement
... name S0..1stringInformal name for this conformance statement
... status ?!S1..1codedraft | active | retired
Binding: ConformanceResourceStatus (required)
... experimental 0..1booleanIf for testing purposes, not real usage
... date S1..1dateTimePublication Date(/time)
... publisher S0..1stringName of the publisher (Organization or individual)
... contact 0..*BackboneElementContact details of the publisher
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... name 0..1stringName of an individual to contact
.... telecom 0..*ContactPointContact details for individual or publisher
... description SI0..1markdownHuman description of the conformance statement
... useContext 0..*CodeableConceptContent intends to support these contexts
Binding: Context of Use ValueSet (extensible)
... requirements 0..1markdownWhy this resource has been created
... copyright 0..1stringUse and/or publishing restrictions
... kind S1..1codeinstance | capability | requirements
Binding: ConformanceStatementKind (required)
... instantiates 0..*uriCanonical URL of service implemented/used by software
... software I0..1BackboneElementSoftware that is covered by this conformance statement
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... name 1..1stringA name the software is known by
.... version 0..1stringVersion covered by this statement
.... releaseDate 0..1dateTimeDate this version released
... implementation SI0..1BackboneElementIf this describes a specific instance
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... description S1..1stringDescribes this specific instance
.... url S0..1uriBase URL for the installation
... fhirVersion S1..1idFHIR Version the system uses
... acceptUnknown 1..1codeno | extensions | elements | both
Binding: UnknownContentCode (required)
... format S1..*codeformats supported (xml | json | ttl | mime type)
Binding: IETF BCP-13 (required)
... profile S0..*Reference(StructureDefinition)Profiles for use cases supported
... rest SI0..*BackboneElementIf the endpoint is a RESTful one
cnf-9: A given resource can only be described once per RESTful mode
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... mode S1..1codeclient | server
Binding: RestfulConformanceMode (required)
.... documentation 0..1stringGeneral description of implementation
.... security S0..1BackboneElementInformation about security of implementation
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... cors S0..1booleanAdds CORS Headers (http://enable-cors.org/)
..... service S0..*CodeableConceptOAuth | SMART-on-FHIR | NTLM | Basic | Kerberos | Certificates
Binding: RestfulSecurityService (extensible)
..... description 0..1stringGeneral description of how security works
..... certificate 0..*BackboneElementCertificates associated with security profiles
...... id 0..1stringxml:id (or equivalent in JSON)
...... extension 0..*ExtensionAdditional Content defined by implementations
...... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
...... type 0..1codeMime type for certificate
Binding: IETF BCP-13 (required)
...... blob 0..1base64BinaryActual certificate
.... resource SI0..*BackboneElementResource served on the REST interface
cnf-12: Search parameter names must be unique in the context of a resource
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... type S1..1codeA resource type that is supported
Binding: ResourceType (required)
..... profile S0..1Reference(StructureDefinition)Base System profile for all uses of resource
..... documentation S0..1markdownAdditional information about the use of the resource type
..... interaction S1..*BackboneElementWhat operations are supported?
...... id 0..1stringxml:id (or equivalent in JSON)
...... extension 0..*ExtensionAdditional Content defined by implementations
...... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
...... code S1..1coderead | vread | update | delete | history-instance | history-type | create | search-type
Binding: TypeRestfulInteraction (required)
...... documentation S0..1stringAnything special about operation behavior
..... versioning S0..1codeno-version | versioned | versioned-update
Binding: ResourceVersionPolicy (required)
..... readHistory S0..1booleanWhether vRead can return past versions
..... updateCreate 0..1booleanIf update can commit to a new identity
..... conditionalCreate 0..1booleanIf allows/uses conditional create
..... conditionalRead 0..1codenot-supported | modified-since | not-match | full-support
Binding: ConditionalReadStatus (required)
..... conditionalUpdate 0..1booleanIf allows/uses conditional update
..... conditionalDelete 0..1codenot-supported | single | multiple - how conditional delete is supported
Binding: ConditionalDeleteStatus (required)
..... searchInclude 0..*string_include values supported by the server
..... searchRevInclude 0..*string_revinclude values supported by the server
..... searchParam SI0..*BackboneElementSearch params supported by implementation
cnf-13: Search parameters can only have chain names when the search parameter type is 'reference'
...... id 0..1stringxml:id (or equivalent in JSON)
...... extension 0..*ExtensionAdditional Content defined by implementations
...... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
...... name S1..1stringName of search parameter
...... definition S0..1uriSource of definition for parameter
...... type S1..1codenumber | date | string | token | reference | composite | quantity | uri
Binding: SearchParamType (required)
...... documentation 0..1stringServer-specific usage
...... target S0..*codeTypes of resource (if a resource reference)
Binding: ResourceType (required)
...... modifier 0..*codemissing | exact | contains | not | text | in | not-in | below | above | type
Binding: SearchModifierCode (required)
...... chain 0..*stringChained names supported
.... interaction S0..*BackboneElementWhat operations are supported?
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... code S1..1codetransaction | batch | search-system | history-system
Binding: SystemRestfulInteraction (required)
..... documentation S0..1stringAnything special about operation behavior
.... searchParam S0..*Unknown reference to #Conformance:dafconformance.rest.resource.searchParam
Search params for searching all resources
.... operation S0..*BackboneElementDefinition of an operation or a custom query
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... name S1..1stringName by which the operation/query is invoked
..... definition S1..1Reference(OperationDefinition)The defined operation/query
.... compartment 0..*uriCompartments served/used by system
... messaging I0..*BackboneElementIf messaging is supported
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... endpoint 0..*BackboneElementWhere messages should be sent
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... protocol 1..1Codinghttp | ftp | mllp +
Binding: MessageTransport (extensible)
..... address 1..1uriAddress of end-point
.... reliableCache 0..1unsignedIntReliable Message Cache Length (min)
.... documentation 0..1stringMessaging interface behavior details
.... event 1..*BackboneElementDeclare support for this event
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... code 1..1CodingEvent type
Binding: MessageEvent (preferred)
..... category 0..1codeConsequence | Currency | Notification
Binding: MessageSignificanceCategory (required)
..... mode 1..1codesender | receiver
Binding: ConformanceEventMode (required)
..... focus 1..1codeResource that's focus of message
Binding: ResourceType (required)
..... request 1..1Reference(StructureDefinition)Profile that describes the request
..... response 1..1Reference(StructureDefinition)Profile that describes the response
..... documentation 0..1stringEndpoint-specific event documentation
... document I0..*BackboneElementDocument definition
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... mode 1..1codeproducer | consumer
Binding: DocumentMode (required)
.... documentation 0..1stringDescription of document support
.... profile 1..1Reference(StructureDefinition)Constraint on a resource used in the document

doco Documentation for this format

yet to be done: Xml template

yet to be done: Json template

This structure is derived from Conformance.

Summary

Mandatory: 5 elements (+10 nested mandatory elements)
Must-Support: 40 elements

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Conformance I1..1A conformance statement
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-1: If the resource is contained in another resource, it SHALL NOT contain any narrative
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource
cnf-8: There can only be one REST declaration per mode
cnf-7: The set of documents must be unique by the combination of profile & mode
cnf-2: A Conformance statement SHALL have at least one of description, software, or implementation
cnf-3: Messaging end-point is required (and is only permitted) when statement is for an implementation
cnf-1: A Conformance statement SHALL have at least one of REST, messaging or document
cnf-14: Conformance statements of kind 'requirements' do not have software or implementation elements
cnf-15: Conformance statements of kind 'software' do not have implementation elements
... id 0..1idLogical id of this artifact
... meta 0..1MetaMetadata about the resource
... implicitRules ?!0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... url S0..1uriLogical uri to reference this statement
... version S0..1stringLogical id for this version of the statement
... name S0..1stringInformal name for this conformance statement
... status ?!S1..1codedraft | active | retired
Binding: ConformanceResourceStatus (required)
... experimental 0..1booleanIf for testing purposes, not real usage
... date S1..1dateTimePublication Date(/time)
... publisher S0..1stringName of the publisher (Organization or individual)
... contact 0..*BackboneElementContact details of the publisher
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... name 0..1stringName of an individual to contact
.... telecom 0..*ContactPointContact details for individual or publisher
... description SI0..1markdownHuman description of the conformance statement
... useContext 0..*CodeableConceptContent intends to support these contexts
Binding: Context of Use ValueSet (extensible)
... requirements 0..1markdownWhy this resource has been created
... copyright 0..1stringUse and/or publishing restrictions
... kind S1..1codeinstance | capability | requirements
Binding: ConformanceStatementKind (required)
... instantiates 0..*uriCanonical URL of service implemented/used by software
... software I0..1BackboneElementSoftware that is covered by this conformance statement
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... name 1..1stringA name the software is known by
.... version 0..1stringVersion covered by this statement
.... releaseDate 0..1dateTimeDate this version released
... implementation SI0..1BackboneElementIf this describes a specific instance
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... description S1..1stringDescribes this specific instance
.... url S0..1uriBase URL for the installation
... fhirVersion S1..1idFHIR Version the system uses
... acceptUnknown 1..1codeno | extensions | elements | both
Binding: UnknownContentCode (required)
... format S1..*codeformats supported (xml | json | ttl | mime type)
Binding: IETF BCP-13 (required)
... profile S0..*Reference(StructureDefinition)Profiles for use cases supported
... rest SI0..*BackboneElementIf the endpoint is a RESTful one
cnf-9: A given resource can only be described once per RESTful mode
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... mode S1..1codeclient | server
Binding: RestfulConformanceMode (required)
.... documentation 0..1stringGeneral description of implementation
.... security S0..1BackboneElementInformation about security of implementation
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... cors S0..1booleanAdds CORS Headers (http://enable-cors.org/)
..... service S0..*CodeableConceptOAuth | SMART-on-FHIR | NTLM | Basic | Kerberos | Certificates
Binding: RestfulSecurityService (extensible)
..... description 0..1stringGeneral description of how security works
..... certificate 0..*BackboneElementCertificates associated with security profiles
...... id 0..1stringxml:id (or equivalent in JSON)
...... extension 0..*ExtensionAdditional Content defined by implementations
...... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
...... type 0..1codeMime type for certificate
Binding: IETF BCP-13 (required)
...... blob 0..1base64BinaryActual certificate
.... resource SI0..*BackboneElementResource served on the REST interface
cnf-12: Search parameter names must be unique in the context of a resource
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... type S1..1codeA resource type that is supported
Binding: ResourceType (required)
..... profile S0..1Reference(StructureDefinition)Base System profile for all uses of resource
..... documentation S0..1markdownAdditional information about the use of the resource type
..... interaction S1..*BackboneElementWhat operations are supported?
...... id 0..1stringxml:id (or equivalent in JSON)
...... extension 0..*ExtensionAdditional Content defined by implementations
...... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
...... code S1..1coderead | vread | update | delete | history-instance | history-type | create | search-type
Binding: TypeRestfulInteraction (required)
...... documentation S0..1stringAnything special about operation behavior
..... versioning S0..1codeno-version | versioned | versioned-update
Binding: ResourceVersionPolicy (required)
..... readHistory S0..1booleanWhether vRead can return past versions
..... updateCreate 0..1booleanIf update can commit to a new identity
..... conditionalCreate 0..1booleanIf allows/uses conditional create
..... conditionalRead 0..1codenot-supported | modified-since | not-match | full-support
Binding: ConditionalReadStatus (required)
..... conditionalUpdate 0..1booleanIf allows/uses conditional update
..... conditionalDelete 0..1codenot-supported | single | multiple - how conditional delete is supported
Binding: ConditionalDeleteStatus (required)
..... searchInclude 0..*string_include values supported by the server
..... searchRevInclude 0..*string_revinclude values supported by the server
..... searchParam SI0..*BackboneElementSearch params supported by implementation
cnf-13: Search parameters can only have chain names when the search parameter type is 'reference'
...... id 0..1stringxml:id (or equivalent in JSON)
...... extension 0..*ExtensionAdditional Content defined by implementations
...... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
...... name S1..1stringName of search parameter
...... definition S0..1uriSource of definition for parameter
...... type S1..1codenumber | date | string | token | reference | composite | quantity | uri
Binding: SearchParamType (required)
...... documentation 0..1stringServer-specific usage
...... target S0..*codeTypes of resource (if a resource reference)
Binding: ResourceType (required)
...... modifier 0..*codemissing | exact | contains | not | text | in | not-in | below | above | type
Binding: SearchModifierCode (required)
...... chain 0..*stringChained names supported
.... interaction S0..*BackboneElementWhat operations are supported?
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... code S1..1codetransaction | batch | search-system | history-system
Binding: SystemRestfulInteraction (required)
..... documentation S0..1stringAnything special about operation behavior
.... searchParam S0..*Unknown reference to #Conformance:dafconformance.rest.resource.searchParam
Search params for searching all resources
.... operation S0..*BackboneElementDefinition of an operation or a custom query
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... name S1..1stringName by which the operation/query is invoked
..... definition S1..1Reference(OperationDefinition)The defined operation/query
.... compartment 0..*uriCompartments served/used by system
... messaging I0..*BackboneElementIf messaging is supported
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... endpoint 0..*BackboneElementWhere messages should be sent
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... protocol 1..1Codinghttp | ftp | mllp +
Binding: MessageTransport (extensible)
..... address 1..1uriAddress of end-point
.... reliableCache 0..1unsignedIntReliable Message Cache Length (min)
.... documentation 0..1stringMessaging interface behavior details
.... event 1..*BackboneElementDeclare support for this event
..... id 0..1stringxml:id (or equivalent in JSON)
..... extension 0..*ExtensionAdditional Content defined by implementations
..... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
..... code 1..1CodingEvent type
Binding: MessageEvent (preferred)
..... category 0..1codeConsequence | Currency | Notification
Binding: MessageSignificanceCategory (required)
..... mode 1..1codesender | receiver
Binding: ConformanceEventMode (required)
..... focus 1..1codeResource that's focus of message
Binding: ResourceType (required)
..... request 1..1Reference(StructureDefinition)Profile that describes the request
..... response 1..1Reference(StructureDefinition)Profile that describes the response
..... documentation 0..1stringEndpoint-specific event documentation
... document I0..*BackboneElementDocument definition
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... mode 1..1codeproducer | consumer
Binding: DocumentMode (required)
.... documentation 0..1stringDescription of document support
.... profile 1..1Reference(StructureDefinition)Constraint on a resource used in the document

doco Documentation for this format

XML Template

yet to be done: Xml template

JSON Template

yet to be done: Json template

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathNameConformanceValueSet
Conformance.languageCommon LanguagesextensibleCommon Languages
Conformance.statusConformanceResourceStatusrequiredConformanceResourceStatus
Conformance.useContextContext of Use ValueSetextensibleContext of Use ValueSet
Conformance.kindConformanceStatementKindrequiredConformanceStatementKind
Conformance.acceptUnknownUnknownContentCoderequiredUnknownContentCode
Conformance.format?extrequiredhttp://www.rfc-editor.org/bcp/bcp13.txt
Conformance.rest.modeRestfulConformanceModerequiredRestfulConformanceMode
Conformance.rest.security.serviceRestfulSecurityServiceextensibleRestfulSecurityService
Conformance.rest.security.certificate.type?extrequiredhttp://www.rfc-editor.org/bcp/bcp13.txt
Conformance.rest.resource.typeResourceTyperequiredResourceType
Conformance.rest.resource.interaction.codeTypeRestfulInteractionrequiredTypeRestfulInteraction
Conformance.rest.resource.versioningResourceVersionPolicyrequiredResourceVersionPolicy
Conformance.rest.resource.conditionalReadConditionalReadStatusrequiredConditionalReadStatus
Conformance.rest.resource.conditionalDeleteConditionalDeleteStatusrequiredConditionalDeleteStatus
Conformance.rest.resource.searchParam.typeSearchParamTyperequiredSearchParamType
Conformance.rest.resource.searchParam.targetResourceTyperequiredResourceType
Conformance.rest.resource.searchParam.modifierSearchModifierCoderequiredSearchModifierCode
Conformance.rest.interaction.codeSystemRestfulInteractionrequiredSystemRestfulInteraction
Conformance.messaging.endpoint.protocolMessageTransportextensibleMessageTransport
Conformance.messaging.event.codeMessageEventpreferredMessageEvent
Conformance.messaging.event.categoryMessageSignificanceCategoryrequiredMessageSignificanceCategory
Conformance.messaging.event.modeConformanceEventModerequiredConformanceEventMode
Conformance.messaging.event.focusResourceTyperequiredResourceType
Conformance.document.modeDocumentModerequiredDocumentMode

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2ConformanceIf the resource is contained in another resource, it SHALL NOT contain nested Resources
XPath: not(parent::f:contained and f:contained)
dom-1ConformanceIf the resource is contained in another resource, it SHALL NOT contain any narrative
XPath: not(parent::f:contained and f:text)
dom-4ConformanceIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
XPath: not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated))
dom-3ConformanceIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource
XPath: not(exists(for $id in f:contained/*/@id return $id[not(ancestor::f:contained/parent::*/descendant::f:reference/@value=concat('#', $id))]))
cnf-8ConformanceThere can only be one REST declaration per mode
XPath: count(f:rest)=count(distinct-values(f:rest/f:mode/@value))
cnf-7ConformanceThe set of documents must be unique by the combination of profile & mode
XPath: count(f:document[f:mode/@value='producer'])=count(distinct-values(f:document[f:mode/@value='producer']/f:profile/f:reference/@value)) and count(f:document[f:mode/@value='consumer'])=count(distinct-values(f:document[f:mode/@value='consumer']/f:profile/f:reference/@value))
cnf-2ConformanceA Conformance statement SHALL have at least one of description, software, or implementation
XPath: count(f:software | f:implementation | f:description) > 0
cnf-3ConformanceMessaging end-point is required (and is only permitted) when statement is for an implementation
XPath: not(exists(f:messaging/f:endpoint)) or f:kind/@value = 'instance'
cnf-1ConformanceA Conformance statement SHALL have at least one of REST, messaging or document
XPath: exists(f:rest) or exists(f:messaging) or exists(f:document)
cnf-14ConformanceConformance statements of kind 'requirements' do not have software or implementation elements
XPath: not(exists(f:software) or exists(f:implementation)) or (f:kind/@value != 'requirements')
cnf-15ConformanceConformance statements of kind 'software' do not have implementation elements
XPath: not(exists(f:implementation)) or (f:kind/@value != 'capability')
cnf-9Conformance.restA given resource can only be described once per RESTful mode
XPath: count(f:resource)=count(distinct-values(f:resource/f:type/@value))
cnf-12Conformance.rest.resourceSearch parameter names must be unique in the context of a resource
XPath: count(f:searchParam)=count(distinct-values(f:searchParam/f:name/@value))
cnf-13Conformance.rest.resource.searchParamSearch parameters can only have chain names when the search parameter type is 'reference'
XPath: not(exists(f:chain)) or (f:type/@value = 'reference')
.