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); } }
internal static BundleEntry LoadEntry(string xml) { return(LoadEntry(FhirParser.XmlReaderFromString(xml))); }