Как Вы связываете XML с XSD?

Да. Для вашей реализации KeyListener ...

Метод keyPressed вызывается при нажатии клавиши, а метод keyReleased вызывается при отпускании клавиши, и это работает практически для любой клавиши (включая CTRL или CMD; обычно такие клавиши, как «fn» на Ноутбуки не могут быть обнаружены, но это все).

Метод keyTyped не следует использовать, если вы хотите этот уровень тонкой настройки; keyTyped запускается при нажатии и отпускании клавиши, а также будет повторяться, если удерживать клавишу в зависимости от ОС. Так что не используйте это.

20
задан ROMANIA_engineer 25 December 2017 в 17:36
поделиться

4 ответа

Попробуйте schemaLocation .

<?xml version="1.0"?>

<note
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

noNamespaceSchemaLocation отличается. Обратите внимание, что в действительности оба они являются лишь «подсказками» для потребителя XML-документа. Я никогда не сталкивался с процессором xml, который не следовал за ними; в конце концов, это рекомендация W3C. см. http://www.w3.org/TR/xmlschema-1/

Но на самом деле, он может пойти не так, как здесь , но опять же, по какой-то причине это считается ошибкой.

Короче говоря: я просто доверяю этому, пока без вреда: -)

Я не думаю, что какой-либо полуприличный xml-процессор может игнорировать этот «намек» в наши дни .

URL всегда для уникальности, но в некоторых случаях некоторая информация будет предоставлена ​​в URL.

18
ответ дан 30 November 2019 в 00:43
поделиться

xsi: noNamespaceSchemaLocation и xsi: schemaLocation предоставляют подсказки для процессоров XML, которые решают подчиниться этим подсказкам. Но они только намеки. Они не обязательно приводят ваш документ к проверке по схеме.

4
ответ дан 30 November 2019 в 00:43
поделиться

Это не глупый вопрос, но Джон Сондерс правильно .

просто как мы используем -decleration для привязки XML к DTD, как мы это делаем с XSD?

Вот суть проблемы - вы не можете. Одна из проблем с подходом DTD заключалась в том, что в документе указан механизм проверки, а не потребитель документа. После DTD вы можете взять документ XML и проверить его с помощью XSD или RELAX NG или каким-либо другим механизмом - они не связаны (по крайней мере в теории). Любая ссылка XSD является только подсказкой и является необязательной. Невозможно проверить произвольный документ .

3
ответ дан 30 November 2019 в 00:43
поделиться

Обычно я просто включаю пространство имен и ожидаю, что, если кто-то обрабатывает, он захочет проверить его, тогда они получат схему и настройте их среду обработки, чтобы он мог найти XSD. У меня был ограниченный успех с xsi: schemaLocation и такими атрибутами. Большинство проблем обычно связаны с поиском самого файла XSD. Некоторые процессоры хотят, чтобы путь был включен, что очень интересно, если XSD находится в файловой системе вместо веб-сервера.

Кажется, что каждый процессор реализует поиск немного по-своему. Некоторые используют отдельные объекты каталога схем, другие требуют, чтобы вы загружали и прикрепляли схемы отдельно. Если вы не предоставляете код для обработки документов, лучше не включать xsi: schemaLocation или xsi: noNamespaceSchemaLocation ИМХО. Единственное, что может сделать их включение, - это помешать тому, кто обрабатывает ваш документ, либо поместить схему в то же место, либо найти способ заставить выбранный процессор игнорировать или обойти спецификацию расположения.

Проблема, с которой я столкнулся, была на самом деле с DTD, которые были определены с помощью объявления SYSTEM , которое ссылалось на "c: \ somepath \ doc.dtd" . Проблема была в том, что я обрабатывал документы на коробке FreeBSD. В итоге я написал свой собственный распознаватель для сопоставления путей в стиле Windows с локальной файловой системой, поскольку не мог изменить сами документы и был обязан их проверять.

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

Проблема, с которой я столкнулся, была на самом деле с DTD, которые были определены с помощью объявления SYSTEM , которое ссылалось на "c: \ somepath \ doc.dtd" . Проблема была в том, что я обрабатывал документы на коробке FreeBSD. В итоге я написал свой собственный распознаватель для сопоставления путей в стиле Windows с локальной файловой системой, поскольку не мог изменить сами документы и был обязан их проверять.

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

Проблема, с которой я столкнулся, была на самом деле с DTD, которые были определены с помощью объявления SYSTEM , которое ссылалось на "c: \ somepath \ doc.dtd" . Проблема была в том, что я обрабатывал документы на коробке FreeBSD. В итоге я написал свой собственный распознаватель для сопоставления путей в стиле Windows с локальной файловой системой, поскольку не мог изменить сами документы и был обязан их проверять.

Как примечание, самая большая проблема, с которой я столкнулся, была на самом деле с DTD, которые были определены с помощью объявления SYSTEM , которое ссылалось на «c: \ somepath \ doc.dtd» . Проблема была в том, что я обрабатывал документы на коробке FreeBSD. В итоге я написал свой собственный распознаватель для сопоставления путей в стиле Windows с локальной файловой системой, поскольку не мог изменить сами документы и был обязан их проверять.

Как примечание, самая большая проблема, с которой я столкнулся, была на самом деле с DTD, которые были определены с помощью объявления SYSTEM , которое ссылалось на «c: \ somepath \ doc.dtd» . Проблема была в том, что я обрабатывал документы на коробке FreeBSD. В итоге я написал свой собственный распознаватель для сопоставления путей в стиле Windows с локальной файловой системой, поскольку не мог изменить сами документы и был обязан их проверять.

3
ответ дан 30 November 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: