Terminology Syndication Feed Implementation Guide
0.1.0 - ci-build International flag

Terminology Syndication Feed Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Logical Model: SyndicationLink - XML Profile

Draft as of 2026-05-09

XML representation of the syndication-link logical model.

Raw xml | Download


<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="syndication-link"/>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureDefinition syndication-link</b></p><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 style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px" class="hierarchy"><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 style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px" class="hierarchy"><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 style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px" class="hierarchy"><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Minimum and Maximum # of times the element can appear in the instance">Card.</a></th><th style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px; width: 100px" class="hierarchy"><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 style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; padding-top: 3px; padding-bottom: 3px" class="hierarchy"><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 src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goXBCwdPqAP0wAAAldJREFUOMuNk0tIlFEYhp9z/vE2jHkhxXA0zJCMitrUQlq4lnSltEqCFhFG2MJFhIvIFpkEWaTQqjaWZRkp0g26URZkTpbaaOJkDqk10szoODP//7XIMUe0elcfnPd9zsfLOYplGrpRwZaqTtw3K7PtGem7Q6FoidbGgqHVy/HRb669R+56zx7eRV1L31JGxYbBtjKK93cxeqfyQHbehkZbUkK20goELEuIzEd+dHS+qz/Y8PTSif0FnGkbiwcAjHaU1+QWOptFiyCLp/LnKptpqIuXHx6rbR26kJcBX3yLgBfnd7CxwJmflpP2wUg0HIAoUUpZBmKzELGWcN8nAr6Gpu7tLU/CkwAaoKTWRSQyt89Q8w6J+oVQkKnBoblH7V0PPvUOvDYXfopE/SJmALsxnVm6LbkotrUtNowMeIrVrBcBpaMmdS0j9df7abpSuy7HWehwJdt1lhVwi/J58U5beXGAF6c3UXLycw1wdFklArBn87xdh0ZsZtArghBdAA3+OEDVubG4UEzP6x1FOWneHh2VDAHBAt80IbdXDcesNoCvs3E5AFyNSU5nbrDPZpcUEQQTFZiEVx+51fxMhhyJEAgvlriadIJZZksRuwBYMOPBbO3hePVVqgEJhFeUuFLhIPkRP6BQLIBrmMenujm/3g4zc398awIe90Zb5A1vREALqneMcYgP/xVQWlG+Ncu5vgwwlaUNx+3799rfe96u9K0JSDXcOzOTJg4B6IgmXfsygc7/Bvg9g9E58/cDVmGIBOP/zT8Bz1zqWqpbXIsd0O9hajXfL6u4BaOS6SeWAAAAAElFTkSuQmCC" alt="doco" style="background-color: inherit"/></a></span></th></tr><tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck1.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_element.gif" alt="." style="background-color: white; background-color: inherit" title="Element" class="hierarchy"/> <a href="StructureDefinition-syndication-link-definitions.html#syndication-link" title="An Atom `⟨link⟩` element (RFC 4287 4.2.7) inside a syndication entry. The
core Atom attributes carry the artefact URL and media type; the
extension namespaces add file-level integrity and validation
metadata.

## Integrity

A consumer MUST be able to verify a downloaded artefact's integrity.
At least one of `md5Hash` or `sha256Hash` SHOULD be present on every
link whose `rel` is `alternate` or `related`. Where both are
present, `sha256Hash` is authoritative.

The hash is computed over the byte stream that `href` resolves to,
exactly as published — without any decompression or
content-encoding negotiation.

## Length

