В соответствии с этой страница некоторым пользователем с именем "w3c" пространство имен по умолчанию для HTML:
http://www.w3.org/1999/xhtml
Он явно ошибался, так как xhtml использовался для отказавшего стандарта HTML4 на основе XML. Какое правильное пространство имен я должен использовать?
Фон: Я пишу приложение, использующее XML. Я хочу иметь возможность сохранять данные в XML node с помощью пространств имен. Например,
<s:Button width="100" height="100" html:color="blue" color="black" />
Анализатору XML требуется пространство имен для префикса "html".
Как документировано W3C, кто является телом как по спецификациям XML, так и по HTML (WHATWG имеет отдельную спецификацию HTML 5, но пока она в некотором роде не синхронизирована с спецификацией W3C, WHATWG все еще считает ее W3C роль стандартизировать спецификацию как REC), пространство имен для HTML при использовании с сериализацией XML (которое иногда называют XHTML) составляет http://www.w3.org/1999/xhtml
.
Это пространство имен охватывает все версии HTML с такими сериализациями XML, которые были указаны до сих пор, включая XHTML 1.0 и 1.1, которые были в значительной степени использованы более десяти лет, XHTML 2.0, который ввел несколько модульных идей, но, возможно, инкубатор для нескольких идей, чем как реализованная версия, и "HTML5 сериализуется как XML", который иногда называют XHTML5.
Поскольку другое тело с лошадью в гонке относительно того, как указано HTML 5, WHATWG, вы можете заметить, что они также говорят, что если вы сериализуете HTML5 как XML, вы должны использовать пространство имен http://www.w3.org/1999/xhtml
и с другая сериализация либо не использует пространство имен, либо использует его. Per https://wiki.whatwg.org/wiki/FAQ#What_is_the_namespace_declaration.3F:
В XHTML вам необходимо указать пространство имен.
<html xmlns="http://www.w3.org/1999/xhtml">
В HTML атрибут xmlns в настоящее время разрешен для любого элемента HTML, но только если он имеет значение " http://www.w3.org/1999/xhtml". Он вообще ничего не делает, он просто позволяет облегчить миграцию с XHTML1. Это не декларация пространства имен в HTML, потому что HTML еще не поддерживает пространства имен. См. Вопрос, будет ли поддержка пространств имен в HTML.
Следующий FAQ также применим здесь:
HTML определяется в терминах DOM, и при разборе текста /html все элементы HTML будут автоматически помещаться в пространство имен HTML,
http://www.w3.org/1999/xhtml
. Однако, в отличие от сериализации XHTML, в сериализации HTML нет реального синтаксиса пространства имен (см. Предыдущий вопрос). Другими словами, вам не нужно объявлять пространство имен в вашей разметке HTML, как в XHTML. Тем не менее, вам разрешено указывать атрибут xmlns для каждого элемента HTML, если пространство именhttp://www.w3.org/1999/xhtml
.Кроме того, синтаксис HTML обеспечивает способ встраивания элементов из MathML и SVG. Элементы, помещенные внутри элемента контейнера
math
илиsvg
, будут автоматически помещаться в пространство имен MathML или пространство имен SVG, соответственно, парсером. Синтаксис пространства имен не требуется, но снова атрибут xmlns разрешен, если его значение является правильным пространством имен.В заключение, в то время как HTML не допускает синтаксис пространства имен XML, существует способ встраивания MathML и SVG, и атрибут xmlns может использоваться для любого элемента под заданными ограничениями, таким образом, который разумно совместим с DOM уровень.
Следующее объявление пространства имен по умолчанию required в XHTML для строго соответствующих документов:
<html xmlns="http://www.w3.org/1999/xhtml">
Корневой элемент документа должен содержать объявление xmlns для пространство имен XHTML [XMLNS]. Пространство имен для XHTML определяется как http://www.w3.org/1999/xhtml
То же самое объявление пространства имен по умолчанию необязательный в HTML5:
<html xmlns="http://www.w3.org/1999/xhtml">
... вам не нужно объявлять пространство имен в вашей разметке HTML, так как вы делать в XHTML. Однако вам разрешено указывать атрибут xmlns. каждый элемент HTML, если пространство имен http://www.w3.org/1999/xhtml
http://www.w3.org/2015/html
? Они явно относятся к двум различным семантикам.
http://www.w3.org/1998/Math/MathML
; Пространство имен SVG продолжает оставаться http://www.w3.org/2000/svg
; пространство имен XSLT продолжает оставаться http://www.w3.org/1999/XSL/Transform
; и т. д.: непрерывность .
"by some user named "w3c""
это шутка?