public static string GetString(this XmlSchemaSet xmlSchemaSet) { if (xmlSchemaSet == null) { throw new ArgumentNullException(nameof(xmlSchemaSet)); } var settings = new XmlWriterSettings { Encoding = new UTF8Encoding(false, false), Indent = true, OmitXmlDeclaration = false }; string output; StringWriterExtended textWriter = null; XmlWriter xmlWriter = null; try { textWriter = new StringWriterExtended(Encoding.UTF8, CultureInfo.InvariantCulture); xmlWriter = XmlWriter.Create(textWriter, settings); foreach (XmlSchema s in xmlSchemaSet.Schemas()) { s.Write(xmlWriter); } output = textWriter.ToString(); } finally { if (xmlWriter != null) { #if NET45_OR_GREATER xmlWriter.Dispose(); #endif } else { textWriter?.Dispose(); } } return(output); }
public static string Transform(this XmlDocument xmlDocument, string xslt) { var xslCompiledTransform = new XslCompiledTransform(); using (TextReader textReader = new StringReader(xslt)) { using (XmlReader xmlReader = XmlReader.Create(textReader)) { try { xslCompiledTransform.Load(xmlReader); } catch (XsltException xsltException) { Tracer.Instance.TraceEvent(TraceEventType.Error, 0, xsltException.Message); } } } var results = new StringWriterExtended(Encoding.UTF8, CultureInfo.InvariantCulture); using (TextReader textReader = new StringReader(xmlDocument.OuterXml)) { using (XmlReader reader = XmlReader.Create(textReader)) { try { xslCompiledTransform.Transform(reader, null, results); } catch (XsltException xsltException) { Tracer.Instance.TraceEvent(TraceEventType.Error, 0, xsltException.Message); } } } return(results.ToString()); }