This page is part of the FHIR Specification (v0.0.82: DSTU 1). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

1.12.5.1 XML

The XML syntax is closely based on the XML notation:

 <name xmlns="http://hl7.org/fhir" (attrA="value")>   doco
   <nameA><!-- 1..1 type description of content  --><nameA>
   <nameB[x]><!-- 0..1 type1|type1 description  --></nameB>
   <nameC> <!--  1..* -->
     <nameD><!-- 1..1 type>Relevant records  --></nameD>
   </nameC>
 <name>

Notes:

When represented as XML, resources may be validated by schema and schematron (see below), but operational systems are not required to do so (though the XML SHALL always be valid against this specification and the schema and Schematron).

1.12.5.1.1 Atom Bundle Representation

In XML bundles are represented using an Atom format (http://tools.ietf.org/html/rfc4287), following this template:

<feed xmlns="http://www.w3.org/2005/Atom">  doco
  <title><!-- 1..1 string Text statement of purpose --></title>
  <id><!-- 1..1 uri Unique URI for this bundle --></id>
  <link rel="self" href="[building application url (Service base on REST)]"/><!-- 0..1 -->
  <link rel="first" href="[paging: url for first page of result]"/><!-- 0..1 -->
  <link rel="previous" href="[paging: url for previous page of result]"/><!-- 0..1 -->
  <link rel="next" href="[paging: url for next page of result]"/><!-- 0..1 -->
  <link rel="last" href="[paging: url for last page of result]"/><!-- 0..1 -->
  <link rel="fhir-base" href="[base path to resolve local urls in this bundle]"/><!-- 0..1 -->
  <os:totalResults xmlns:os="http://a9.com/-/spec/opensearch/1.1/"><!-- 0..1 integer 
              Paging: the total number of results --></os:totalResults>
  <updated><!-- 1..1 instant When the bundle was built --></updated>
  <author><!-- 0..1 Who created resource? -->
      <name><!-- 1..1 string Name of Human or Device that authored the resource --></name>
      <uri><!-- 0..1 uri Link to the resource for the author --></uri>
  </author>
  <category term="[Tag Term]" label="[Tag Label]" scheme="[Tag Scheme]"/> <!-- 0..* -->
  <entry><!-- Zero+ -->
    <title><!-- 1..1 string Text summary of resource content --></title>
    <id><!-- 1..1 uri Logical Id (URI) for this resource --></id>
    <link rel="self" href="Version Specific reference to Resource"><!-- 0..1 --></link>
    <updated><!-- 1..1 instant Last Updated for resource --></updated>
    <published><!-- 0..1 instant Time resource copied into the feed --></published>
    <author><!-- 0..1 Who created resource? -->
      <name><!-- 1..1 string Name of Human or Device that authored the resource --></name>
      <uri><!-- 0..1 uri Link to the resource for the author --></uri>
    </author>      
    <!-- Tags affixed to the resource (0..*):   --> 
	<category term="[Tag Term]" label="[Tag Label]" scheme="[Tag Scheme]"/> <!-- 0..* -->
    <content type="text/xml"><!-- 0..1 -->
      <[ResourceName] xmlns="http://hl7.org/fhir">
        <!-- Content for the resource -->
      </[ResourceName]>
    </content>
    <summary type="xhtml"><!-- 0..1 -->
      <div xmlns="http://www.w3.org/1999/xhtml"><!-- Narrative from resource --></div>
    </summary>
  </entry>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <!-- 0..1 Enveloped Digital Signature (see Atom section 5.1) -->
  </Signature>
</feed>

1.12.5.1.1.1 Notes

1.12.5.1.1.2 Bundling versions - deletion

When returning a set of resources or versions of a resource, an entry might indicate that the entry has been deleted. Deleted resources are represented in an atom feed as defined by rfc6721.txt:

<feed xmlns="http://www.w3.org/2005/Atom">  doco
  ... feed elements and other entries ...
  <at:deleted-entry xmlns:at="http://purl.org/atompub/tombstones/1.0"
      ref="[Logical Id for deleted resource]" when="instant [when deleted]">
    <link rel="self" href="[Version Specific reference to Resource]"><!-- 0..1 --></link>
  </at:deleted-entry>
  ... other entries ...

A deleted resource returns a 410 Gone error if it is accessed through the RESTful interface.

1.12.5.1.2 Implementation Notes

1.12.5.1.2.1 Binary Resources

When a binary resource is represented as XML in an atom feed, it is represented as base64 encoded content along with a content-type, which is the mime-type as it would be specified in HTTP:

 <Binary xmlns="http://hl7.org/fhir" contentType="[mime type]">  doco
   [Base64 Content]
 </Binary>

Binary resources can also be embedded as contained resources. If there is a desire to capture metadata about a binary object, an appropriate resource type must be used such as DocumentReference or Media.

1.12.5.1.3 XML Schema and Schematron

This specification provides schema definitions for all of the content models described here. The base schema is called "fhir-base.xsd" and defines all of the datatypes and also the base infrastructure types described on this page. In addition, there is a schema for each resource and a common schema fhir-all.xsd that includes all the resource schemas. A customized atom schema fhir-atom.xsd is provided for validating bundles.

In addition to the w3c schema files, this specification also provides Schematron files that enforce the various constraints defined for the datatypes and resources. These are packaged as files for each resource as well as a combined fhir-atom.sch file that incorporates the rules for all resources.

XML that is exchanged SHALL be valid against the w3c schema and Schematron, though being valid against the schema and Schematron is not sufficient to be a conformant instance: this specification makes several rules that cannot be checked by either mechanism. Exchanged content SHALL not specify the schema or even the schema instance namespace in the resource itself.


comments powered by Disqus