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

Как решить ошибку проверки на xsi: noNamespaceSchemaLocation в jdoconfig.xml

Так как я обновил сегодня до GAE 1.7.2.1, у меня есть ошибки проверки в eclipse во всех файлах jdoconfig.xml.

У меня есть содержимое jdoconfig.xml по умолчанию:

[...]
<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">
[...]

И подсказки проверки затмения:

Referenced file contains errors (http://java.sun.com/xml/ns/jdo/jdoconfig).  
For more information, right click on the message in the Problems View and 
select "Show Details..."

При нажатии на детали я вижу несколько строк, например:

s4s-elt-character: Non-whitespace characters are not allowed in schema elements
other than 'xs:appinfo' and 'xs:documentation'. Saw 'var_U = "undefined";'.

В разных строках и другом содержимом в "Пила..."

Это происходит в каждом отдельном проекте, я начинаю использовать "Новый проект веб-приложений..." из плагина Google.

У кого-нибудь есть эта проблема? Любое исправление?

4b9b3361

Ответ 1

Попробуйте следующее:

<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd">

За ответ здесь Проверка jdoconfig с неправильным URL

xmlns не является реальным файлом/каталогом, больше пространства имен, поэтому не должно существовать! Версия добавлена ​​для получения реального XSD файла, а именно http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd

Ответ 2

Здесь есть пара проблем.

Синтаксическая проблема заключается в том, что URI, который вы указываете как значение xsi:noNamespaceSchemaLocation, перенаправляется на http://www.oracle.com/technetwork/java/index.html и возвращает HTML-документ, Используемый вами проверщик XSD безуспешно пытается проанализировать

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" 
          content="text/html; charset=utf-8" />
    <script type="text/javascript">
      var _U = "undefined";
      var g_HttpRelativeWebRoot = "/ocom/";
      var SSContributor = false;
...

как документ схемы XSD, и по той или иной причине его попытки объяснить, что пошло не так, сосредоточиться на поиске строки var_U = "undefined" в месте, где он не ожидал увидеть символьные данные.

Тогда есть некоторые концептуальные проблемы.

  • Ваш документ находится в пространстве имен с именем http://java.sun.com/xml/ns/jdo/jdoconfig. Почему вы указываете на валидатор схемы на схему без целевого пространства имен (что соответствует noNamespaceSchemaLocation), если вы хотите проверить свой документ? Учитывая, что (хотя бы некоторые из них) ваши элементы документа являются подходящими для пространства имен, вам нужно (как уже говорилось, joncalhoun) использовать xsi:schemaLocation и предоставить пару, сообщающую валидатору, где он может найти документ схемы для каждого пространства имен, которое вы хотите о нем знать.

  • Возможно, что документ схемы использовался для обслуживания из местоположения http://java.sun.com/xml/ns/jdo/jdoconfig, но поскольку это, по-видимому, стандартное пространство имен, названное для вашего словаря, это на самом деле не очень вероятно. Большинство систем достаточно хорошо различаются между пространствами имен, которые являются абстрактными и плохо определенными вещами, и документами схемы, которые обычно являются документами XML, которые определяют конкретные компоненты схемы XSD для данного пространства имен. Нельзя использовать URI для документа схемы как имя пространства имен, но это необычно.

Обратите внимание, что URL-адрес, указанный joncalhoun для документа схемы (http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd), действительно разрешает (после перенаправления на http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/jdo/jdoconfig_3_0.xsd) документ схемы, который указывает http://java.sun.com/xml/ns/jdo/jdoconfig как его целевое пространство имен. (Это означает, что даже если вам удалось получить этот документ схемы, указав его URI как значение xsi:noNamespaceSchemaLocation, вы получили бы ошибку, потому что это не документ схемы для элементов и атрибутов без пространства имен.)

Это заставляет меня думать, что вы должны снова прочитать ответ joncalhoun и попробовать его снова, осторожно. Если это не сработало, когда вы попробовали это, мои деньги говорят, что либо вы попробовали что-то подобное, но не совсем то, что он предложил, либо решили эту проблему, но это просто выявило какую-то другую проблему, которую легко ошибиться для отказа.

Ответ 3

Одним из решений является установка каталога XML в настройках Eclipse.

Детали:
Элемент ввода: URI
Местонахождение: http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd
URI: http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd
Тип ключа: имя пространства имен
Ключ: http://java.sun.com/xml/ns/jdo/jdoconfig

Ответ 4

Синтаксические и концептуальные проблемы C.M. упоминания - проблема с плагином и настройками Google, где оба рекомендуют,

xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig

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

Я использовал метод LuboM, и это сработало для меня. Ни LuboM, ни joncalhoun - это ответ, хотя, поскольку он связывает меня с jdo 3.0

Oracle должен будет предоставить исправление. Очевидно, их цель состояла в том, чтобы самостоятельно решить проблемы пространства имен в версиях jdo.

Ответ 5

Возможно, вы попробовали этот путь для решения своей проблемы:

<?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">

Ответ 6

Вот что я сделал, чтобы исправить это:

<?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_3_0.xsd">

Ответ 7

У меня была такая же проблема, и я исключил этот файл jdoconfig.xml из проверки Eclipse. Несмотря на то, что ваш Eclipse создает для него ошибку, он никоим образом не влияет на возможность правильного развертывания проекта в GAE.

Вот как исключить только файл jdoconfig.xml, чтобы избавиться от этой досадной ошибки:

Щелкните правой кнопкой мыши на Eclipse Project, ->Properties->Validation->XML Validator, нажмите кнопку "..." для дальнейших настроек.

Вы должны увидеть опции "Включить группу" и "Исключить группу". Нажмите "Исключить группу- > Добавить правило...- > Папка или имя файла и перейдите к своему файлу.

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

Это работало для меня в Eclipse Luna.

Ответ 8

Я уверен в этом:

Right Click Project -> Properties -> Validation -> XML Syntax
  • Включить специальные настройки проекта (если вам нужно)
  • В разделе "Проверка файлов" для "Без грамматики" Выберите "Предупреждение"
  • Нажмите "Ok"
  • Если вы запрашиваете подтверждение файла, нажмите "Да"

Вы можете сделать то же самое для всех проектов, перейдя в Windows -> Preferences.

Убедитесь, что вы проверяете файл (шаг 4).