¿Cuál es la forma más rápida de verificar mediante programación la buena formación de los archivos XML en C #?

Tengo grandes lotes de archivos XHTML que se actualizan manualmente. Durante la fase de revisión de las actualizaciones, me gustaría verificar mediante programación la buena forma de los archivos. Actualmente estoy usando una XmlReader, pero el tiempo requerido en una CPU promedio es mucho más largo de lo que esperaba.

Los archivos XHTML varían en tamaño de 4KB a 40KB y la verificación lleva varios segundos por archivo. La comprobación es esencial, pero me gustaría mantener el tiempo lo más corto posible mientras se realiza la comprobación mientras se leen los archivos en el siguiente paso del proceso.

¿Existe una forma más rápida de hacer una simple comprobación de formabilidad XML? ¿Quizás utilizando bibliotecas XML externas?

Puedo confirmar que validar el contenido basado en XML "normal" es muy rápido usando XmlReader, y como se sugiere, el problema parece estar relacionado con el hecho de que XHTML DTD se lee cada vez que se valida un archivo.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Tenga en cuenta que, además de la DTD, también se descargan los archivos .ent correspondientes (xhtml-lat1.ent, xhtml-symbol.ent, xhtml-special.ent).

Desde que ignorar completamente la DTD no es realmente una opción para XHTML, ya que la buena formación está estrechamente vinculada a las entidades HTML permitidas (por ejemplo, a & nbsp; introducirá rápidamente errores de validación cuando ignoremos la DTD).

El problema se resolvió utilizando uncustom XmlResolver como se sugiere, en combinación con copias locales (incrustadas) de los archivos DTD y de entidad.

ublicaré la solución aquí una vez que limpie el código

Respuestas a la pregunta(6)

Su respuesta a la pregunta