Подтвердить что ты не робот

Как исправить ошибку проверки Eclipse "Не обнаружены ограничения для грамматики для документа"?

Eclipse 3.5.2 выдает предупреждение о схеме XML:

No grammar constraints (DTD or XML schema) detected for the document.

Файл application.xml:

<?xml version="1.0" encoding="UTF-8"?>
<application
  xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/application_5.xsd"
  version="5">

</application>

Я не хочу отключать предупреждение. Как я могу заставить Eclipse правильно проверить XML-документ?

4b9b3361

Ответ 1

Не уверен, что вы когда-либо разрешили это удовлетворительно, но сегодня я столкнулся с этой публикацией при работе с некоторыми конфигурационными файлами Spring в Eclipse 3.6. Я не мог заставить ошибку уйти в представлении "Проблемы" в Eclipse независимо от того, что, пока я не щелкнул правой кнопкой мыши на проблеме и не удалил ее.

Я решил, что он вернется, если я вернусь к действию, и на самом деле возникла проблема, и пока это не так. Дело в том, что у меня был почти идентичный конфигурационный файл Spring, который не показывал ошибку.

Казалось бы, иногда вещи просто застревают в Eclipse. Не уверен, почему, но между этим и файлами, которые не синхронизируются с редакторами и вынуждают обновлять, я предполагаю, что я должен принять его.

Ответ 2

Включение этого в верхнюю часть любого оскорбительного файла работает для меня:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE project>

Ответ 3

Это еще один способ отключить предупреждения для XML-документов, умышленно отсутствующих DTP или XSD:

  • Перейдите в Настройки меню,
  • в навигационном меню, то есть в левом фрейме диалогового окна, выберите: XML > Файлы XML > Проверка
  • в области конфигурации, то есть в правом кадре диалогового окна, выберите: Проверка файлов > Нет указанной грамматики > Игнорировать (это поле выбора), по умолчанию - предупреждение)

Ответ 4

Я не эксперт, а ученик. Я случайно нашел легкий и глупый способ решить проблему. Вам просто нужно сделать следующее:

Нажмите ctrl + shift + F (это ярлык для форматирования файла в Eclipse)

Если это не решит проблему, нажмите клавишу TAB в начале этой конкретной строки
?xml version="1.0" encoding="UTF-8"? и нигде больше (я не знаю почему, но это работает. Если кто-нибудь знает, почему я буду очень рад узнать)

Затем нажмите ctrl + shift + F и сохраните.

Предупреждение исчезнет, ​​по крайней мере для меня, вы можете попробовать себя...

Ответ 5

Если это предупреждение появляется, это означает, что функция XML Validate (отличная от редактора экземпляра XML!) не знала, что применять DTD или XSD. Это, конечно, также означает, что он фактически не проверял, совместим ли экземпляр XML с любой схемой.

Поэтому это полезное предупреждение, его нельзя отключать (если вы используете функцию меню "Проверить" и ожидаете, что он что-то сделает).

Вы можете использовать настройки, чтобы ваша схема была известна:

  • Открыть настройки/Каталог XML/Пользовательские записи
  • Нажмите Добавить...
  • Введите файл XSD для использования в "Местоположение"
  • Выберите тип ключа "Расположение схемы" (если у вас есть xsi: schemaLocation)
  • Введите URL-адрес (вторая часть местоположения), соответствующий содержимому файлов, как "Ключ"
  • Нажмите OK
  • Перейдите к представлению "Проблема" и удалите предупреждение проверки.
  • Щелкните правой кнопкой мыши файл XML и выберите "Проверить" еще раз

Некоторые общедоступные идентификаторы и местоположения схем уже содержатся в разделе "Записи с плагином" (особенно если у вас установлен WSTP). Для этих пространств имен вы не получите предупреждение (поскольку он использует предоставленную системой копию для проверки).

Ответ 6

в eclipse, чтобы избежать " ограничений грамматики (dtd или xml), обнаруженных для документа." Я использую, чтобы добавить файл схемы xsd в каталог xml в

"Окно\предпочтения\xml\xml каталог\Пользовательские записи".

Нажмите кнопку "Добавить" справа.


Пример:

<?xml version="1.0" encoding="UTF-8"?>
<HolidayRequest xmlns="http://mycompany.com/hr/schemas">
    <Holiday>
        <StartDate>2006-07-03</StartDate>
        <EndDate>2006-07-07</EndDate>
    </Holiday>
    <Employee>
        <Number>42</Number>
        <FirstName>Arjen</FirstName>
        <LastName>Poutsma</LastName>
    </Employee>
