Пример #1
0
        internal static void WriteTypedValue(this XmlWriter writer, object value, BindableDynamicObject.XmlSettings.DataTypeSchema typeSchema)
        {
            if (Convert.IsDBNull(value))
            {
                value = null;
            }

            switch (typeSchema)
            {
            case BindableDynamicObject.XmlSettings.DataTypeSchema.Xsd:
                _XsdDataContractSerializer.WriteObjectContent(writer, value);
                break;

            case BindableDynamicObject.XmlSettings.DataTypeSchema.Net:
                _NetDataContractSerializer.WriteObjectContent(writer, value);
                break;

            default:
                if (value == null)
                {
                    writer.WriteAttributeString("nil", XmlSchema.InstanceNamespace, "true");
                }
                else
                {
                    writer.TryWriteValue(value);
                }
                break;
            }
        }
Пример #2
0
        public static void WriteElementValue(this XmlWriter writer, string localName, object value, bool emitNullValue = true,
                                             BindableDynamicObject.XmlSettings.DataTypeSchema typeSchema = BindableDynamicObject.XmlSettings.DataTypeSchema.None)
        {
            if (Convert.IsDBNull(value))
            {
                value = null;
            }

            if (emitNullValue || value != null)
            {
                writer.WriteStartElement(localName);
                writer.WriteTypedValue(value, typeSchema);
                writer.WriteEndElement();
            }
        }
Пример #3
0
        internal static void PrepareTypeNamespaceRoot(this XmlWriter writer, BindableDynamicObject.XmlSettings.DataTypeSchema typeSchema)
        {
            switch (typeSchema)
            {
            case BindableDynamicObject.XmlSettings.DataTypeSchema.Xsd:
                if (string.IsNullOrEmpty(writer.LookupPrefix(XmlSchema.Namespace)))
                {
                    writer.WriteAttributeString("xmlns", "x", null, XmlSchema.Namespace);
                }
                break;

            case BindableDynamicObject.XmlSettings.DataTypeSchema.Net:
                if (string.IsNullOrEmpty(writer.LookupPrefix(NsNet)))
                {
                    writer.WriteAttributeString("xmlns", "z", null, NsNet);
                }
                break;
            }
        }
Пример #4
0
        internal static void PrepareTypeNamespaceAttribute(this XmlWriter writer, string localName, string value, BindableDynamicObject.XmlSettings.DataTypeSchema typeSchema)
        {
            switch (typeSchema)
            {
            case BindableDynamicObject.XmlSettings.DataTypeSchema.Xsd:
                if (string.IsNullOrEmpty(writer.LookupPrefix(XmlSchema.Namespace)))
                {
                    writer.WriteAttributeString(localName, XmlSchema.Namespace, value);
                }
                break;

            case BindableDynamicObject.XmlSettings.DataTypeSchema.Net:
                if (string.IsNullOrEmpty(writer.LookupPrefix(NsNet)))
                {
                    writer.WriteAttributeString(localName, NsNet, value);
                }
                break;
            }
        }