Каталог XML в Eclipse WTP: как вы ссылаетесь на автономную схему XML - PullRequest
2 голосов
/ 01 февраля 2012

У меня есть документ схемы XML (предоставленный компанией, с которой я имею дело) для проверки определенного XML-файла, который требуется для их системы.

Допустим, первые несколько строк схемы выглядят так(Я изменил URI для защиты виновных!):

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.example.com/manifest-plugin"
xmlns="http://www.example.com/manifest-plugin">

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

У меня есть локальная копия XSD, которую я хотел бы использовать для проверки файла XMLЯ создаю с использованием возможностей каталога Eclipse XML.Очевидно, что поскольку URI недействителен, нет смысла позволять системе пытаться извлечь XSD из Интернета.

Допустим, локальный XSD-файл находится на моем локальном диске:

C:\xml_schemas\manifest-plugin.xsd

И первые две строки файла XML выглядят так:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>

Может ли кто-нибудь привести пример, как это сделать?

В частности:

  1. Какие значения я устанавливаю в диалоговых окнах каталога XML в Eclipse, основываясь на значениях, которые я предоставил выше?
  2. Что я помещаю в файл XML, чтобы проверить его на соответствие локальному XSD, безсбивает с толку другие системы, которые читают мой XML-файл?

Я нашел эту страницу в вики Eclipse, но лично я не нахожу инструкции очень ясными: -

Использование каталога XML в Eclipse

Я попытался установить параметры каталога XML следующим образом:

Затем добавьте

<manifest xmlns:targetNamespace="http://www.example.com/manifest-plugin">

в файл XML, но, похоже, он не работает.

Кстати, если вашверсия Eclipse не имеет каталога XML, у вас, вероятно, не установлены функции "платформы веб-инструментов (WTP)".Они поставляются с версией Eclipse для Java EE, но могут быть установлены отдельно.

Ответы [ 3 ]

2 голосов
/ 01 февраля 2012

Это должно быть довольно просто.На странице настроек каталога XML нажмите «Добавить», чтобы открыть диалоговое окно «Добавить элемент каталога XML».Там вы хотите добавить элемент каталога со следующими атрибутами:

Локальный XSD может находиться либо в вашем рабочем пространстве (с использованием переменных пути Eclipse), либо в файлесистема, внешняя по отношению к рабочей области.После добавления записи Eclipse должен иметь возможность проверять документы XML в рабочей области.

Обратите внимание, что каталог XML не имеет ничего общего с проверкой приложений XML-документов во время выполнения приложений.

Обновление. Файл XML должен содержать следующее:

<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns="http://www.example.com/manifest-plugin">
...

В Eclipse 3.6 или 3.7 вы должны увидеть диалог, подобный этому: enter image description here

1 голос
/ 01 февраля 2012

Если я не ошибаюсь, вы можете указать локальное расположение схемы, которое будет иметь приоритет над удаленным расположением файла XML-схемы.

Таким образом, если вы поместите свой XSD-файл в каталог, гдеваши XML-файлы, заголовок вашего файла manifest.xml должен быть:

<manifest xmlns="http://my.super.xsd.com" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3schools.com manifest.xsd">

Я тестировал в Eclipse, он работает (вы даже можете нажать на ссылку XSD).Теперь это работает, если ваши XSD и XML-файлы находятся в одном и том же каталоге.

Если вы хотите, чтобы ваш XSD находился в отдельном локальном расположении, вы должны использовать fileпротокол.Для вашего примера ваш XML-файл будет выглядеть так:

<manifest xmlns="http://my.super.xsd.com" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3schools.com file:///C|/xml_schemas/manifest-plugin.xsd"">

Этот пример также работает в Eclipse, хотя при нажатии на XSD он открывает веб-браузер (по крайней мере, для меня).

0 голосов
/ 07 ноября 2012

если в XML не указано schemaloaction, вы должны иметь возможность использовать XML-каталог в Eclipse для переопределения расположения схемы.

...