2013-12-03 3 views
0

У меня есть следующий XML-файлXML проверки отдельного элемента

<books> 
    <book> 
     <author>Fitzek</author> 
     <titel>Abgeschnitten</titel> 
    </book> 
    <book> 
     <author>Dan Brown</author> 
     <titel>Symbol</titel> 
    </book> 
    <book isbn="123456"> 
     <author>Sebastian Fitzek</author> 
     <titel>Der Augensammler</titel> 
    </book> 
</books> 

Я показать это XML-файл во время JSF страницы в данный момент. Мое намерение состоит в том, чтобы проверить каждый элемент с правильным элементом в XSD-файле, чтобы показать информацию или сообщение об ошибке на странице, если конкретный элемент недействителен.
Я нашел решение для проверки всего файла, а не конкретных элементов.

Я надеюсь, что кто-то может мне помочь.
Большое спасибо.

+0

[Прочтите эту страницу в Википедии, у нее есть хорошие ресурсы.] (Http://en.wikipedia.org/wiki/XML_validation) – DevlshOne

+0

Точно, почему полная проверка документов не соответствует вашим требованиям? Интересно? – Gimby

+0

[см. Здесь] [1] его уже объяснено. [Или вы можете использовать это также] [2] [1]: http://stackoverflow.com/questions/10944332/validate-xml-created-using-jaxb-against -an-xsd-file [2]: http://stackoverflow.com/questions/1560422/how-to-validate-against-schema-in-jaxb-2-0-without-marshalling – Sanjeev

ответ

0

Анализаторы и валидаторы XML, по меньшей мере, не являются надежными в том смысле, в котором вы нуждаетесь. В моем ограниченном опыте они потерпят неудачу по первой проблеме и, если они попытаются восстановиться, ошибки будут каскадироваться и размножаться.

Проблема в том, что вам необходимо получить надежную информацию из файла XML и надежную информацию из валидатора. Ваше предположение состоит в том, что XML-файл хорошо сформирован (синтаксически корректен) и что он не является кусочно-допустимым (есть элементы, которые не проверяют проверку схемы). К сожалению, это не прецедент, который предвидится большинству людей.

Это способ грубой силы справиться с этим. Сначала создайте набор схем элементов, по одному для каждого элемента данных, который вы хотите отобразить и исправить. Каждая схема будет состоять только из одного тега и требуемых данных.

  1. Подтвердить файл XML. Если ошибок нет, вы можете просто отобразить результаты.
  2. Чтение в XML-файле в DOM без проверки. Это дает дерево с данными в нем.
  3. Прогулка DOM ищет элементы author и titel (sp). Для каждого элемента создайте крошечный XML-файл только с одним тегом и элементом данных. Проверяйте этот элемент на ранее созданной схеме элемента.

Теперь у вас есть список элементов данных с необязательными сообщениями проверки правильности, связанными с каждым полем данных.

+0

Спасибо за ваше решение. Я не знаю, лучшее ли это решение. Мой пример очень маленький и легкий, но файл XML может быть очень большим. Я буду/должен думать об этом – Eddi

Смежные вопросы