Visual Studio> XML Parser> Зарегистрировать префикс URI - PullRequest
4 голосов
/ 21 мая 2009

Я начал использовать Visual Studio для написания своего XUL, потому что он дает мне смысл и проверку, так как я использую специальную XUL-XML-схему.

В этом подходе все еще есть некоторые проблемы, которые я хочу исправить, чтобы сделать VS более удобным для использования XUL-IDE.

VS ничего не знает о chrome-протоколе и выдает ошибку («Префикс URI не распознан») в следующем фрагменте xml-кода:

<!DOCTYPE window SYSTEM "chrome://myApp/locale/main.dtd">

Это не вина В.С. Поскольку он не знает протокол, он не может интерпретировать URI, он не знает, где находится main.dtd, и, следовательно, не знает сущности, которые там объявлены, что вызовет некоторые другие ошибки проверки другие места.

Моя цель - расширить синтаксический анализатор XML или VS или что-то еще, чтобы он мог интерпретировать URI. Это не должно быть трудной задачей, поскольку все, что делает Chrome, это сопоставляет URI с путем к файлу на основе информации в файле "chrome.manifest", поэтому

хром: //myApp/locale/main.dtd

на самом деле что-то вроде

Файл: /// C: /somefolder/myapp/locale/main.dtd

Мне нужно только знать, как я могу сообщить VS / анализатору XML о префиксе URI и как его интерпретировать, чтобы он ссылался на реальный файл.

У кого-нибудь есть предложения?

Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 31 мая 2009

Я бы попробовал следующее:

  1. Используйте другой тег Doctype на следующем строка ниже Chrome, кроме что этот использует файл: // URI схема.
  2. Если это не работает, попробуйте используя сам URI файла полностью заменяя хром URI.

В некоторых ситуациях допускается использование более одного тега типа документа.

1 голос
/ 05 июня 2009

Погрузитесь в Program Files в каталоге установки Visual Studio, соответствующем вашей установке.

Вы найдете подкаталог для Xml и внутри него подкаталог для схем.

Например, в моей системе каталог:

C: \ Program Files \ Microsoft Visual Studio 9.0 \ Xml \ Schemas

Любой файл схемы, который вы здесь поместите, будет сопоставлен с файлом XML, который вы редактируете, на основе URI схемы.

Я считаю (но не проверял), что DTD поддерживаются таким же образом; просто поместите свой DTD в этот каталог и убедитесь, что URI DTD совпадает.

Примечание: схемы и DTD используют URI (универсальный ресурс идентификаторы ), а не URL (универсальный ресурс локаторы ). URI на самом деле не дает никакой информации о , где он должен быть найден. Это просто имя.

Обновлено

Оказывается, Visual Studio не поддерживает DTD, поэтому моя идея не всплывает.

Вот еще одна возможность: поскольку Visual Studio поддерживает схемы, вы можете получить некоторую поддержку, преобразовав DTD в схему. Быстрый Google нашел DTD2Schema , инструмент на основе Perl на самом сайте W3 . Возможно стоит попробовать ...

...