Да. Для вашей реализации KeyListener ...
Метод keyPressed
вызывается при нажатии клавиши, а метод keyReleased
вызывается при отпускании клавиши, и это работает практически для любой клавиши (включая CTRL или CMD; обычно такие клавиши, как «fn» на Ноутбуки не могут быть обнаружены, но это все).
Метод keyTyped
не следует использовать, если вы хотите этот уровень тонкой настройки; keyTyped запускается при нажатии и отпускании клавиши, а также будет повторяться, если удерживать клавишу в зависимости от ОС. Так что не используйте это.
Попробуйте 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.
xsi: noNamespaceSchemaLocation и xsi: schemaLocation предоставляют подсказки для процессоров XML, которые решают подчиниться этим подсказкам. Но они только намеки. Они не обязательно приводят ваш документ к проверке по схеме.
Это не глупый вопрос, но Джон Сондерс правильно .
просто как мы используем -decleration для привязки XML к DTD, как мы это делаем с XSD?
Вот суть проблемы - вы не можете. Одна из проблем с подходом DTD заключалась в том, что в документе указан механизм проверки, а не потребитель документа. После DTD вы можете взять документ XML и проверить его с помощью XSD или RELAX NG или каким-либо другим механизмом - они не связаны (по крайней мере в теории). Любая ссылка XSD является только подсказкой и является необязательной. Невозможно проверить произвольный документ .
Обычно я просто включаю пространство имен и ожидаю, что, если кто-то обрабатывает, он захочет проверить его, тогда они получат схему и настройте их среду обработки, чтобы он мог найти 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 с локальной файловой системой, поскольку не мог изменить сами документы и был обязан их проверять.