Example #1
0
        public void WritePrimitiveContents(object value, XmlSerializationHint xmlFormatHint)
        {
            if (value == null)
            {
                throw Error.ArgumentNull("value", "There's no support for null values in Xml Fhir serialization");
            }

            if (xmlFormatHint == XmlSerializationHint.None)
            {
                xmlFormatHint = XmlSerializationHint.Attribute;
            }

            var valueAsString = PrimitiveTypeConverter.ConvertTo <string>(value);

            if (xmlFormatHint == XmlSerializationHint.Attribute)
            {
                xw.WriteAttributeString(_currentMemberName, valueAsString);
            }
            else if (xmlFormatHint == XmlSerializationHint.TextNode)
            {
                xw.WriteString(valueAsString);
            }
            else if (xmlFormatHint == XmlSerializationHint.XhtmlElement)
            {
                var      sanitized = FhirParser.SanitizeXml(valueAsString);
                XElement xe        = XElement.Parse(sanitized);
                xe.Name = XmlNs.XHTMLNS + xe.Name.LocalName;

                // Write xhtml directly into the output stream,
                // the xhtml <div> becomes part of the elements
                // of the type, just like the other FHIR elements
                var ready = xe.ToString();
                xw.WriteRaw(ready);
            }
            else
            {
                throw new ArgumentException("Unsupported xmlFormatHint " + xmlFormatHint);
            }
        }
Example #2
0
 internal static BundleEntry LoadEntry(string xml)
 {
     return(LoadEntry(FhirParser.XmlReaderFromString(xml)));
 }