The exception is expected in this case since pattern's condition property is bound as
@XmlElementWrapper(name = "condition")
@XmlElements( {
@XmlElement(name = "and", type = AndMetaData.class),
@XmlElement(name = "contains", type = ContainsMetaData.class),
@XmlElement(name = "equal", type = EqualMetaData.class),
@XmlElement(name = "exists", type = ExistsMetaData.class),
@XmlElement(name = "not", type = NotMetaData.class),
@XmlElement(name = "or", type = OrMetaData.class),
@XmlElement(name = "subdomain-of", type = SubdomainOfMetaData.class)})
public void setCondition(ConditionMetaData condition) {
this.condition = condition;
}Removal of the wrapping condition element did it.
Thanks a lot ! You've been a life saver ;-)