コード例 #1
0
        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);
        }
コード例 #2
0
        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());
        }