Tắt xác thực XML trong Eclipse


123

Eclipse của tôi xác thực các tệp XML mỗi khi tôi lưu một tệp và phải mất một lúc để xác thực chúng. Dự án được tạo bằng gwt-maven-plugin.

Các tệp XML không nằm trong bất kỳ đường dẫn xây dựng thư mục Nguồn nào trong Eclipse, chúng được SmartGWT tạo tự động theo src / main / webapp / [GwtModule]> / sc

Ngoài ra, tất cả các tệp XML này đều được đánh dấu bằng lỗi "Nội dung không được phép trong prolog" và mỗi khi tôi chạy dự án, tôi phải xác nhận rằng tôi muốn chạy dự án có lỗi mặc dù không có lỗi nào (và mọi thứ đều hoạt động tốt).

Tôi đã thử Tạm ngưng tất cả Trình xác thực trong Eclipse -> Cửa sổ -> Tùy chọn -> Xác thực nhưng vô hiệu.

Bất kỳ ý tưởng nào về cách tôi có thể ngăn Eclipse làm phiền tôi mọi lúc?


Preferences..xml..xml files..validation
Ed Staub

@EdStaub Thay đổi bất kỳ điều nào trong số đó không tạo ra sự khác biệt
Satish

Câu trả lời:


168

Bạn có hai lựa chọn:

  1. Định cấu hình Cài đặt không gian làm việc (vô hiệu hóa xác thực cho không gian làm việc hiện tại): Đi tới Window> Preferences> Validation và bỏ chọn hướng dẫn và xây dựng cho: XML Schema Validator, XML Validator

  2. Kiểm tra kích hoạt cài đặt dành riêng cho dự án (tắt xác thực cho dự án này): Nhấp chuột phải vào dự án, chọn Thuộc tính> Xác thực và bỏ chọn hướng dẫn và xây dựng cho: Trình xác thực lược đồ XML, Trình xác thực XML

Nhấp chuột phải vào dự án và chọn Xác thực để làm cho các lỗi biến mất.


3
Cấu trúc menu dường như đã thay đổi trong các phiên bản mới hơn của Eclipse - ít nhất là cài đặt Eclipse Mars của tôi không có mục nhập "Trình xác thực lược đồ XML". Thay vào đó, menu ngữ cảnh của dự án liệt kê mọi xác nhận trong "xác thực", như được mô tả trong câu trả lời của kevinarpe.
Stephan Rauh

2
có cho các Phiên bản Eclipse gần đây hơn: Nhấp vào Cửa sổ> Tùy chọn và chọn Xác thực trong ngăn bên trái. Trang Xác thực của cửa sổ Tùy chọn liệt kê các trình xác thực có sẵn trong dự án của bạn và cài đặt của chúng. Để tắt từng trình xác thực, hãy bỏ chọn hộp kiểm bên cạnh từng trình xác thực mà bạn muốn tắt. Mỗi trình xác thực có một hộp kiểm để chỉ định xem nó được bật để xác thực thủ công hay trên một bản dựng.
Tom

63

Các câu trả lời khác có thể phù hợp với bạn, nhưng chúng không phù hợp với trường hợp của tôi. Tôi muốn một số XML được xác thực, còn những XML khác thì không. Hình ảnh này cho thấy cách loại trừ các thư mục (hoặc tệp) nhất định để xác thực XML.

Bắt đầu bằng cách nhấp chuột phải vào thư mục gốc của dự án Eclipse của bạn. Chọn mục cuối cùng: Thuộc tính ...

nhập mô tả hình ảnh ở đây

(Nếu trình duyệt của bạn chia tỷ lệ hình ảnh này rất nhỏ, hãy nhấp chuột phải và mở trong cửa sổ hoặc tab mới.)

  • Eclipse dường như rất nhạy cảm nếu bạn nhấp vào nút ** Duyệt tệp ... * hoặc ** Thư mục trình duyệt ... *. Hộp thoại này cần một số công việc!
  • Việc này được thực hiện bằng Eclipse 4.3 (Kepler).

46

Window> Preferences> Validation> bỏ chọn XML Validator Manual and Build nhập mô tả hình ảnh ở đây


8

Đảm bảo mã hóa của bạn là chính xác cho tất cả các tệp của bạn, điều này đôi khi có thể xảy ra nếu bạn có mã hóa sai cho tệp của mình hoặc mã hóa sai trong tiêu đề XML của bạn.

Vì vậy, nếu tôi có NewFile.xml sau:

<?xml version="1.0" encoding="UTF-16"?>
<bar foo="foiré" />

Và mã hóa nhật thực là UTF-8:

Tài nguyên mã hóa Eclipse

Mã hóa tệp của bạn, mã hóa được xác định trong Eclipse (thông qua Thuộc tính-> Tài nguyên) và mã hóa được khai báo trong tài liệu XML đều cần phải đồng ý.

Trình xác thực đang cố gắng đọc tệp, mong đợi <? Xml ... nhưng vì mã hóa khác với dự kiến ​​nên nó không tìm thấy nó. Do đó, lỗi: Nội dung không được phép trong phần mở đầu. Phần mở đầu là bit trước khai báo <? Xml.

CHỈNH SỬA: Xin lỗi, không nhận ra rằng các tệp .xml đã được tạo và thực sự chứa javascript.

Khi bạn tạm ngưng trình xác thực, các thông báo lỗi bạn đã tạo sẽ không biến mất. Để xóa chúng đi, bạn phải xóa chúng theo cách thủ công.

  1. Tạm dừng trình xác thực
  2. Nhấp vào thông báo 'Nội dung không được phép trong prolog', nhấp chuột phải và xóa. Bạn có thể chọn nhiều hoặc tất cả chúng.
  3. Thực hiện một Dự án-> Làm sạch. Các tin nhắn sẽ không trở lại.

Tôi nghĩ rằng vì bạn đã tạm ngưng trình xác thực, nên Eclipse không nhận ra rằng nó phải xóa các thông báo lỗi cũ đến từ trình xác thực.


Các tập tin được tạo ra bởi SmartGWT dường như có chứa JavaScript trong họ và không XML, mặc dù họ thật là thú vị có phần mở rộng .ds.xml
Satish

Các lỗi đã biến mất khi tôi xóa thư mục đã tạo, nhưng khi tôi làm sạch dự án, các lỗi lại xuất hiện cùng với thư mục. Trình xác thực bị tạm ngưng trong suốt thời gian đó.
Satish

1

Trong JBoss Developer 4.0 trở lên (dựa trên Eclipse), điều này dễ dàng hơn một chút. Chỉ cần nhấp chuột phải vào tệp hoặc thư mục chứa tệp dựa trên xml của bạn, chọn "Loại trừ Xác thực", sau đó nhấp vào "Có" để xác nhận. Sau đó nhấp chuột phải vào các tệp / thư mục tương tự một lần nữa và nhấp vào "Xác thực", thao tác này sẽ xóa các lỗi bằng xác nhận.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.