Release 5

This page is part of the FHIR Specification (v5.0.0: R5 - STU). This is the current published version. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4

Example StructureDefinition/Expression (XML)

Modeling and Methodology Work GroupMaturity Level: N/AStandards Status: Informative

Raw XML (canonical form + also see XML Format Specification)

StructureDefinition for Expression

<?xml version="1.0" encoding="UTF-8"?>

<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Expression"/> 
  <text> 
    <status value="generated"/> 
    <div xmlns="http://www.w3.org/1999/xhtml">
      <table border="0" cellpadding="0" cellspacing="0" style="border: 0px #F0F0F0 solid; font-size: 11px; font-family: verdana; vertical-align:
       top;">
        <tr style="border: 1px #F0F0F0 solid; font-size: 11px; font-family: verdana; vertical-align:
         top">
          <th class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="The logical name of the element">Name</a> 
          </th> 
          <th class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Information about the use of the element">Flags</a> 
          </th> 
          <th class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Minimum and Maximum # of times the the element can appear in the instance">Card.</a> 
          </th> 
          <th class="hierarchy" style="width: 100px">
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Reference to the type of the element">Type</a> 
          </th> 
          <th class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Additional information about the element">Description &amp; Constraints</a> 
            <span style="float: right">
              <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Legend for this format">
                <img alt="doco" src="data:(snipped in html view)" style="background-color: inherit"/> 
              </a> 
            </span> 
          </th> 
        </tr> 
        <tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color:
         white">
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(data:image/png;bas
          e64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAACCAYAAACg/LjIAAAAJUlEQVR4Xu3IIQEAAAgDsHd9/w4EQIOamFnaBgAA4M
          MKAACAKwNp30CqZFfFmwAAAABJRU5ErkJggg==)">
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: white; background-color: inherit" title="Element"/>  
            <a href="metadatatypes-definitions.html#Expression" title="Expression : A expression that is evaluated in a specified context and returns
             a value. The context of use of the expression must specify the context in which
             the expression is evaluated, and how the result of the expression is used.">Expression</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="elementdefinition-definitions.html#ElementDefinition.isSummary" style="padding-left: 3px; padding-right: 3px; color: black; null" title="This element is included in summaries">Σ</a> 
            <a href="versions.html#std-process" style="padding-left: 3px; padding-right: 3px; border: 1px grey solid; font-weight: bold;
             color: black; background-color: #fff5e6" title="Standards Status = Trial Use">TU</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px"/> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="types.html#Element">Element</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">An expression that can be used to generate a value
            <br/>  
            <span style="font-style: italic" title="exp-1">+ Rule: An expression or a reference must be provided</span> 
            <br/>  
            <span style="font-style: italic" title="exp-2">+ Rule: The name must be a valid variable name in most computer languages</span> 
            <br/>  
            <br/>  Elements defined in Ancestors: 
            <a href="types.html#Element" title="Unique id for the element within a resource (for internal references). This may
             be any string value that does not contain spaces.">id</a> , 
            <a href="types.html#Element" title="May be used to represent additional information that is not part of the basic definition
             of the element. To make the use of extensions safe and managable, there is a strict
             set of governance applied to the definition and use of extensions. Though any implementer
             can define an extension, there is a set of requirements that SHALL be met as part
             of the definition of the extension.">extension</a> 
          </td> 
        </tr> 

        <tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color:
         #F7F7F7">
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image:
           url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAACCAYAAACg/LjIAAAALUlEQVR4Xu3IoREAIAw
          EwfT6/ddA0GBAxO3NrLlKUj9263wAAAAvrgEAADClAVWFQIBRHMicAAAAAElFTkSuQmCC)">
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type"/>  
            <a href="metadatatypes-definitions.html#Expression.description" title="Expression.description : A brief, natural language description of the condition
             that effectively communicates the intended semantics.">description</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">
            <a href="elementdefinition-definitions.html#ElementDefinition.isSummary" style="padding-left: 3px; padding-right: 3px; color: black; null" title="This element is included in summaries">Σ</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">0..1</td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">Natural language description of the condition
            <br/>  
          </td> 
        </tr> 

        <tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color:
         white">
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(data:image/png;bas
          e64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAACCAYAAACg/LjIAAAALUlEQVR4Xu3IoREAIAwEwfT6/ddA0GBAxO3NrLlKUj
          9263wAAAAvrgEAADClAVWFQIBRHMicAAAAAElFTkSuQmCC)">
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: white; background-color: inherit" title="Primitive Data Type"/>  
            <a href="metadatatypes-definitions.html#Expression.name" title="Expression.name : A short name assigned to the expression to allow for multiple
             reuse of the expression in the context where it is defined.">name</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="elementdefinition-definitions.html#ElementDefinition.isSummary" style="padding-left: 3px; padding-right: 3px; color: black; null" title="This element is included in summaries">Σ</a> 
            <a href="conformance-rules.html#constraints" style="padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold;
             color: #301212; background-color: #fdf4f4;" title="This element has or is affected by some invariants">C</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">0..1</td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="datatypes.html#code">code</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">Short name assigned to expression for reuse
            <br/>  
          </td> 
        </tr> 

        <tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color:
         #F7F7F7">
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image:
           url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAACCAYAAACg/LjIAAAALUlEQVR4Xu3IoREAIAw
          EwfT6/ddA0GBAxO3NrLlKUj9263wAAAAvrgEAADClAVWFQIBRHMicAAAAAElFTkSuQmCC)">
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type"/>  
            <a href="metadatatypes-definitions.html#Expression.language" title="Expression.language : The media type of the language for the expression.">language</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">
            <a href="elementdefinition-definitions.html#ElementDefinition.isSummary" style="padding-left: 3px; padding-right: 3px; color: black; null" title="This element is included in summaries">Σ</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">0..1</td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">
            <a href="datatypes.html#code">code</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">text/cql | text/fhirpath | application/x-fhir-query | etc.
            <br/>  Binding: 
            <a href="valueset-expression-language.html" title="The media type of the expression language.">Expression Language</a>  (
            <a href="terminologies.html#extensible" title="To be conformant, the concept in this element SHALL be from the specified value
             set if any of the codes within the value set can apply to the concept being communicated.
              If the value set does not cover the concept (based on human review), alternate
             codings (or, data type allowing, text) may be included instead.">Extensible</a> )
            <table class="grid">
              <tr> 
                <td style="font-size: 11px">
                  <b> Additional Bindings</b> 
                </td> 
                <td style="font-size: 11px">Purpose</td> 
              </tr> 
              <tr> 
                <td style="font-size: 11px">
                  <a href="valueset-mimetypes.html" title="http://hl7.org/fhir/ValueSet/mimetypes">Mime Types</a> 
                </td> 
                <td style="font-size: 11px">
                  <a href="valueset-additional-binding-purpose.html#additional-binding-purpose-maximum" title="A required binding, for use when the binding strength is 'extensible' or 'preferred'">Max Binding</a> 
                </td> 
              </tr> 
            </table> 
            <br/>  
          </td> 
        </tr> 

        <tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color:
         white">
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(data:image/png;bas
          e64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAACCAYAAACg/LjIAAAALUlEQVR4Xu3IoREAIAwEwfT6/ddA0GBAxO3NrLlKUj
          9263wAAAAvrgEAADClAVWFQIBRHMicAAAAAElFTkSuQmCC)">
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: white; background-color: inherit" title="Primitive Data Type"/>  
            <a href="metadatatypes-definitions.html#Expression.expression" title="Expression.expression : An expression in the specified language that returns a
             value.">expression</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="elementdefinition-definitions.html#ElementDefinition.isSummary" style="padding-left: 3px; padding-right: 3px; color: black; null" title="This element is included in summaries">Σ</a> 
            <a href="conformance-rules.html#constraints" style="padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold;
             color: #301212; background-color: #fdf4f4;" title="This element has or is affected by some invariants">C</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">0..1</td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">
            <a href="datatypes.html#string">string</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: white; border: 0px #F0F0F0
           solid; padding:0px 4px 0px 4px">Expression in specified language
            <br/>  
          </td> 
        </tr> 

        <tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color:
         #F7F7F7">
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image:
           url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAACCAYAAACg/LjIAAAAJUlEQVR4Xu3IIQEAAAg
          DsHd9/w4EQIOamFnaBgAA4MMKAACAKwNp30CqZFfFmwAAAABJRU5ErkJggg==)">
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: inherit"/> 
            <img alt="." class="hierarchy" src="data:(snipped in html view)" style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type"/>  
            <a href="metadatatypes-definitions.html#Expression.reference" title="Expression.reference : A URI that defines where the expression is found.">reference</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">
            <a href="elementdefinition-definitions.html#ElementDefinition.isSummary" style="padding-left: 3px; padding-right: 3px; color: black; null" title="This element is included in summaries">Σ</a> 
            <a href="conformance-rules.html#constraints" style="padding-left: 3px; padding-right: 3px; border: 1px maroon solid; font-weight: bold;
             color: #301212; background-color: #fdf4f4;" title="This element has or is affected by some invariants">C</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">0..1</td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">
            <a href="datatypes.html#uri">uri</a> 
          </td> 
          <td class="hierarchy" style="vertical-align: top; text-align : left; background-color: #F7F7F7; border: 0px
           #F0F0F0 solid; padding:0px 4px 0px 4px">Where the expression is found
            <br/>  
          </td> 
        </tr> 

        <tr> 
          <td class="hierarchy" colspan="5">
            <br/>  
            <a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Legend for this format">
              <img alt="doco" src="data:(snipped in html view)" style="background-color: inherit"/>  Documentation for this format
            </a> 
          </td> 
        </tr> 
      </table> 
    </div> 
  </text> 
  <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
    <valueCode value="trial-use"/> 
  </extension> 
  <url value="http://hl7.org/fhir/StructureDefinition/Expression"/> 
  <version value="5.0.0"/> 
  <name value="Expression"/> 
  <status value="draft"/> 
  <experimental value="false"/> 
  <date value="2023-03-26T15:21:02+11:00"/> 
  <publisher value="HL7 FHIR Standard"/> 
  <contact> 
    <telecom> 
      <system value="url"/> 
      <value value="http://hl7.org/fhir"/> 
    </telecom> 
  </contact> 
  <description value="Expression Type: A expression that is evaluated in a specified context and returns
   a value. The context of use of the expression must specify the context in which
   the expression is evaluated, and how the result of the expression is used."/> 
  <jurisdiction> 
    <coding> 
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/> 
      <code value="001"/> 
      <display value="World"/> 
    </coding> 
  </jurisdiction> 
  <fhirVersion value="5.0.0"/> 
  <mapping> 
    <identity value="rim"/> 
    <uri value="http://hl7.org/v3"/> 
    <name value="RIM Mapping"/> 
  </mapping> 
  <kind value="complex-type"/> 
  <abstract value="false"/> 
  <type value="Expression"/> 
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/DataType"/> 
  <derivation value="specialization"/> 
  <snapshot> 
    <element id="Expression">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
        <valueCode value="trial-use"/> 
      </extension> 
      <path value="Expression"/> 
      <short value="An expression that can be used to generate a value"/> 
      <definition value="A expression that is evaluated in a specified context and returns a value. The
       context of use of the expression must specify the context in which the expression
       is evaluated, and how the result of the expression is used."/> 
      <min value="0"/> 
      <max value="*"/> 
      <base> 
        <path value="Expression"/> 
        <min value="0"/> 
        <max value="*"/> 
      </base> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <constraint> 
        <key value="exp-1"/> 
        <severity value="error"/> 
        <human value="An expression or a reference must be provided"/> 
        <expression value="expression.exists() or reference.exists()"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Expression"/> 
      </constraint> 
      <constraint> 
        <key value="exp-2"/> 
        <severity value="error"/> 
        <human value="The name must be a valid variable name in most computer languages"/> 
        <expression value="name.hasValue() implies name.matches('[A-Za-z][A-Za-z0-9\\_]{0,63}')"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Expression"/> 
      </constraint> 
      <isModifier value="false"/> 
      <mapping> 
        <identity value="rim"/> 
        <map value="n/a"/> 
      </mapping> 
    </element> 
    <element id="Expression.id">
      <path value="Expression.id"/> 
      <representation value="xmlAttr"/> 
      <short value="Unique id for inter-element referencing"/> 
      <definition value="Unique id for the element within a resource (for internal references). This may
       be any string value that does not contain spaces."/> 
      <min value="0"/> 
      <max value="1"/> 
      <base> 
        <path value="Element.id"/> 
        <min value="0"/> 
        <max value="1"/> 
      </base> 
      <!--  Note: special primitive values have a FHIRPath system type. e.g. this is compiler
       magic (j)  -->
      <type> 
        <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type">
          <valueUrl value="id"/> 
        </extension> 
        <code value="http://hl7.org/fhirpath/System.String"/> 
      </type> 
      <condition value="ele-1"/> 
      <isModifier value="false"/> 
      <isSummary value="false"/> 
      <mapping> 
        <identity value="rim"/> 
        <map value="n/a"/> 
      </mapping> 
    </element> 
    <element id="Expression.extension">
      <path value="Expression.extension"/> 
      <slicing> 
        <discriminator> 
          <type value="value"/> 
          <path value="url"/> 
        </discriminator> 
        <description value="Extensions are always sliced by (at least) url"/> 
        <rules value="open"/> 
      </slicing> 
      <short value="Additional content defined by implementations"/> 
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. To make the use of extensions safe and managable, there is a strict
       set of governance applied to the definition and use of extensions. Though any implementer
       can define an extension, there is a set of requirements that SHALL be met as part
       of the definition of the extension."/> 
      <comment value="There can be no stigma associated with the use of extensions by any application,
       project, or standard - regardless of the institution or jurisdiction that uses
       or defines the extensions.  The use of extensions is what allows the FHIR specification
       to retain a core level of simplicity for everyone."/> 
      <alias value="extensions"/> 
      <alias value="user content"/> 
      <min value="0"/> 
      <max value="*"/> 
      <base> 
        <path value="Element.extension"/> 
        <min value="0"/> 
        <max value="*"/> 
      </base> 
      <type> 
        <code value="Extension"/> 
      </type> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <constraint> 
        <key value="ext-1"/> 
        <severity value="error"/> 
        <human value="Must have either extensions or value[x], not both"/> 
        <expression value="extension.exists() != value.exists()"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Extension"/> 
      </constraint> 
      <isModifier value="false"/> 
      <isSummary value="false"/> 
      <mapping> 
        <identity value="rim"/> 
        <map value="n/a"/> 
      </mapping> 
    </element> 
    <element id="Expression.description">
      <path value="Expression.description"/> 
      <short value="Natural language description of the condition"/> 
      <definition value="A brief, natural language description of the condition that effectively communicates
       the intended semantics."/> 
      <min value="0"/> 
      <max value="1"/> 
      <base> 
        <path value="Expression.description"/> 
        <min value="0"/> 
        <max value="1"/> 
      </base> 
      <type> 
        <code value="string"/> 
      </type> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <isModifier value="false"/> 
      <isSummary value="true"/> 
    </element> 
    <element id="Expression.name">
      <extension url="http://hl7.org/fhir/tools/StructureDefinition/no-binding">
        <valueBoolean value="true"/> 
      </extension> 
      <path value="Expression.name"/> 
      <short value="Short name assigned to expression for reuse"/> 
      <definition value="A short name assigned to the expression to allow for multiple reuse of the expression
       in the context where it is defined."/> 
      <min value="0"/> 
      <max value="1"/> 
      <base> 
        <path value="Expression.name"/> 
        <min value="0"/> 
        <max value="1"/> 
      </base> 
      <type> 
        <code value="code"/> 
      </type> 
      <condition value="exp-2"/> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <isModifier value="false"/> 
      <isSummary value="true"/> 
    </element> 
    <element id="Expression.language">
      <path value="Expression.language"/> 
      <short value="text/cql | text/fhirpath | application/x-fhir-query | etc."/> 
      <definition value="The media type of the language for the expression."/> 
      <requirements value="The cardinality of this element is optional to allow text only as part of the authoring
       process.  However, in order to be executable, the expression element must be specified."/> 
      <min value="0"/> 
      <max value="1"/> 
      <base> 
        <path value="Expression.language"/> 
        <min value="0"/> 
        <max value="1"/> 
      </base> 
      <type> 
        <code value="code"/> 
      </type> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <isModifier value="false"/> 
      <isSummary value="true"/> 
      <binding> 
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/binding-definition">
          <valueString value="The media type of the expression language."/> 
        </extension> 
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ExpressionLanguage"/> 
        </extension> 
        <strength value="extensible"/> 
        <description value="The media type of the expression language."/> 
        <valueSet value="http://hl7.org/fhir/ValueSet/expression-language"/> 
        <additional> 
          <purpose value="maximum"/> 
          <valueSet value="http://hl7.org/fhir/ValueSet/mimetypes"/> 
        </additional> 
      </binding> 
    </element> 
    <element id="Expression.expression">
      <path value="Expression.expression"/> 
      <short value="Expression in specified language"/> 
      <definition value="An expression in the specified language that returns a value."/> 
      <comment value="If Expression.expression and Expression.reference are both present, the Expression.expression
       might just be a name pointing something within the referenced content."/> 
      <min value="0"/> 
      <max value="1"/> 
      <base> 
        <path value="Expression.expression"/> 
        <min value="0"/> 
        <max value="1"/> 
      </base> 
      <type> 
        <code value="string"/> 
      </type> 
      <condition value="exp-1"/> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <isModifier value="false"/> 
      <isSummary value="true"/> 
    </element> 
    <element id="Expression.reference">
      <path value="Expression.reference"/> 
      <short value="Where the expression is found"/> 
      <definition value="A URI that defines where the expression is found."/> 
      <comment value="If both a reference and an expression is found, the reference SHALL point to the
       same expression."/> 
      <min value="0"/> 
      <max value="1"/> 
      <base> 
        <path value="Expression.reference"/> 
        <min value="0"/> 
        <max value="1"/> 
      </base> 
      <type> 
        <code value="uri"/> 
      </type> 
      <condition value="exp-1"/> 
      <constraint> 
        <key value="ele-1"/> 
        <severity value="error"/> 
        <human value="All FHIR elements must have a @value or children"/> 
        <expression value="hasValue() or (children().count() &gt; id.count())"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Element"/> 
      </constraint> 
      <isModifier value="false"/> 
      <isSummary value="true"/> 
    </element> 
  </snapshot> 
  <differential> 
    <element id="Expression">
      <extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
        <valueCode value="trial-use"/> 
      </extension> 
      <path value="Expression"/> 
      <short value="An expression that can be used to generate a value"/> 
      <definition value="A expression that is evaluated in a specified context and returns a value. The
       context of use of the expression must specify the context in which the expression
       is evaluated, and how the result of the expression is used."/> 
      <min value="0"/> 
      <max value="*"/> 
      <constraint> 
        <key value="exp-2"/> 
        <severity value="error"/> 
        <human value="The name must be a valid variable name in most computer languages"/> 
        <expression value="name.hasValue() implies name.matches('[A-Za-z][A-Za-z0-9\\_]{0,63}')"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Expression"/> 
      </constraint> 
      <constraint> 
        <key value="exp-1"/> 
        <severity value="error"/> 
        <human value="An expression or a reference must be provided"/> 
        <expression value="expression.exists() or reference.exists()"/> 
        <source value="http://hl7.org/fhir/StructureDefinition/Expression"/> 
      </constraint> 
    </element> 
    <element id="Expression.description">
      <path value="Expression.description"/> 
      <short value="Natural language description of the condition"/> 
      <definition value="A brief, natural language description of the condition that effectively communicates
       the intended semantics."/> 
      <min value="0"/> 
      <max value="1"/> 
      <type> 
        <code value="string"/> 
      </type> 
      <isSummary value="true"/> 
    </element> 
    <element id="Expression.name">
      <extension url="http://hl7.org/fhir/tools/StructureDefinition/no-binding">
        <valueBoolean value="true"/> 
      </extension> 
      <path value="Expression.name"/> 
      <short value="Short name assigned to expression for reuse"/> 
      <definition value="A short name assigned to the expression to allow for multiple reuse of the expression
       in the context where it is defined."/> 
      <min value="0"/> 
      <max value="1"/> 
      <type> 
        <code value="code"/> 
      </type> 
      <condition value="exp-2"/> 
      <isSummary value="true"/> 
    </element> 
    <element id="Expression.language">
      <path value="Expression.language"/> 
      <short value="text/cql | text/fhirpath | application/x-fhir-query | etc."/> 
      <definition value="The media type of the language for the expression."/> 
      <requirements value="The cardinality of this element is optional to allow text only as part of the authoring
       process.  However, in order to be executable, the expression element must be specified."/> 
      <min value="0"/> 
      <max value="1"/> 
      <type> 
        <code value="code"/> 
      </type> 
      <isSummary value="true"/> 
      <binding> 
        <extension url="http://hl7.org/fhir/tools/StructureDefinition/binding-definition">
          <valueString value="The media type of the expression language."/> 
        </extension> 
        <extension url="http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName">
          <valueString value="ExpressionLanguage"/> 
        </extension> 
        <strength value="extensible"/> 
        <description value="The media type of the expression language."/> 
        <valueSet value="http://hl7.org/fhir/ValueSet/expression-language"/> 
        <additional> 
          <purpose value="maximum"/> 
          <valueSet value="http://hl7.org/fhir/ValueSet/mimetypes"/> 
        </additional> 
      </binding> 
    </element> 
    <element id="Expression.expression">
      <path value="Expression.expression"/> 
      <short value="Expression in specified language"/> 
      <definition value="An expression in the specified language that returns a value."/> 
      <comment value="If Expression.expression and Expression.reference are both present, the Expression.expression
       might just be a name pointing something within the referenced content."/> 
      <min value="0"/> 
      <max value="1"/> 
      <type> 
        <code value="string"/> 
      </type> 
      <condition value="exp-1"/> 
      <isSummary value="true"/> 
    </element> 
    <element id="Expression.reference">
      <path value="Expression.reference"/> 
      <short value="Where the expression is found"/> 
      <definition value="A URI that defines where the expression is found."/> 
      <comment value="If both a reference and an expression is found, the reference SHALL point to the
       same expression."/> 
      <min value="0"/> 
      <max value="1"/> 
      <type> 
        <code value="uri"/> 
      </type> 
      <condition value="exp-1"/> 
      <isSummary value="true"/> 
    </element> 
  </differential> 
</StructureDefinition> 

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.