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


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

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

приложение.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-документ?

16 55

16 ответов:

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

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

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

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

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

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

  1. перейдите в меню "Настройки",
  2. в навигационном меню, т. е. в левой рамке диалогового окна, выберите: XML > XML файлы > проверка
  3. в области конфигурации, т. е. в правой рамке диалогового окна, выберите: проверка файлов > не указана грамматика > игнорировать (это поле выбора) значение по умолчанию-предупреждение)

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

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

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

нажмите клавишу ctrl + shift + F и сохранить.

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

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

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

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

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

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

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

"Window \ preferences \ xml \ XML catalog \ User specified entries".

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


пример:

<?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-файл и сделать некоторые изменения, чтобы нарушить схему, вы должны быть уведомлены.

Я имел некоторый успех будет вернуться к 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">

вот рабочее решение этой проблемы:

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

Шаг 2: Перейдите в раздел "библиотеки" и удалите системную библиотеку JRE проекта

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

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

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

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

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

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

добавьте это в самое начало вашего xml-файла:

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

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

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

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

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

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

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

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

Я просто с этой проблемой прошлой ночью (с помощью Eclipse В. Кеплер). Я совершенно новичок в 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>

это дало мне ту же ошибку, как и ОП. Я попробовал следующее предложение добавления

<!DOCTYPE project> 

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

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

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