`length` is the byte count of that same stream. When present, it
MUST match what the `href` resolves to.">syndication-link</a><a name="syndication-link"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><span style="opacity: 0.5">0</span><span style="opacity: 0.5">..</span><span style="opacity: 0.5">*</span></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://build.fhir.org/types.html#Base">Base</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">Terminology Syndication Link<br/><span style="font-weight:bold">Instances of this logical model can be the target of a Reference</span></td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-syndication-link-definitions.html#syndication-link.rel" title="Link relation. `alternate` denotes the primary artefact; `related` denotes ancillary content (release notes, licence).">rel</a><a name="syndication-link.rel"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">1..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R4/datatypes.html#code">code</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">link relation (alternate | related)</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: white; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-syndication-link-definitions.html#syndication-link.type" title="Media type of the linked artefact (e.g. `application/zip`, `application/pdf`, `application/json`, `application/fhir+json`).">type</a><a name="syndication-link.type"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">1..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R4/datatypes.html#code">code</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">media type of the linked artefact</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-syndication-link-definitions.html#syndication-link.href" title="artefact download URL">href</a><a name="syndication-link.href"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">1..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R4/datatypes.html#uri">uri</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">artefact download URL</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: white; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-syndication-link-definitions.html#syndication-link.length" title="Artefact size in bytes. When present, MUST match the `href` resolution exactly.">length</a><a name="syndication-link.length"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">0..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R4/datatypes.html#unsignedInt">unsignedInt</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">artefact size in bytes</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-syndication-link-definitions.html#syndication-link.md5Hash" title="`sct:md5Hash`. Lowercase-hex MD5 of the artefact byte stream. 32 hex characters.">md5Hash</a><a name="syndication-link.md5Hash"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">0..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R4/datatypes.html#string">string</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">MD5 hash of the artefact byte stream (32 hex chars)</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: white"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck10.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: white; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-syndication-link-definitions.html#syndication-link.sha256Hash" title="`ncts:sha256Hash`. Lowercase-hex SHA-256 of the artefact byte stream. 64 hex characters. When both `md5Hash` and `sha256Hash` are present, `sha256Hash` is authoritative.">sha256Hash</a><a name="syndication-link.sha256Hash"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">0..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R4/datatypes.html#string">string</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: white; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">SHA-256 hash of the artefact byte stream (64 hex chars)</td></tr>
<tr style="border: 0px #F0F0F0 solid; padding:0px; vertical-align: top; background-color: #F7F7F7"><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px; white-space: nowrap; background-image: url(tbl_bck00.png)" class="hierarchy"><img src="tbl_spacer.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="tbl_vjoin_end.png" alt="." style="background-color: inherit" class="hierarchy"/><img src="icon_primitive.png" alt="." style="background-color: #F7F7F7; background-color: inherit" title="Primitive Data Type" class="hierarchy"/> <a href="StructureDefinition-syndication-link-definitions.html#syndication-link.validated" title="`onto:validated`. Asserts that the publisher has re-verified the artefact at `href` against `length` and any hash since it was last published. Absence is equivalent to `false`.">validated</a><a name="syndication-link.validated"> </a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"/><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">0..1</td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy"><a href="http://hl7.org/fhir/R4/datatypes.html#boolean">boolean</a></td><td style="vertical-align: top; text-align : var(--ig-left,left); background-color: #F7F7F7; border: 0px #F0F0F0 solid; padding:0px 4px 0px 4px" class="hierarchy">publisher has re-verified the artefact</td></tr>
<tr><td colspan="5" class="hierarchy"><br/><a href="https://build.fhir.org/ig/FHIR/ig-guidance/readingIgs.html#table-views" title="Legend for this format"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3goXBCwdPqAP0wAAAldJREFUOMuNk0tIlFEYhp9z/vE2jHkhxXA0zJCMitrUQlq4lnSltEqCFhFG2MJFhIvIFpkEWaTQqjaWZRkp0g26URZkTpbaaOJkDqk10szoODP//7XIMUe0elcfnPd9zsfLOYplGrpRwZaqTtw3K7PtGem7Q6FoidbGgqHVy/HRb669R+56zx7eRV1L31JGxYbBtjKK93cxeqfyQHbehkZbUkK20goELEuIzEd+dHS+qz/Y8PTSif0FnGkbiwcAjHaU1+QWOptFiyCLp/LnKptpqIuXHx6rbR26kJcBX3yLgBfnd7CxwJmflpP2wUg0HIAoUUpZBmKzELGWcN8nAr6Gpu7tLU/CkwAaoKTWRSQyt89Q8w6J+oVQkKnBoblH7V0PPvUOvDYXfopE/SJmALsxnVm6LbkotrUtNowMeIrVrBcBpaMmdS0j9df7abpSuy7HWehwJdt1lhVwi/J58U5beXGAF6c3UXLycw1wdFklArBn87xdh0ZsZtArghBdAA3+OEDVubG4UEzP6x1FOWneHh2VDAHBAt80IbdXDcesNoCvs3E5AFyNSU5nbrDPZpcUEQQTFZiEVx+51fxMhhyJEAgvlriadIJZZksRuwBYMOPBbO3hePVVqgEJhFeUuFLhIPkRP6BQLIBrmMenujm/3g4zc398awIe90Zb5A1vREALqneMcYgP/xVQWlG+Ncu5vgwwlaUNx+3799rfe96u9K0JSDXcOzOTJg4B6IgmXfsygc7/Bvg9g9E58/cDVmGIBOP/zT8Bz1zqWqpbXIsd0O9hajXfL6u4BaOS6SeWAAAAAElFTkSuQmCC" alt="doco" style="background-color: inherit"/> Documentation for this format</a></td></tr></table></div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics">
    <valueCode value="can-be-target"/>
  </extension>
  <url
       value="https://ontoserver.csiro.au/syndication/StructureDefinition/syndication-link"/>
  <version value="0.1.0"/>
  <name value="SyndicationLink"/>
  <title value="Terminology Syndication Link"/>
  <status value="draft"/>
  <date value="2026-05-09T20:23:33+00:00"/>
  <publisher value="Australian e-Health Research Centre"/>
  <contact>
    <name value="Australian e-Health Research Centre"/>
    <telecom>
      <system value="url"/>
      <value value="https://aehrc.csiro.au"/>
    </telecom>
  </contact>
  <contact>
    <name value="Michael Lawley"/>
    <telecom>
      <system value="email"/>
      <value value="michael.lawley@csiro.au"/>
    </telecom>
  </contact>
  <description
               value="An Atom `⟨link⟩` element (RFC 4287 4.2.7) inside a syndication entry. The
