Где я могу найти исходные коды XHTML5?

Где я могу найти страницы X HTML 5? В основном я хочу знать, можно ли смешивать и сопоставлять XHTML 5 с другими языками XML, как XHTML 1, или нет. Например, что-то подобное в XHTML 5?

<!DOCTYPE html PUBLIC "WHAT SHOULD BE HERE?" 
          "WHAT SHOULD BE HERE?">
<html xmlns="WHAT SHOULD BE HERE?"
      xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
  <title><ui:insert name="title">Default title</ui:insert></title>
  <link rel="stylesheet" type="text/css" href="./css/main.css"/>
</head>

<body>

<div id="header">
    <ui:insert name="header">
        <ui:include src="header.xhtml"/>
    </ui:insert>
</div>


<div id="left">
  <ui:insert name="navigation" >
    <ui:include src="navigation.xhtml"/>
  </ui:insert>
</div>


<div id="center">
  <br />
  <span class="titleText"> <ui:insert name="title" /> </span>
  <hr />
  <ui:insert name="content">
    <div>
    <ui:include src="content.xhtml"/>  
    </div>
  </ui:insert>
</div>

<div id="right">
  <ui:insert name="news">
    <ui:include src="news.xhtml"/>
  </ui:insert>
</div>

<div id="footer">
  <ui:insert name="footer">
    <ui:include src="footer.xhtml"/>  
  </ui:insert>
</div>

</body>

</html>

Спасибо заранее.

Ответ 1

Вам вообще не нужен тип doctype. Они не предназначены для работы с пространствами имен и не служат никакой полезной цели в XML. (В HTML они необходимы для перехода в режим стандартов.) Если вы действительно настаиваете на том, чтобы по какой-либо причине просто использовать <!DOCTYPE html>.

Что касается пространства имен:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets">

как вы уже используете, я полагаю.

Как вы видите, нет информации о версии, которую вы используете. Это потому, что вам это не нужно. Для проверки вы можете выбрать свою цель в пользовательском интерфейсе, и браузеры никогда не смотрели на версии. То есть в браузерах нет такой вещи, как HTML3.2 или HTML4.01 или HTML5, просто "HTML", а не XHTML1.0, XHTML1.1 или XHTML5, только "XHTML". Сегодня они состоят в основном из HTML4.01/XHTML1.0 и некоторых частей HTML5, а также некоторых собственных компонентов (хотя HTML5 указал большинство из них).

Ответ 2

Это очень хороший вопрос, охватывающий нерешенные проблемы, с которыми W3C работает по состоянию на конец 2012 года:

Что касается вопроса DOCTYPE, в DOCTYPE могут существовать новые разработки: от ноябрь. 12th, 2012, HTML5 Latest Editor Draft говорится о синтаксисе HTML в разделе "8.1.1 DOCTYPE", который

  • "DOCTYPE является обязательной преамбулой [...]" = > <!DOCTYPE html>
  • "Для генераторов HTML, которые не могут выводить HTML-разметку с помощью [этого] короткого DOCTYPE, может быть вставлена ​​устаревшая строка DOCTYPE. [...]" = > <!DOCTYPE html SYSTEM "about:legacy-compat"> может использоваться, если это абсолютно необходимо (например, XML-генератор)
  • "Чтобы помочь авторам перейти от HTML4 и XHTML1, устаревшая допустимая строка DOCTYPE может быть вставлена ​​[...]" = > например. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> (или любой из 5 других, см. ниже)

Насколько я понимаю:

  • все 3 формы имеют точно такой же смысл: "этот документ - HTML5", независимо от того, какой конкретный, юридический, унаследованный PUBLIC doctype используется для соображений обратной совместимости.
  • и, используя один из них, требуется (т.е. использовать первый, если у вас нет веских причин)

Если изменения в последнюю минуту не произойдут, это должно быть включено в Рекомендацию кандидата по HTML5 W3C от 08 ноября 2012 года.

Синтаксис XHTML остается неизменным: "Документы XML могут содержать DOCTYPE, если это необходимо, но это не обязательно для соответствия этой спецификации".


Подводя итог, начиная с 8 ноября 2012 г. , любое из следующих значений будет действительным:

<!DOCTYPE html>
<!DOCTYPE html SYSTEM "about:legacy-compat">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

и

  • любой другой тип документа недействителен,
  • no doctype вообще, недействительный HTML
  • и никакой doctype еще не вариант для XML...

Ответ 3

Лучше всего, вероятно, указать спецификацию HTML5 на XHTML, которая в основном вызывает XML 1.0 5th edition spec и спецификация пространств имен. Как сказано там, в XML нет определенного DOCTYPE для HTML5, что является ответом на часть DOCTYPE вашего вопроса. В нем конкретно упоминается смешение HTML5 с другим контентом в XML-документах, поэтому это должен быть ответ на эту часть вашего вопроса.

Ответ 4

Например, что-то подобное в XHTML 5?

Нет, и вы не могли бы сделать это с XHTML 1. После того, как вы начнете делать документы FOO + BAR, они недействительны FOO или действительный BAR, только некоторая комбинация из двух (которая может соответствовать DTD и, следовательно, быть действительной FOO + BAR)

<!DOCTYPE html PUBLIC "WHAT SHOULD BE HERE?" 
      "WHAT SHOULD BE HERE?">

Пользовательский DTD, который описывает комбинацию языков разметки, которые вы используете.

При смешивании пространств имен вам обычно лучше забывать о DTD. В любом случае это не будет совместимым с HTML, поэтому text/html не может быть и речи

<html xmlns="WHAT SHOULD BE HERE?"
       xmlns:ui="http://java.sun.com/jsf/facelets">

Пространство имен XHTML не изменилось. Это то же самое, что и любая другая версия XHTML.

Ответ 5

Я боюсь, что XHTML5 не существует.

У вас может быть либо настоящий XHTML, либо один из классических XHTML DOCTYPE (см. другие ответы), либо вы можете поместить в <!DOCTYPE html> один, а затем он в основном проверяет, но тогда он больше не полностью XHTML. Он будет работать, только если вы рассматриваете его как HTML.

Например, этот файл

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head><title>test</title></head>
   <body><p>&nbsp;</p></body>
</html>

будет работать, только если вы дадите ему расширение .html. С .xhtml, никоим образом.

Вы можете думать, что сохранение как .html не имеет большого значения, но тогда это HTML, независимо от того, что говорит содержимое файла. Затем вы можете просто выбросить декларацию XML и атрибут xmlns и все другие функции XHTML.