</HolidayRequest>

Из этого xml я сгенерировал и сохранил xsd под:/home/my_user/xsd/my_xsd.xsd

Как местоположение:/home/my_user/xsd/my_xsd.xsd

В качестве типа ключа: Имя пространства имен

В качестве ключа: http://mycompany.com/hr/schemas


Закройте и снова откройте файл xml и внесите некоторые изменения, чтобы нарушить схему, вы должны быть уведомлены.

Ответ 7

У меня был некоторый успех назад к V1.4 приложения .xsd. Если кто-то может объяснить, почему версия JavaEE не работает, я был бы признателен.

<?xml version="1.0" encoding="UTF-8"?>
<application
  xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
                      http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"
  version="1.4">

Ответ 8

Здесь рабочее решение для этой задачи:

Шаг 1: Щелкните правой кнопкой мыши по проекту и перейдите к свойствам

Шаг 2. Перейдите в "библиотеки" и удалите проект "Системная библиотека JRE"

Шаг 3: Нажмите "Добавить библиотеку" → "Библиотека JRE" → выберите "Рабочая область по умолчанию JRE"

Шаг 3. Перейдите в раздел "Заказ и экспорт" и отметьте недавно добавленную "Системную библиотеку JRE"

Шаг 4: Обновить и очистить проект

Эврика! Он работает:)

Ответ 9

Добавьте это в свой XML файл с самого начала:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE RelativeLayout>

Измените RelativeLayout на свой собственный корневой макет , затем найдите xml файл в левой части, в папке макета, щелкните правой кнопкой мыши и выберите "Подтвердить".

Ответ 10

То, что я нашел для меня, заключалось в том, чтобы полностью удалить атрибут schemaLocation, а затем щелкнуть правой кнопкой мыши в виде схемы и перейти в пространство имен, а затем добавить подсказку местоположения схемы в результирующий диалог.

Ответ 11

Это может быть из-за настроек прокси-сервера. См. this и this. Вы можете попробовать добавить javadoc по URL-адресу в библиотеку без него. Если это нормально в вашем браузере, но не в вашем редакторе, то это проблема соединения. Я решил ту же проблему, задав администратору параметры прокси-сервера. Хотя все остальные приложения действительно работали, eclipse этого не делал, поэтому мне пришлось ввести конфигурацию "вручную". Было бы здорово, если бы разработчики добавили кнопку "проверить соединение"...

Ответ 12

Решение для Eclipse:

добавить <!DOCTYPE something> в начало каждого проблемного XML,

после тега xml <?xml version="1.0" encoding="utf-8"?>

вы можете написать что-нибудь для doctype, но в основном он должен быть явным, активным и т.д. из того, что я понимаю

Ответ 13

У меня была эта проблема вчера вечером (с использованием eclipse V.kepler). Я совершенно новый для java и eclipse, и я пытаюсь научить себя, как сделать приложение для Android. В то время как я работал над уроками, предлагаемыми на developers.android.com, я ввел это в свой файл main_activity_actions.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<!--  Search should appear as an action button -->
<item android:id="@+id/action_search"
      android:icon="@drawable/ic_action_search"
      android:title="@string/action_search"
      android:showAsAction="ifRoom"/>

</menu>

Это дало мне ту же ошибку, что и OP. Я попробовал сделать предложение

<!DOCTYPE project> 

чуть ниже первой строки, и она решила проблему.

Ответ 14

Что сработало для меня, это щелкнуть правой кнопкой мыши XML файл в дереве (обычно с левой стороны в eclipse) и нажать на подтверждение. С тех пор предупреждение никогда не возвращалось.

Ответ 15

Вот что сработало для меня. Я использовал схемы без номеров версий (например, spring-beans.xsd, а не spring-beans-4.1.xsd), и они, вероятно, были обновлены вверх по течению. Я предполагаю, что проблема заключалась в том, что Eclipse хранит грязный кэш старых версий.

Исправление:
 1. Перейдите к Window -> Preference -> Network Connection -> Cache
 2. Удалите все кэшированные схемы.
 3. Удалите все проблемы no grammar constraints в представлении проблемы.
 4. Повторно проверьте проект.

Ответ 16

для меня это работало как шарм, когда я его отрезал (ctrl a + ctrl - X) и сохранил его снова (ctrl-s)! предупреждение "Никакие ограничения грамматики (DTD или XML-схема), обнаруженные для документа", не прошли хорошо!