Eclipse на предупреждении проекта maven 'DTD или XML-схема'
Description Resource Path Location Type
No grammar constraints (DTD or XML schema) detected for the document. TEST-net.kindleit.gae.example.server.MessageRepositoryTest.xml /projecttest-gae-example/target/surefire-reports line 1 XML Problem
No grammar constraints (DTD or XML schema) detected for the document. appengine-web.xml /projecttest-gae-example/src/main/webapp/WEB-INF line 1 XML Problem
No grammar constraints (DTD or XML schema) detected for the document. appengine-web.xml /projecttest-gae-example/target/projecttest-gae-example-1.0-SNAPSHOT/WEB-INF line 1 XML Problem
No grammar constraints (DTD or XML schema) detected for the document. datastore-indexes-auto.xml /projecttest-gae-example/WEB-INF/appengine-generated line 1 XML Problem
No grammar constraints (DTD or XML schema) detected for the document. jdoconfig.xml /projecttest-gae-example/src/main/resources/META-INF line 1 XML Problem
No grammar constraints (DTD or XML schema) detected for the document. jdoconfig.xml /projecttest-gae-example/target/projecttest-gae-example-1.0-SNAPSHOT/WEB-INF/classes/META-INF line 1 XML Problem
No grammar constraints (DTD or XML schema) detected for the document. webapp-cache.xml /projecttest-gae-example/target/war/work line 1 XML Problem
как исправить вышеупомянутую проблему на eclipse? мой проект основан на maven. Это потому, что я пропустил некоторые файлы dtd? как его включить?
example jdoconfig.xml
<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">
<persistence-manager-factory name="transactions-optional">
<property name="javax.jdo.PersistenceManagerFactoryClass"
value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory"/>
<property name="javax.jdo.option.ConnectionURL" value="appengine"/>
<property name="javax.jdo.option.NontransactionalRead" value="true"/>
<property name="javax.jdo.option.NontransactionalWrite" value="true"/>
<property name="javax.jdo.option.RetainValues" value="true"/>
<property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
</persistence-manager-factory>
</jdoconfig>
Ответы
Ответ 1
Первоначальный ответ (декабрь 2009 г.)
Если у вас есть WTP (с включенной частью XML):
Настройки- > Validation- > XML Validator- > unclick manual и/или build должны помешать проверке затмения DTD
Или:
На странице Предпочтения выберите XML > Файлы XML. В разделе "Проверка файлов" вы можете изменить степень серьезности в раскрывающемся списке "Предупреждение" для "Игнорировать". Просто отметьте, что это для всех файлов XML, а не только build.xml
. Но вы можете просто добавить build.xml
в фильтр исключения, если вам все равно понравится это предупреждение для других файлов XML.
![alt text]()
Обновление (февраль 2012)
Кто-то сделал в комментариях (теперь удален) действительную точку, в которой вы должны Никогда игнорировать предупреждения.
Но исправьте их!
Когда спросите, как, он продолжает (акцент мой):
Я бы исправил Eclipse, потому что это явно признак плохого дизайна.
Например, я могу сообщить об ошибке для отслеживания ошибок Eclipse Foundation.
Eclipse необходимо добавить "нормальные" значения по умолчанию для файлов проекта Spring/Java EE, которые "известны", которые не нуждаются в XML-грамматике.
Либо что-то не так с файлом, либо Eclipse где-то сломано. Три проблемы, которые у меня были:
- с файлом
Log4j.xml
, говорящим, что он не может найти определение XML для log4j.dtd
, хотя файл находится в системном пути, где Validator выглядит - Ant
build.xml
файл говорит, что у меня нет ограничений грамматики - по какой-то причине я не могу очистить проект.
На самом деле есть ошибки, обсуждающие стратегии/ошибки вокруг этих предупреждений:
- ошибка 218326: " "Отсутствие ограничений грамматики" для системных файлов в представлении" Проблемы "действительно выполняло" маршрут исключения"
- ошибка 331749 жалуется на "Отсутствие ограничений грамматики", даже если каталог исключен.
Очевидно, что требуется больше исправлений в отношении управления этими предупреждениями.
Ответ 2
Как исправить вышеупомянутую проблему на eclipse?
Это скорее предупреждение, чем настоящая проблема. Вы можете сказать Eclipse игнорировать это при проверке файлов (Windows > Предпочтения > XML > Файлы XML > Редактоp > Проверка).
Это потому, что я пропустил некоторые файлы dtd?
Нет, это потому, что XML-документ не объявляет DTD или XSD.
Как его включить?
Конечно, вы можете добавить объявление вручную (если вы знаете, какой DTD или Schema добавить). Или вы могли бы сказать Eclipse игнорировать тот факт, что грамматика не указана, как упоминалось ранее. Или вы можете просто жить с ним.
Ответ 3
Как намекают другие, каждое предупреждение следует рассматривать отдельно.
Для вашего конкретного предупреждения -
No grammar constraints (DTD or XML schema) detected for the document. TEST-net.kindleit.gae.example.server.MessageRepositoryTest.xml /projecttest-gae-example/target/surefire-reports
Я зарегистрировал ошибку против Surefire как SUREFIRE-964, так как я вижу такое же поведение.
Чтобы исключить только эти предупреждения, вы можете перейти в "Настройки" > "Валидация". Найдите XML Validator и нажмите "Настройки". Выберите "Исключить группу", нажмите "Добавить правило", выберите "Имя папки" или "Имя файла" и нажмите "Папка браузера", чтобы выбрать целевые/достоверные отчеты. В этот момент Eclipse должен сообщить вам, что вам нужно перестроить и/или проверить. Или вы можете щелкнуть правой кнопкой мыши по вашему проекту и выбрать "Подтвердить".
Ответ 4
Это просто предупреждение. В настройках: XML/XML Files/Validation вы можете отключить его.
Ответ 5
Я не думаю, что это хорошая идея отключить его. Вы можете столкнуться с проблемами при запуске разбора и так далее. Лучше включить DTD в Каталог XML.
Перейдите в Windows → Настройки → XML → Каталог XML
Добавьте отсутствующий DTD в качестве указанных пользователем записей, и eclipse проверит его без каких-либо проблем. Возможно, вам потребуется начать проверку файла после этого.
Вы также можете найти это решение в http://juliendkim.blogspot.de/2012/09/how-to-fix-log4jdtd-xml-problem-in.html, которое описывает проблему с log4j.dtd.