Tôi đang xác thực đối với XMLSchema trong Java và nhận SAXParseExceptions được ném khi tôi có các mô hình nội dung không hợp lệ.Cách sử dụng SAXParseException hiệu quả trong Java
Tôi sẽ sử dụng những ngoại lệ này để làm nổi bật nơi xác thực không thành công - nhưng SAXParseExceptions có vẻ hơi quá thấp.
Ví dụ, nếu thất bại trong điều tra, tôi nhận được lỗi hợp lệ mà giá trị được cung cấp không khớp với mô hình nội dung trong một ngoại lệ và phần tử được áp dụng trong trường hợp tiếp theo.
Tôi nghĩ rằng tôi cần phải có một tiện ích tóm tắt một chút để hợp nhất các lỗi liên quan với nhau và phân tích văn bản ngoại lệ thành các thuộc tính ngoại lệ có thể sử dụng được.
Đây có phải là cách tiếp cận hợp lý hay tôi chỉ thiếu một thứ gì đó hoặc có thể là thư viện hoặc lớp trợ giúp?
Cập nhật @timgilbert, cảm ơn phản hồi.
Ví dụ, một SAXParseException tôi tìm thấy trên t'internet
cvc-pattern-valid: Value 'en' is not facet-valid
with respect to pattern '([a-zA-Z]{1,8})(-[a-zA-Z0-9]{1,8})*'
Những điều quan trọng đối với tôi là
- tử 'en' mà ngoại lệ này được áp dụng. Tại sao tôi không thể gọi exception.getElement() hoặc một cái gì đó, và tại sao không phải là XPath cho phần tử được đề cập? Hữu ích hơn với tài liệu trong bộ nhớ hơn số dòng và số cột!
- Đó là lỗi xác thực mẫu. Tại sao tôi không thể nhận được một cái gì đó giống như một liệt kê các loại thất bại có thể và một tham chiếu đến một trong những thích hợp?
- Mẫu thực tế xác thực không thành công.
- Sẽ được ngoại lệ khác ném bên cạnh cho tôi biết giá trị của phần tử 'en' đã gây ra vấn đề mà tôi cần phải hợp nhất
Một ví dụ về những gì tôi muốn để có thể làm là có người gửi tài liệu và có tài liệu được đánh dấu khi xác thực không thành công với thông điệp thân thiện với người dùng - thông báo lỗi trên kinda dường như không thân thiện ... phải phân tích bằng dấu nháy đơn chỉ cảm thấy giống như một tai nạn đang chờ xảy ra :)
Tôi nghĩ rằng tôi có thể làm điều đó sai với điều 'tham chiếu đến yếu tố', và có lẽ tôi phải có một biến đổi nhận dạng của tài liệu theo mặc định như một phần của xác nhận hợp lệ, và augmen t việc chuyển đổi với các thuộc tính lỗi xác thực mà tôi có thể chọn với CSS. Điều đó vẫn không giúp được gì nếu tôi cần phải phân tích các tin nhắn để làm cho chúng trở nên thân thiện hơn ...
ràng buộc chặt chẽ, javax.xml.validation.Validator.validate() ném org.xml.sax.SAXException anyway - không chắc chắn làm thế nào tôi có thể thoát khỏi sự ràng buộc giả ...
Cheers
+1, tôi vừa gặp phải cùng loại sự cố vào sáng sớm hôm nay. Cảm ơn vì đăng. –
Không vấn đề gì, vui mừng không phải chỉ mình tôi câm! – Brabster
Tôi có một vấn đề rất giống nhau. Bạn đã tìm thấy giải pháp giúp dễ dàng hơn trong việc làm cho các lỗi này thân thiện với người dùng hơn? – Turismo