Было бы более интересно, если бы вы могли также описать, почему вы хотели бы игнорировать внешние ссылки во время компиляции. Как правило, эти внешние ссылки (либо включают, либо импортируют) необходимы, поскольку они обеспечивают определения для компонентов, на которые фактически ссылаются, таких как тип, элемент, группа и т. Д. В общем, одно предостережение заключается в том, что переопределение не может быть выключен (он сразу выйдет из строя).
Самое близкое к вашему требованию является определение пользовательского распознавателя (начиная с XmlUrlResolver ), который вы связываете со своим читателем с помощью XmlReaderSettings ; «выключение» будет означать возвращение нуля в переопределенном методе GetEntity .
Если вместо «выключения» вы можете обнаружить, что вам нужен «редирект», то вышеизложенное определенно определит, как вы могли бы это сделать (вместо нуля вы бы вернули поток в нужную вам схему).
Одна вещь, которую вы должны иметь в виду, это то, что если XmlSchemaSet нуждается в включении / импорте, который вы хотите отключить, он никогда не скомпилируется, если он не разрешается. Если он не компилируется, то все свойства PSVI (ElementSchemaType является одним из них) не будут заполнены. Какой тип восходит к тому, почему вы хотите такую вещь?