Cada vez que llama al método enXmlDocument.Save() inserta corchetes vacíos en declaración DOCTYPE
XmlDocument.Save(fooFilepath);
inserta dos corchetes al final de la etiqueta DOCTYPE, por ejemplo,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ARCXML SYSTEM "G:\ArcIMS\DTD\arcxml.dtd"[]>
¿Alguien sabe por qué esto podría pasar? Obviamente no quiero que esto suceda.
Los corchetes son el lugar donde se colocan las declaraciones de subconjuntos internos. Si no tiene tales declaraciones, los corchetes están vacíos y pueden omitirse. Pero no está mal tener paréntesis vacíos. Cualquier analizador de XML conforme a las normas debería ser capaz de tratar con la declaración de tipo de documento generado, por lo que el único problema que tiene es estético. – dtb
Después de verificar las implementaciones 'XmlWriter.WriteDocType()', me sorprende por qué un nuevo 'XDocumentType' con' internalSubset' establecido en 'null' da como resultado los corchetes vacíos vacíos. En mi caso, escribo a Response. Salida. Antes de llamar a 'Guardar()', confirmé que 'doc.DocumentType.InternalSubset' es nulo. Todas las implementaciones parecen omitir la salida '[]' pero en tiempo de ejecución está escrita en el XML por algo. –