В чем польза типов NMTOKEN и NMTOKENS?
-
Значение NMTOKEN
следует тем же правилам, что и имя XML, за исключением NMTOKEN
любой из допустимых символов может быть первым символом. В отличие от типа XML string
значения NMTOKEN
can not содержат пробелы. Тем не менее я не вижу его полезности.
Итак, когда и почему мы будем использовать тип NMTOKEN
вместо типа string
?
-
NMTOKENS
позволяет указать несколько значений NMTOKEN
(разделенных пробелами) в одной строке. Этот тип имеет еще меньшее значение, поскольку он также позволяет содержать символы пробелов, что по существу означает, что тип NMTOKENS
type и string
может содержать точно такие же значения.
Итак, когда этот тип полезен?
Ответы
Ответ 1
NMTOKEN
и NMTOKENS
существуют в XML-схеме только для совместимости с DTD, предшественником XML-схемы, которая имеет эти типы атрибутов. DTD имеет несколько других типов, поэтому они не выделяются как избыточные.
Так что используйте NMTOKEN
и NMTOKENS
, когда вы конвертируете DTD в XML-схему.
Приложение: те и другие все типы кепок попадают в одну категорию. Они помечены в XML Schema Rec с текстом: "Для совместимости NMTOKEN следует использовать только по атрибутам".
Если они точно соответствуют вашим потребностям, проще всего использовать их, но способ XML Schema состоит в том, чтобы вывести из xs:string
или xs:token
и ограничить по мере необходимости фасет pattern
. Или, чаще всего, по моему опыту, используйте xs:string
или xs:token
as-is и назовите его достаточно близко.
Ответ 2
Я думаю, NMTOKEN полезны для определения значений, которые соответствуют значениям идентификатора совместимого с HTML5 или именам классов HTML. Вопреки предыдущим версиям HTML, HTML5 разрешает идентификаторы, начинающиеся с цифры.
NMTOKENS полезны для (разделенных запятыми) списков идентификаторов HTML5 или классов HTML.
Ответ 3
NMTOKENS является очень полезным типом данных, они позволяют алфавитов, цифры и, „:“ и „-“ специальные символы "" См.
По моему опыту, они очень удобны для определения многозначных атрибутов, которые могут иметь вышеуказанные символы. В XML другой метод определения многозначных атрибутов будет включать ограничение типа строки с помощью регулярного выражения, что более привлекательно (однако, гибко), чем использование типа NMTOKENS.
Конечно, можно использовать другой подход к моделированию данных с элементами, но NMTOKENS - самый короткий механизм для объявления атрибута с несколькими значениями.
Ответ 4
NMTOKEN позволяет XML обрабатывать или обрабатывать пробелы как символы. Поскольку атрибуты не принимают больше одного слова в качестве значений, NMTOKEN позволяет нам писать слова Нью-Йорк, Новая Зеландия или президент Обама, у которых есть разделители пробелов.