Белое пространство внутри XML/HTML-тегов
Я знаю, как белое пространство обрабатывается в текстовых узлах для XML и HTML, но я не уверен в белых пространствах внутри самих элементов тега. Очевидно, что белые пробелы используются внутри тегов для разделения атрибутов, но допустимо ли иметь белые пробелы после '<' или до ' > '?
Например:
< foo >
< /foo >
Или даже:
<foo>
< / foo >
Являются ли эти теги действительными XML? Что относительно HTML, если они были фактическими именами тегов HTML?
Ответы
Ответ 1
Спецификация (раздел 3.1 Начальные теги, теги конца и теги с пустыми элементами) говорит, что между '<'
и имя тега между '</'
и именем тега или внутри '/>'
. Вы можете добавить пробел после имени тега, но:
<foo >
</foo >
<bar
/>
Ответ 2
</
и />
являются токенами, поэтому пробел между двумя символами будет синтаксической ошибкой. И как Guffa указал, пробелы между входным токеном и именем не допускаются. Но вы отлично добавляете пробел между тегом элемента и закрывающим токеном >
(или />
).
РЕДАКТИРОВАТЬ, чтобы отразить правильное цитирование Guffa спецификации XML.
Ответ 3
Стандарт HTML [5], похоже, точно соответствует стандарту XML, как описано Guffa...
http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html#start-tags
Ответ 4
Вы не можете начать с пробела, но вы можете (опционально) кончить одним (перед вторым угловым кронштейном, который закрывает первый тег).