Как решить ошибку проверки на 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">
[...]
и проверка eclipse бросает:
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.
у кого-нибудь есть эта проблема? Что-нибудь исправить?
8 ответов
попробуйте это:
<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
здесь есть пара проблем.
синтаксическая проблема заключается в том, что 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"
в a место, где он не ожидал увидеть символьные данные.
тогда есть некоторые концептуальные проблемы.
ваш документ в пространстве имен с именем
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
, вы получите ошибку, потому что это не документ схемы для элементов и атрибутов без пространства имен.)
одним из решений является установка XML-каталога в настройках Eclipse.
детали:
Элемент ввода: URI
Местонахождение:http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd
Ури:http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd
Тип ключа: Namespace name
Ключ:http://java.sun.com/xml/ns/jdo/jdoconfig
синтаксические и концептуальные вопросы C. M. упоминает проблемы с плагином и настройками Google, где оба рекомендуют,
xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig
Я специально не использую jdo, но я все равно получаю ошибку проверки с этим пространством имен. Это было нормально с этим пространством имен до недавнего времени.
я использовал метод Lubomбыл и он работал для меня. Ни LuboM, ни joncalhoun-это ответ, хотя, поскольку он связывает меня с jdo 3.0
Oracle должен будет предоставить затруднительное положение. По-видимому, их целью было решить проблемы пространства имен сами по версиям jdo.
вот что я сделал, чтобы исправить это:
<?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">
Я успех на этом:
Right Click Project -> Properties -> Validation -> XML Syntax
- включить конкретные настройки проекта (Если вам нужно)
- в разделе Проверка файлов для не указанной грамматики выберите "предупреждение"
- Нажмите "Ok"
- если вы попросите проверить файл, нажмите "Да"
Вы можете сделать то же самое для всех проектов будут Windows -> Preferences
.
убедитесь, что вы проверяете файл (Шаг 4).
У меня была та же проблема, и я исключил только этот jdoconfig.xml-файл из проверки Eclipse. Несмотря на то, что Eclipse выдает ошибку для него, это никоим образом не влияет на возможность правильно развернуть проект в GAE.
вот как исключить только jdoconfig.xml-файл, чтобы избавиться от этой досадной ошибки:
Правой Кнопкой Мыши Eclipse Project, ->Properties->Validation->XML Validator
, нажмите на кнопку "... кнопка " Дополнительные параметры.
вы должны увидеть включить группу и исключить параметры группы. Щелчок Исключить Группу - >Добавить Правило...- >Имя папки или файла, и перейдите к файлу.
очистить или перестроить проект. Ошибка проверки должна исчезнуть.
это сработало для меня в Eclipse Luna.
вы могли бы попробовать этот путь, чтобы решить вашу проблему:
<?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">