У вас будут проблемы с отключением внешних ссылок, если анализируемый XML использует объекты, определенные в ссылочном DTD:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE sample SYSTEM "./sample.dtd">
<root>&text;</root>
, где &text;
определено в sample.dtd
. Если вы отключите внешние ссылки, этот XML не сможет загрузиться с ошибкой Reference to undeclared entity 'text'
Другой случай, если ваш XML содержит встроенный DTD с внешне определенными сущностями:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE dtd_sample[
<!ENTITY text SYSTEM ".\text.txt">
]>
<root>&text;</root>
В этом случае XML анализируется правильно, но &text;
является пустым, а не содержимым файла text.txt
.
Оба случая довольно редки - особенно во втором, так что с вами все должно быть в порядке.
Проверка обычно не является проблемой: по умолчанию XmlReader
не выполняет никакой проверки, поэтому даже если она не может загрузить соответствующий DTD / XSD, это не имеет значения.
Все это верно для .NET 4.0, я не тестировал другие версии фреймворка.