Estoy construyendo un Validador XML usando C #. Tengo un XML y DTD guardados en la misma carpeta. Me sale un error, “no puede tener múltiples DTD”. ¿Cómo resuelvo esto?

¿Qué sucede si elimina la declaración doctype del documento XML?

¿O eliminar / anular el parámetro DTD (@ “D: \ CMM_Checker_Docs \ book.dtd”) del constructor XmlParserContext?

Mi * sensación * es que hay un conflicto entre la identificación del sistema
en el doctype del documento XML (<! DOCTYPE book SYSTEM “book.dtd” >) y el argumento dtd que está pasando al constructor XmlParserContext. Pero ha pasado tanto tiempo desde que tuve que lidiar con cosas XML y es muy tarde por la noche para mí. La identificación del sistema en el documento XML ya dice dónde está el DTD (en relación con el documento, la misma carpeta), pero está pasando una ubicación diferente al constructor XmlParserContext. Básicamente, creo que necesitas uno u otro, pero no ambos.

En realidad, ¿necesitas usar ese XmlParserContext? Como está analizando un documento completo, no solo un fragmento, no necesita proporcionar el contexto adicional. Solo usa uno de los otros XmlReader. Crea sobrecargas, como

Create(string, XmlReaderSettings)