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; } }
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(); } }
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; } }
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; } }