2012-11-30 28 views

Trả lời

4

Nhiều (hầu hết) triển khai sẽ, mặc dù về mặt kỹ thuật, nếu tôi nhớ chính xác, vị trí được hiểu là một URI, không phải URL.

Nếu bạn muốn chắc chắn giải quyết nó cục bộ, hãy xem giao diện EntityResolver.

+0

Vì vậy, nó sẽ tìm thấy dtd trước internet ở đâu? Ý tôi là, tham chiếu doctype là một url http; là có một logic để chuyển đổi này để tra cứu classpath? Tôi nhận thấy tất cả các thanh xà phòng đều có bên trong của chúng. – chad

+0

Vâng, DTD không tồn tại trước internet :-) Dù sao, tham chiếu doctype trông giống như một URL http, nhưng đó chỉ là quy ước - nó thực sự là một URI (có sự khác biệt) và không nhất thiết ánh xạ tới URL hợp lệ . Tôi đã không sử dụng Struts trong nhiều năm, nhưng tôi đoán rằng nó bao gồm các DTD và sử dụng một EntityResolver để giải quyết chúng cục bộ. – GreyBeardedGeek

2

Dựa trên Xerces documentation, trình phân tích cú pháp có thể thử tải tệp xuống từ Internet khi bật tính năng xác thực . Nhưng tôi thực sự nghĩ rằng điều này có thể thay đổi từ phân tích cú pháp thành phân tích cú pháp, bởi vì thư viện có thể quyết định sử dụng bộ nhớ cache cục bộ, máy chủ proxy hoặc bất kỳ thứ gì.

+0

Tôi đã thấy điều đó. Tôi không thể tìm thấy bất kỳ chi tiết cụ thể về nơi khác, và theo thứ tự, nó sẽ cố gắng để tìm dtd. Hệ thống tập tin? Classpath? – chad

+1

Tôi nghĩ, vì đây là chi tiết triển khai, không có tài liệu nào tốt hơn là mã nguồn và trình gỡ lỗi – Raffaele

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