public static void WriteStartElement(this XmlWriter writer, XmlElementInfo xmlElementInfo) { if (string.IsNullOrEmpty(xmlElementInfo.NamespaceUri)) { writer.WriteStartElement(xmlElementInfo.Name); } else { var xmlNamespaceDescription = xmlElementInfo.NamespaceDescriptions?.FirstOrDefault(x => x.Uri == xmlElementInfo.NamespaceUri); if (xmlNamespaceDescription != null) { writer.WriteStartElement(xmlNamespaceDescription.Prefix, xmlElementInfo.Name, xmlElementInfo.NamespaceUri); } else { writer.WriteStartElement(xmlElementInfo.Name, xmlElementInfo.NamespaceUri); } } if (xmlElementInfo.NamespaceDescriptions != null) { foreach (var namespaceDescription in xmlElementInfo.NamespaceDescriptions) { writer.WriteAttributeString("xmlns", namespaceDescription.Prefix, null, namespaceDescription.Uri); } } }
public static void WriteStartAttribute(this XmlWriter writer, XmlElementInfo xmlElementInfo) { if (string.IsNullOrEmpty(xmlElementInfo.NamespaceUri)) { writer.WriteStartAttribute(xmlElementInfo.Name); } else { writer.WriteStartAttribute(xmlElementInfo.Name, xmlElementInfo.NamespaceUri); } }