2010-04-10 23 views
5

Tôi đang phân tích một tập tin XML chống lại một XSD có chứa một số mẫu regex sử dụng để kiểm tra dữ liệu đầu vào, nhưng chỉ regex này tạo ra một lỗi, ngay cả khi nó đi vào các plugin Eclipse XSD:Members XML sử dụng XSD với mẫu regex

InvalidRegex: Pattern value 
    '(((com|org)\.)+(\b[a-z]+[.]{1}\b)+)?[A-Z]{1}[A-Za-z]+' 
    is not a valid regular expression. The reported error was: 
    'This expression is not supported in the current option setting.'. 

Vì vậy, ngay cả khi vấn đề là do ranh giới \ b mà tôi có thể xóa an toàn, với trình xác thực SAX, tôi có thể tìm "cài đặt tùy chọn hiện tại" gây tử vong ở đâu?

+0

XML của bạn ở đâu để chúng tôi có thể thấy ngữ cảnh trong đó hạn chế đó tạo ra lỗi? –

+0

Lưu ý rằng '{1}' có thể được bỏ qua. –

+1

Tnx để sửa chữa reduntant {1}. Hiện tại nó không còn là vấn đề nữa bởi vì tôi đã giải quyết khi tôi nhận thấy rằng việc xóa "\ b ... \ b" nó hoạt động không có lỗi. Nhưng bây giờ tôi tò mò muốn biết nơi tôi có thể thiết lập các "thiết lập tùy chọn" được đề cập, nó có thể hữu ích để biết nơi để thao tác các thiết lập ẩn. –

Trả lời

2

\b không được hỗ trợ bởi XML Schema hương vị regex là specified bởi W3C. Thông báo lỗi ngụ ý rằng bạn có thể sử dụng nó bằng cách thay đổi một thiết lập, nhưng sau đó bạn sẽ sử dụng một tính năng không chuẩn, mà sẽ đánh bại mục đích của việc sử dụng XML.

Tôi không chắc đó là thông báo lỗi thực sự có ý nghĩa gì, nhưng sẽ hữu ích hơn nếu chỉ có regex không hợp lệ. Tự làm ơn và quên sử dụng \b trong XSD của bạn. Và kiểm tra phần còn lại của trang web regular-expressions.info nếu bạn chưa có - đó là một nguồn tài nguyên tuyệt vời.

Các vấn đề liên quan