В чем полезность типов NMTOKEN и NMTOKENS? - PullRequest
18 голосов
/ 27 апреля 2011
  1. Значение NMTOKEN следует тем же правилам, что и имя XML, за исключением того, что с NMTOKEN любой из разрешенных символов может быть первым символом. В отличие от типа XML string, значения NMTOKEN не могут содержать пробелов. Тем не менее я не вижу его полезности.

    Так когда и почему мы будем использовать тип NMTOKEN вместо типа string?

  2. NMTOKENS позволяет нам указать несколько значений NMTOKEN (разделенных пробелами) в одной строке. Этот тип имеет еще меньший смысл, поскольку он также позволяет значению содержать пробельные символы, что, по сути, означает, что тип NMTOKENS и тип string могут содержать абсолютно одинаковые значения.

    Так, когда этот тип полезен?

Ответы [ 3 ]

21 голосов
/ 29 апреля 2011

NMTOKEN и NMTOKENS существуют в XML-схеме только для совместимости с DTD, предшественником XML-схемы, которые имели такие типы атрибутов.DTD имеет несколько других типов, поэтому они не выделяются как избыточные.

Поэтому используйте NMTOKEN и NMTOKENS при преобразовании DTD в XML-схему.

Добавление: эти и другие все типы заглавных букв попадают в одну категорию.Они отмечены в XML Schema Rec текстом: «Для совместимости NMTOKEN следует использовать только для атрибутов».

Если они точно соответствуют вашим потребностям, возможно, будет проще использовать только их, но способ XML-схемы - это получить из xs:string или xs:token и ограничить по необходимости с помощью pattern фасета.Или, по моему опыту, чаще используйте xs:string или xs:token как есть и называйте его достаточно близко.

0 голосов
/ 24 января 2019

NMTOKENS - это очень полезный тип данных, он допускает использование букв, цифр и специальных символов '.', ':' И '-' См. .

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

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

0 голосов
/ 12 октября 2014

Я думаю, NMTOKEN полезны для определения значений, которые соответствуют HTML5-совместимым значениям идентификаторов или именам классов HTML. В отличие от предыдущих версий HTML, HTML5 допускает идентификаторы, которые начинаются с цифры.

NMTOKENS полезны для (разделенных запятыми) списков идентификаторов HTML5 или классов HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...