Проблема с XML-анализом XDocument
Я использую XDocument и LINQ для анализа некоторых файлов XML, и некоторые из них работали нормально, а другие - нет. Посмотрев на это, я обнаружил разницу:
Работающие файлы выглядят так:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Scenarios xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Scenario>
...
</Scenario>
</Scenarios>
Файлы, которые не выглядят так:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Scenarios xmlns="http://www.w3.org/2001/XMLSchema-instance">
<Scenario>
...
</Scenario>
</Scenarios>
Если вы этого не видите, отсутствующим элементом является псевдоним:xsi в корневом элементе.
Я просто хочу знать, почему это так. Файлы, которые в остальном одинаковы, не будут анализироваться XDocument.Load(), если у них нет этого псевдонима.
Заранее спасибо!
1 ответ
В первом примере вы говорите, что любой узел (элемент или атрибут) с xsi
Префикс из пространства имен схемы XML.
Во втором примере вы говорите, что любой узел без префикса находится в пространстве имен схемы XML.
Вам также нужно сделать объявление как первое, если у вас есть узлы с xsi
префикс или удалить эти узлы.
РЕДАКТИРОВАТЬ: Как правильно заметил svick, XDocument не выполняет проверку схемы по умолчанию, поэтому более вероятно, что проблема ...
содержит несколько узлов с xsi
префикс