Использование имени XML-элемента

Можно ли использовать hyphen - в имени элемента XML?

например.

<rank-type>Rank</rank-type>

Ответ 1

Как легко сказано Vinko и хакером, ответ

Да, тире разрешены в именах, будь то имена элементов или имена атрибутов. Однако тире не может быть первым символом имени.

стандарт W3C определяет имена следующим образом (раздел 2.3)

NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
NameChar  ::=   NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
Name  ::= NameStartChar (NameChar)*

Игнорирование различных расширенных символов ASCII и двухбайтовых символов (которые начинаются С# знака в определении синтаксиса), имя должно начинаться с буквы верхнего или нижнего регистра (AZ), двоеточия (:) или подчеркивания, Символы, следующие за этим стартовым символом, если таковые имеются, т.е. Если имя не является одним символом, могут быть любыми допустимыми стартовыми символами и/или любыми цифрами (0-9), знаменитой чертой (-) и точкой (.)

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

Сам W3C неявно оправдывает использование тире, поскольку они широко используются в XSL, например.

Ответ 2

Это не имя атрибута, а имя элемента.

В любом случае - поддерживается как для атрибутов, так и для имен элементов в спецификации, пока имя не начинается с него (< -foo > не является допустимым именем элемента).

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

Рекомендации W3CSchools (полемика)

Сделайте имена описательными. Имена с Подчеркивающий разделитель хорош: < first_name > , < last_name > .

Имена должны быть короткими и простыми, например это: < book_title > не так: <. The_title_of_the_book >

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

Избегайте "." персонажи. Если вы назовете что-то "first.name", некоторое программное обеспечение может считаться, что "имя" является свойством объект "первым".

Избегайте символов ":". Колонны зарезервирован для использования для чего-то (более поздние).

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

Неанглийские буквы, такие как éòá, совершенно легальны в XML, но следите за проблемами, если ваш поставщик программного обеспечения не поддерживает их.

Ответ 3

Да, это так. Но ваш пример показывает имя элемента, а не имя атрибута. Это также верно.