К сожалению, сущности являются частью правил правильности XML ( 2.1 Правильно оформленные XML-документы ).Похоже, вы говорите, что хотите, чтобы XDocument.Load
загрузил то, что условно является XML-файлом, но на самом деле не соответствует правилам, чего он не будет делать, вполне разумно.
Если вашпользователи передают вам файлы, которые должны быть XML-файлами, но у которых есть неопределенные сущности, тогда вы либо должны получить их, чтобы предоставить файлы в допустимом формате, либо самостоятельно управлять ошибками во время загрузки способами, которые былипредложил.
Из ваших ограничений мне кажется, что самым подходящим подходом было бы следовать примеру, связанному с, и создать некоторый settings
для перехода в XMLReader
в соответствии с ( Проверка XML-документа в DOM ).
Если есть сущности, которые не определены и не перечислены в общедоступных схемах, вам необходимо создать собственную схему, которая определяет всесущности, которые вам нужны.Итак, создайте общий settings
для XMLReader
, который ссылается на вашу собственную, пользовательскую схему.Добавьте необходимые объекты в эту схему, так как определенные файлы не загружаются, и тогда вы создадите список всех объектов, которые вам нужно определить для правильности файлов XML.
Затем для каждогодокумент, который вы пытаетесь загрузить, создайте XMLReader
для файла с помощью settings
выше и вызовите перегрузку XDocument (XMLReader).