2008-12-12 10 views

Trả lời

10

Giải pháp.

Trong JAXB thực hiện ValidationEventHandler như vậy:

class CustomValidationEventHandler implements ValidationEventHandler{ 

    public boolean handleEvent(ValidationEvent evt) { 
     System.out.println("Event Info: "+evt); 
     if(evt.getMessage().contains("Unexpected element")) 
      return true; 
     return false; 
    } 

} 

Sau đó

Unmarshaller u = ...; 

u.setEventHandler(new CustomValidationEventHandler()); 

u.unmarshal(new StringReader(xml)); 
+2

Trong trường hợp của tôi "if (evt.getMessage(). Contains (" Phần tử không mong muốn "))" nên là "if (evt.getMessage(). ToLowerCase(). Contains (" element unexpected "))". Tôi không biết tại sao nhưng thông điệp của sự kiện đôi khi được trong trường hợp thấp hơn. – veysiertekin

+1

Điều này không hoạt động. Tôi vẫn gặp lỗi tương tự. –