core Atom attributes carry the artefact URL and media type; the
extension namespaces add file-level integrity and validation
metadata.

## Integrity

A consumer MUST be able to verify a downloaded artefact's integrity.
At least one of `md5Hash` or `sha256Hash` SHOULD be present on every
link whose `rel` is `alternate` or `related`. Where both are
present, `sha256Hash` is authoritative.

The hash is computed over the byte stream that `href` resolves to,
exactly as published — without any decompression or
content-encoding negotiation.

## Length

`length` is the byte count of that same stream. When present, it
MUST match what the `href` resolves to."/>
  <fhirVersion value="4.0.1"/>
  <kind value="logical"/>
  <abstract value="false"/>
  <type
        value="https://ontoserver.csiro.au/syndication/StructureDefinition/syndication-link"/>
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Base"/>
  <derivation value="specialization"/>
  <snapshot>
    <extension
               url="http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version">
      <valueString value="4.0.1"/>
    </extension>
    <element id="syndication-link">
      <path value="syndication-link"/>
      <short value="Terminology Syndication Link"/>
      <definition
                  value="An Atom `⟨link⟩` element (RFC 4287 4.2.7) inside a syndication entry. The
core Atom attributes carry the artefact URL and media type; the
extension namespaces add file-level integrity and validation
metadata.

## Integrity

A consumer MUST be able to verify a downloaded artefact's integrity.
At least one of `md5Hash` or `sha256Hash` SHOULD be present on every
link whose `rel` is `alternate` or `related`. Where both are
present, `sha256Hash` is authoritative.

The hash is computed over the byte stream that `href` resolves to,
exactly as published — without any decompression or
content-encoding negotiation.

## Length

