Example #1
0
        public void WritePrimitiveContents(object value, XmlSerializationHint xmlFormatHint)
        {
            JValue val;

            if (value == null)
            {
                val = null;
            }
            else if (value is bool)
            {
                val = new JValue(value);
            }
            else if (value is Int32 || value is Int16)
            {
                val = new JValue(value);
            }
            else if (value is decimal)
            {
                val = new JValue(value);
            }
            else
            {
                val = new JValue(PrimitiveTypeConverter.ConvertTo <string>(value));
            }

            if (_current is JArray)
            {
                ((JArray)_current).Add(val);
            }
            else if (_current is JProperty)
            {
                ((JProperty)_current).Value = val;
            }
        }
Example #2
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)
            {
                XElement xe = XElement.Parse(valueAsString);
                xe.Name = XHtml.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
                xw.WriteRaw(xe.ToString());
            }
            else
                throw new ArgumentException("Unsupported xmlFormatHint " + xmlFormatHint);
        }
        internal void Serialize(object value, XmlSerializationHint hint)
        {
            if (value != null)
            {
                var nativeType = value.GetType();

                if (nativeType.IsEnum())
                {
                    value = ((Enum)value).GetLiteral();
                }
            }

            _writer.WritePrimitiveContents(value, hint);
        }
        internal void Serialize(object value, XmlSerializationHint hint)
        {
            if (value != null)
            {
                var nativeType = value.GetType();

                if (nativeType.IsEnum())
                {
                    var enumMapping = _inspector.FindEnumMappingByType(nativeType);

                    if (enumMapping != null)
                        value = enumMapping.GetLiteral((Enum)value);
                }
            }

            _writer.WritePrimitiveContents(value, hint);
        }
        internal void Serialize(object value, XmlSerializationHint hint)
        {
            if (value != null)
            {
                var nativeType = value.GetType();

                if (nativeType.IsEnum())
                {
                    var enumMapping = _inspector.FindEnumMappingByType(nativeType);

                    if (enumMapping != null)
                    {
                        value = enumMapping.GetLiteral((Enum)value);
                    }
                }
            }

            _writer.WritePrimitiveContents(value, hint);
        }
Example #6
0
        public void WritePrimitiveContents(string name, Element value, XmlSerializationHint xmlFormatHint)
        {
            WriteStartElement(name);

            if (value is FhirBoolean)
            {
                jw.WriteValue(((FhirBoolean)value).Value);
            }
            else if (value is Integer)
            {
                jw.WriteValue(((Integer)value).Value);
            }
            else if (value is FhirDecimal)
            {
                jw.WriteValue(((FhirDecimal)value).Value);
            }
            else
            {
                jw.WriteValue(value.ToString());
            }
        }
Example #7
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 = SerializationUtil.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 #8
0
 public void WritePrimitiveContents(string name, Element value, XmlSerializationHint xmlFormatHint)
 {
     if (xmlFormatHint == XmlSerializationHint.Attribute)
     {
         writePrimitiveAttribute(name, value.ToString());
     }
     else if (xmlFormatHint == XmlSerializationHint.TextNode)
     {
         xw.WriteString(value.ToString());
     }
     else if (xmlFormatHint == XmlSerializationHint.XhtmlElement)
     {
         // Write xhtml directly into the output stream,
         // the xhtml <div> becomes part of the elements
         // of the type, just like the other FHIR elements
         xw.WriteRaw(value.ToString());
     }
     else
     {
         throw new ArgumentException("Unsupported xmlFormatHint " + xmlFormatHint);
     }
 }
        public void WritePrimitiveContents(object value, XmlSerializationHint xmlFormatHint)
        {
            JValue val;

            if (value == null)
                val = null;
            else if (value is bool)
                val = new JValue(value);
            else if (value is Int32 || value is Int16)
                val = new JValue(value);
            else if (value is decimal)
                val = new JValue(value);
            else
                val = new JValue(PrimitiveTypeConverter.ConvertTo<string>(value));

            if (_current is JArray)
                ((JArray)_current).Add(val);
            else if (_current is JProperty)
                ((JProperty)_current).Value = val;
        }
        public void WritePrimitiveContents(string name, Element value, XmlSerializationHint xmlFormatHint)
        {
            if (xmlFormatHint == XmlSerializationHint.Attribute)
                writePrimitiveAttribute(name, value.ToString());
            else if (xmlFormatHint == XmlSerializationHint.TextNode)
                xw.WriteString(value.ToString());
            else if (xmlFormatHint == XmlSerializationHint.XhtmlElement)
            {
                XNamespace xhtml = Support.Util.XHTMLNS;
                XElement xe = XElement.Parse(value.ToString());
                xe.Name = xhtml + 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
                xw.WriteRaw(xe.ToString());
            }
            else
                throw new ArgumentException("Unsupported xmlFormatHint " + xmlFormatHint);
        }