Сохранить DTD после преобразования XML - PullRequest
0 голосов
/ 07 мая 2010

Я преобразовываю документ XML, но после преобразования мое DTD исчезает, а также первая строка, которая сообщает, что версия XML отсутствует.

<?xml version="1.0"?>

Код, который я использую для преобразования XML-файла:

// Load the style sheet.
            var xslt = new XslCompiledTransform();
            xslt.Load("XSLTFile1.xslt");

            // Create the writer.
            var settings = new XmlWriterSettings
                            {
                                Indent = true,
                                IndentChars = "\t",
                                ConformanceLevel = ConformanceLevel.Auto,
                                Encoding = Encoding.UTF8,
                            };

            var mydoc = XDocument.Load("Doc1.xml"); 

            var writer = XmlWriter.Create("Doc2.xml", settings);

            // Execute the transform and output the results to a file.
            if (writer != null)
            {
                xslt.Transform(mydoc.CreateReader(), writer);
                writer.Close();
            }

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 07 мая 2010

эй, спасибо за ответ. Я сделал

writer.WriteDocType(mydoc.DocumentType.Name, mydoc.DocumentType.PublicId, mydoc.DocumentType.SystemId, mydoc.DocumentType.InternalSubset); 

И это сработало. Да, у меня также есть

OmitXmlDeclaration = false,

Спасибо

0 голосов
/ 07 мая 2010

Чтобы сохранить декларацию XML, вам необходимо убедиться, что в XmlWriterSettings установлено, что OmitXmlDeclaration установлено на false:

var settings = new XmlWriterSettings
                   {
                     Indent = true,
                     IndentChars = "\t",
                     ConformanceLevel = ConformanceLevel.Auto,
                     Encoding = Encoding.UTF8,
                     OmitXmlDeclaration = false,
                    };

Что касается DTD, "уходящего" - поскольку вы преобразуете документ, вы должны добавить новую декларацию DTD в преобразованный документ.

Без файлов xsl и xml трудно сказать наверняка. Вы можете отредактировать свой вопрос и добавить его?

...