Я бы хотел, чтобы мой Eclipselink 2.3 Marshaller выполнил валидацию при сортировке.Я убедился, что Schema
правильно создан SchemaFactory
, я передаю его Marshaller.setSchema
и зарегистрировал обработчик через Marshaller.setEventHandler()
.
Результат маршала явно недействителенсоотв.к его Схеме (проверено в Eclipse), тем не менее я вижу, что моя точка останова в handleEvent(ValidationEvent event)
никогда не достигается.
Я собираю XML-фрагменты с использованием marshal(Object, XMLStreamWriter)
и ожидаю, что Маршаллер выполнит проверку этихфрагменты в соответствии со Схемой, которую я передал.
Кто-нибудь знает, почему этого не происходит?
РЕДАКТИРОВАТЬ :
Ошибка проверки, которая должна произойти:2 отсутствующих атрибута в элементе.
Элемент соответствует Java-объекту, который содержится в List <>.Я сортирую Список, используя:
<xml-element java-attribute="listInstance" xml-path="ListWrapperElement/ListElement" type="foo.ElementType" container-type="java.util.ArrayList"/>
Отображение для самого элемента:
<java-type name="foo.ElementType" xml-accessor-type="PROPERTY">
<java-attributes>
// just <xml-attribute> elements here
</java-attributes>
</java-type>
Поэтому все атрибуты маршалируются в атрибут ListWrapperElement / ListElement / @.2 из них отсутствуют и не обнаружены при проверке.