public unsafe static string CreateMediaLogXml(IntPtr *names, IntPtr *values) { IntPtr name_ptr; IntPtr value_ptr; StringBuilder result = new StringBuilder(); StringBuilder summary = new StringBuilder(); System.Xml.XmlWriterSettings settings = new System.Xml.XmlWriterSettings(); settings.OmitXmlDeclaration = true; System.Xml.XmlWriter writer = System.Xml.XmlWriter.Create(result, settings); for (int c = 0; names [c] != IntPtr.Zero; c++) { string value = Marshal.PtrToStringAnsi(values [c]).Replace(' ', '_'); if (string.IsNullOrEmpty(value)) { value = "-"; } summary.Append(value); summary.Append(" "); } summary.Length -= 1; writer.WriteStartElement("XML"); writer.WriteElementString("Summary", summary.ToString()); for (int c = 0; names [c] != IntPtr.Zero; c++) { string name = Marshal.PtrToStringAnsi(names [c]); string value = Marshal.PtrToStringAnsi(values [c]).Replace(' ', '_'); if (string.IsNullOrEmpty(value)) { value = "-"; } writer.WriteElementString(name, value); } writer.WriteEndElement(); writer.Flush(); return(result.ToString()); }
public void Write(Mono.System.Xml.XmlWriter writer, Mono.System.Xml.XmlNamespaceManager namespaceManager) { XmlSerializerNamespaces nss = new XmlSerializerNamespaces(); if (namespaceManager != null) { foreach (string name in namespaceManager) { //xml and xmlns namespaces are added by default in namespaceManager. //So we should ignore them if (name != "xml" && name != "xmlns") { nss.Add(name, namespaceManager.LookupNamespace(name)); } } } if (Namespaces != null && Namespaces.Count > 0) { XmlQualifiedName [] qnames = Namespaces.ToArray(); foreach (XmlQualifiedName qn in qnames) { nss.Add(qn.Name, qn.Namespace); } string p = String.Empty; bool loop = true; for (int idx = 1; loop; idx++) { loop = false; foreach (XmlQualifiedName qn in qnames) { if (qn.Name == p) { p = "q" + idx; loop = true; break; } } } nss.Add(p, XmlSchema.Namespace); } if (nss.Count == 0) { // Add the xml schema namespace. (It is done // only when no entry exists in Namespaces). nss.Add("xs", XmlSchema.Namespace); if (TargetNamespace != null && TargetNamespace.Length != 0) { nss.Add("tns", TargetNamespace); } } XmlSchemaSerializer xser = new XmlSchemaSerializer(); XmlSerializerNamespaces backup = Namespaces; try { Namespaces = null; xser.Serialize(writer, this, nss); } finally { Namespaces = backup; } writer.Flush(); }
public override void Flush() { writer.Flush(); }