Wyłącz sprawdzanie poprawności XML w Eclipse

123

Moje Eclipse sprawdza poprawność plików XML za każdym razem, gdy zapisuję plik, a ich walidacja zajmuje trochę czasu. Projekt jest tworzony za pomocą wtyczki gwt-maven-plugin.

Pliki XML nie znajdują się w żadnej ścieżce budowania folderu źródłowego w Eclipse, są automatycznie generowane przez SmartGWT w src / main / webapp / [GwtModule]> / sc

Również wszystkie te pliki XML są oznaczone błędem „Treść jest niedozwolona w prologu” i za każdym razem, gdy uruchamiam projekt muszę potwierdzić, że chcę uruchomić projekt z błędami, chociaż ich nie ma (i wszystko działa dobrze).

Próbowałem zawiesić wszystkie walidatory w Eclipse -> Window -> Preferences -> Validation, ale bezskutecznie.

Masz pomysł, jak za każdym razem powstrzymać Eclipse przed irytacją?

Satish
źródło
Preferences..xml..xml files..validation
Ed Staub
@EdStaub Zmiana któregokolwiek z nich nie ma znaczenia
Satish

Odpowiedzi:

168

Masz dwie możliwości:

  1. Skonfiguruj ustawienia obszaru roboczego (wyłącz sprawdzanie poprawności dla bieżącego obszaru roboczego): Wybierz Okno> Preferencje> Walidacja i odznacz instrukcję i skompiluj dla: Walidator schematu XML, Walidator XML

  2. Zaznacz opcję Włącz ustawienia specyficzne dla projektu (wyłącz walidację dla tego projektu): Kliknij projekt prawym przyciskiem myszy, wybierz Właściwości> Walidacja i odznacz instrukcję i kompiluj dla: Walidator schematu XML, Walidator XML

Kliknij projekt prawym przyciskiem myszy i wybierz opcję Sprawdź poprawność, aby błędy zniknęły.

Mahmoud Saleh
źródło
3
Wygląda na to, że struktura menu uległa zmianie w nowszych wersjach Eclipse - przynajmniej moja instalacja Eclipse Mars nie ma wpisu „XML Schema Validator”. Zamiast tego menu kontekstowe projektu zawiera listę wszystkich walidacji w sekcji „validation”, zgodnie z opisem w odpowiedzi kevinarpe.
Stephan Rauh
2
tak w przypadku nowszych wersji Eclipse: Kliknij opcję Okno> Preferencje i wybierz opcję Walidacja w lewym panelu. Strona Walidacja w oknie Preferencje zawiera listę walidatorów dostępnych w Twoim projekcie i ich ustawienia. Aby wyłączyć poszczególne walidatory, odznacz pola wyboru obok każdego walidatora, który chcesz wyłączyć. Każdy walidator ma pole wyboru, aby określić, czy jest włączony dla walidacji ręcznej, czy w kompilacji.
Tom
63

Inne odpowiedzi mogą działać dla Ciebie, ale nie obejmowały mojego przypadku. Chciałem, aby część XML została zweryfikowana, a innych nie. Ten obraz pokazuje, jak wykluczyć określone foldery (lub pliki) z weryfikacji XML.

Zacznij od kliknięcia prawym przyciskiem myszy katalogu głównego projektu Eclipse. Wybierz ostatnią pozycję: Właściwości ...

wprowadź opis obrazu tutaj

(Jeśli Twoja przeglądarka skaluje ten obraz bardzo mały, kliknij prawym przyciskiem myszy i otwórz w nowym oknie lub na nowej karcie).

  • Eclipse wydaje się działać bardzo wrażliwie, jeśli klikniesz przycisk ** Przeglądaj plik ... * lub ** Folder przeglądarki ... *. To okno dialogowe wymaga trochę pracy!
  • Dokonano tego za pomocą Eclipse 4.3 (Kepler).
kevinarpe
źródło
46

Okno> Preferencje> Walidacja> odznacz opcję XML Validator - instrukcja i kompilacja wprowadź opis obrazu tutaj

znak
źródło
8

Upewnij się, że kodowanie jest prawidłowe dla wszystkich plików. Może się to czasami zdarzyć, jeśli kodowanie jest nieprawidłowe dla pliku lub kodowanie w nagłówku XML jest nieprawidłowe.

Tak więc, jeśli mam następujący plik NewFile.xml:

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

A kodowanie zaćmienia to UTF-8:

Zasób kodowania Eclipse

Kodowanie twojego pliku, kodowanie zdefiniowane w Eclipse (poprzez Właściwości-> Zasób) i zadeklarowane kodowanie w dokumencie XML muszą być zgodne.

Walidator próbuje odczytać plik, oczekując <? Xml ... ale ponieważ kodowanie różni się od oczekiwanego, nie znajduje go. Stąd błąd: treść nie jest dozwolona w prologu. Prolog to bit przed deklaracją <? Xml.

EDYCJA: Przepraszamy, nie zdawałem sobie sprawy, że pliki .xml zostały wygenerowane i faktycznie zawierają javascript.

Po zawieszeniu walidatorów wygenerowane komunikaty o błędach nie znikają. Aby je usunąć, musisz je ręcznie usunąć.

  1. Zawieś walidatory
  2. Kliknij wiadomość „Treść nie jest dozwolona w prologu”, kliknij prawym przyciskiem myszy i usuń. Możesz wybrać wiele z nich lub wszystkie.
  3. Wykonaj projekt-> Wyczyść. Wiadomości nie powinny wracać.

Myślę, że ponieważ zawiesiłeś walidatory, Eclipse nie zdaje sobie sprawy, że musi usuwać stare komunikaty o błędach, które pochodziły z walidatorów.

Matthew Farwell
źródło
Wydaje się, że pliki wygenerowane przez SmartGWT zawierają JavaScript, a nie XML, chociaż mają dziwne rozszerzenie .ds.xml
Satish
Błędy zniknęły, gdy usunąłem wygenerowany katalog, ale kiedy wyczyściłem projekt, błędy wróciły wraz z katalogiem. Walidatory są przez cały czas zawieszane.
Satish
1

W JBoss Developer 4.0 i nowszych wersjach (opartych na Eclipse) jest to odrobinę łatwiejsze. Po prostu kliknij prawym przyciskiem myszy plik lub folder zawierający pliki XML, wybierz „Wyklucz walidację”, a następnie kliknij „Tak”, aby potwierdzić. Następnie ponownie kliknij prawym przyciskiem myszy te same pliki / folder i kliknij „Sprawdź”, co spowoduje usunięcie błędów z potwierdzeniem.

Analiza rozmyta
źródło