`length` is the byte count of that same stream. When present, it
MUST match what the `href` resolves to."/>
      <min value="0"/>
      <max value="*"/>
      <base>
        <path value="Base"/>
        <min value="0"/>
        <max value="*"/>
      </base>
      <isModifier value="false"/>
    </element>
    <element id="syndication-link.rel">
      <path value="syndication-link.rel"/>
      <short value="link relation (alternate | related)"/>
      <definition
                  value="Link relation. `alternate` denotes the primary artefact; `related` denotes ancillary content (release notes, licence)."/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="syndication-link.rel"/>
        <min value="1"/>
        <max value="1"/>
      </base>
      <type>
        <code value="code"/>
      </type>
    </element>
    <element id="syndication-link.type">
      <path value="syndication-link.type"/>
      <short value="media type of the linked artefact"/>
      <definition
                  value="Media type of the linked artefact (e.g. `application/zip`, `application/pdf`, `application/json`, `application/fhir+json`)."/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="syndication-link.type"/>
        <min value="1"/>
        <max value="1"/>
      </base>
      <type>
        <code value="code"/>
      </type>
    </element>
    <element id="syndication-link.href">
      <path value="syndication-link.href"/>
      <short value="artefact download URL"/>
      <definition value="artefact download URL"/>
      <min value="1"/>
      <max value="1"/>
      <base>
        <path value="syndication-link.href"/>
        <min value="1"/>
        <max value="1"/>
      </base>
      <type>
        <code value="uri"/>
      </type>
    </element>
    <element id="syndication-link.length">
      <path value="syndication-link.length"/>
      <short value="artefact size in bytes"/>
      <definition
                  value="Artefact size in bytes. When present, MUST match the `href` resolution exactly."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="syndication-link.length"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="unsignedInt"/>
      </type>
    </element>
    <element id="syndication-link.md5Hash">
      <path value="syndication-link.md5Hash"/>
      <short value="MD5 hash of the artefact byte stream (32 hex chars)"/>
      <definition
                  value="`sct:md5Hash`. Lowercase-hex MD5 of the artefact byte stream. 32 hex characters."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="syndication-link.md5Hash"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="syndication-link.sha256Hash">
      <path value="syndication-link.sha256Hash"/>
      <short value="SHA-256 hash of the artefact byte stream (64 hex chars)"/>
      <definition
                  value="`ncts:sha256Hash`. Lowercase-hex SHA-256 of the artefact byte stream. 64 hex characters. When both `md5Hash` and `sha256Hash` are present, `sha256Hash` is authoritative."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="syndication-link.sha256Hash"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="syndication-link.validated">
      <path value="syndication-link.validated"/>
      <short value="publisher has re-verified the artefact"/>
      <definition
                  value="`onto:validated`. Asserts that the publisher has re-verified the artefact at `href` against `length` and any hash since it was last published. Absence is equivalent to `false`."/>
      <min value="0"/>
      <max value="1"/>
      <base>
        <path value="syndication-link.validated"/>
        <min value="0"/>
        <max value="1"/>
      </base>
      <type>
        <code value="boolean"/>
      </type>
    </element>
  </snapshot>
  <differential>
    <element id="syndication-link">
      <path value="syndication-link"/>
      <short value="Terminology Syndication Link"/>
      <definition
                  value="An Atom `⟨link⟩` element (RFC 4287 4.2.7) inside a syndication entry. The
core Atom attributes carry the artefact URL and media type; the
extension namespaces add file-level integrity and validation
metadata.

## Integrity

A consumer MUST be able to verify a downloaded artefact's integrity.
At least one of `md5Hash` or `sha256Hash` SHOULD be present on every
link whose `rel` is `alternate` or `related`. Where both are
present, `sha256Hash` is authoritative.

The hash is computed over the byte stream that `href` resolves to,
exactly as published — without any decompression or
content-encoding negotiation.

## Length

`length` is the byte count of that same stream. When present, it
MUST match what the `href` resolves to."/>
    </element>
    <element id="syndication-link.rel">
      <path value="syndication-link.rel"/>
      <short value="link relation (alternate | related)"/>
      <definition
                  value="Link relation. `alternate` denotes the primary artefact; `related` denotes ancillary content (release notes, licence)."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
    </element>
    <element id="syndication-link.type">
      <path value="syndication-link.type"/>
      <short value="media type of the linked artefact"/>
      <definition
                  value="Media type of the linked artefact (e.g. `application/zip`, `application/pdf`, `application/json`, `application/fhir+json`)."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
    </element>
    <element id="syndication-link.href">
      <path value="syndication-link.href"/>
      <short value="artefact download URL"/>
      <definition value="artefact download URL"/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
    </element>
    <element id="syndication-link.length">
      <path value="syndication-link.length"/>
      <short value="artefact size in bytes"/>
      <definition
                  value="Artefact size in bytes. When present, MUST match the `href` resolution exactly."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="unsignedInt"/>
      </type>
    </element>
    <element id="syndication-link.md5Hash">
      <path value="syndication-link.md5Hash"/>
      <short value="MD5 hash of the artefact byte stream (32 hex chars)"/>
      <definition
                  value="`sct:md5Hash`. Lowercase-hex MD5 of the artefact byte stream. 32 hex characters."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="syndication-link.sha256Hash">
      <path value="syndication-link.sha256Hash"/>
      <short value="SHA-256 hash of the artefact byte stream (64 hex chars)"/>
      <definition
                  value="`ncts:sha256Hash`. Lowercase-hex SHA-256 of the artefact byte stream. 64 hex characters. When both `md5Hash` and `sha256Hash` are present, `sha256Hash` is authoritative."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element id="syndication-link.validated">
      <path value="syndication-link.validated"/>
      <short value="publisher has re-verified the artefact"/>
      <definition
                  value="`onto:validated`. Asserts that the publisher has re-verified the artefact at `href` against `length` and any hash since it was last published. Absence is equivalent to `false`."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
  </differential>
</StructureDefinition>