2010-06-02 3 views
11

Wo finde ich Beispiel X HTML 5 Seiten? Ich möchte vor allem wissen, ob es möglich ist, XHTML 5 mit anderen XML-Sprachen wie XHTML 1 zu kombinieren. Zum Beispiel ist so etwas in XHTML 5 gültig?Wo finde ich Beispiel-XHTML5-Quellcodes?

<!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> 

Vielen Dank im Voraus.

Antwort

7

Sie brauchen überhaupt keinen Doctype. Sie sind nicht für die Verwendung mit Namespaces ausgelegt und erfüllen keinen nützlichen Zweck in XML. (In HTML sind sie notwendig, um in den Standardmodus zu gelangen.) Wenn Sie wirklich darauf bestehen, einen zu haben, aus welchem ​​Grund auch immer, verwenden Sie einfach <!DOCTYPE html>.

Wie für den Namespace:

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

wie Sie bereits verwenden, gehe ich davon aus.

Wie Sie sehen, gibt es keine Informationen über die von Ihnen verwendete Version. Das ist, weil du es nicht brauchst. Zur Validierung können Sie Ihr Ziel auf der Benutzeroberfläche auswählen, und Browser haben sich nie mit Versionen befasst. Das heißt, in Browsern gibt es kein HTML3.2 oder HTML4.01 oder HTML5, nur "HTML" und kein XHTML1.0, XHTML1.1 oder XHTML5, nur "XHTML". Heute bestehen diese hauptsächlich aus HTML4.01/XHTML1.0 und einigen Teilen von HTML5, sowie einigen proprietären Teilen (obwohl HTML5 die meisten davon spezifiziert hat).

+0

Also, wenn ich mich nicht irre, ist es nicht möglich, ein XHTML 1 Dokument zu unterscheiden von und XHTML 5 dokumentieren allein durch das Betrachten ihrer Prologe, ist das richtig? – Behrang

+1

Beachten Sie, dass, wenn XHTML-Dokument mit MIME-Typ bedient wird "' application/xml'" oder "'application/xhtml + xml'", der 'xmlns = "http://www.w3.org/1999/xhtml" 'Namespace-Deklaration kann von einigen Browsern erforderlich sein, um Ihr Dokument nicht als einfaches XML zu betrachten ... –

1

Ihre beste Wette ist wahrscheinlich die HTML5-Spezifikation section on XHTML, die meist auf die XML 1.0 5th edition spec und die namespaces spec ruft. Wie es dort heißt, gibt es keinen definierten DOCTYPE für HTML5 in XML, was die Antwort auf den DOCTYPE-Teil Ihrer Frage ist. Es wird ausdrücklich darauf hingewiesen, dass HTML5 mit anderen Inhalten in XML-Dokumenten vermischt werden sollte. Dies sollte die Antwort auf diesen Teil Ihrer Frage sein.

1

Zum Beispiel ist so etwas in XHTML 5 gültig?

Nein, und Sie könnten es auch nicht mit XHTML 1 tun. Sobald Sie tun FOO + BAR Dokumente beginnen, sind sie nicht gültig FOO oder gültige BAR, nur eine Kombination der beiden (die einer DTD entsprechen kann und somit gültig FOO + BAR sein)

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

Eine benutzerdefinierte DTD, dass beschreibt die Kombination der Markup-Sprachen, die Sie verwenden.

Beim Mischen von Namespaces ist es normalerweise besser, DTDs zu vergessen. Es wird nicht HTML kompatibel sein wie auch immer, so text/html ist indiskutabel

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

Der XHTML-Namensraum nicht verändert hat. Dies ist das gleiche wie jede andere Version von XHTML.

+0

Wenn der XHTML-Namespace nicht geändert wurde, wie weiß ein Validierer, ob das Dokument XHTML 5 ist, also Elemente wie

oder XHTML 1, so dass und andere neue Elemente ungültig sind? – Behrang

+1

Namespaces hatten nie etwas mit Validierung zu tun. Sie müssen entweder einen expliziten XHTML 5-Validator verwenden oder einen Schema-Validator verwenden und diesem sowohl ein Schema als auch Ihr Dokument übergeben. – Quentin

+0

Warum also fügen wir sogar einen DOCTYPE hinzu und verweisen auf eine DTD, wenn das XHTML-Dokument nicht gegen die DTD validiert ist? Auch was Sie sagen, impliziert, dass es nicht möglich ist, zu sagen, ob ein Dokument XHTML 1 oder XHTML 5 ist, nur indem es seinen Prolog betrachtet, oder ist es? – Behrang

2

Dies ist eine sehr gute Frage und deckt noch offenen Fragen der W3C arbeitet immer noch an wie in der letzten 2012:

die DOCTYPE Frage betrifft, so neue Entwicklungen auf der DOCTYPE Materie sein könnte: ab Nov. 12th, 2012, die HTML5 Latest Editor's Draft Staaten, die die HTML-Syntax betreffen, im Abschnitt "8.1.1 Die DOCTYPE "dass:

  1. "A DOCTYPE ist eine erforderliche Präambel [...]"=><!DOCTYPE html>
  2. " Für die Zwecke von HTML-Generatoren, die nicht ausgeben kann HTML-Markup mit [dass] kurze DOCTYPE kann ein DOCTYPE-Legacy-String eingefügt werden [...] "=><!DOCTYPE html SYSTEM "about:legacy-compat"> kann verwendet werden, wenn absolut erforderlich (z. B. durch einen XML-Generator)
  3. " Um Autoren den Übergang von HTML4 und XHTML1 zu erleichtern, kann eine veraltete zulässige DOCTYPE-Zeichenfolge sein eingefügt [...] "=> zB <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> (oder eines von 5 weiteren, siehe unten)

Zu meinem Verständnis:

  • alle drei Formen genau die gleiche Bedeutung halten: „Dieses Dokument ist HTML5“, egal, was die spezifische, Recht, Vermächtnis PUBLIC Doctype für Abwärtskompatibilität Gründe verwendet werden
  • und mit einer von ihnen ist erforderlich (dh verwenden, um die erste, es sei denn, Sie wirklich gute Gründe haben, nicht zu)

Es sei denn, in letzter Minute Änderungen auftritt, das es in der Empfehlung HTML5 W3C Candidate machen sollte 8. November 2012.

Die XHTML-Syntax bleibt unverändert zu diesem Thema: "XML-Dokumente können einen DOCTYPE enthalten, wenn dies gewünscht wird, aber dies ist nicht erforderlich, um dieser Spezifikation zu entsprechen."


Um es zusammenzufassen, ab 8. November 2012, eine der folgenden wäre gültig sein:

<!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"> 

Und:

  • andere Doctype ungültig ,
  • kein Doctype überhaupt, ungültig HTML
  • und keine Doctype immer noch eine Option für XML ...
-2

Ich fürchte, es nicht so etwas wie XHTML5 ist.

Sie können entweder echtes XHTML haben, mit einem der klassischen XHTML DOCTYPEs (siehe andere Antworten), oder Sie können das <!DOCTYPE html> einfügen, und dann validiert es meistens, aber dann ist es nicht mehr vollständig XHTML. Es funktioniert nur, wenn Sie es als HTML behandeln.

Zum Beispiel dieser Datei

<?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> 

wird nur funktionieren, wenn Sie ihm eine .html Erweiterung geben. Mit .xhtml, auf keinen Fall.

Sie können denken, dass Speichern als .html keine große Sache ist, aber dann ist es HTML, unabhängig davon, was der Inhalt der Datei sagen. Dann können Sie genauso gut die XML-Deklaration und das xmlns-Attribut sowie alle anderen XHTML-Funktionen wegwerfen.

+0

Nicht wahr, es gibt echtes XHTML 5. Siehe http://www.w3.org/TR/html5/introduction.html # html-vs-xhtml – sam

+0

@sam Dieser Abschnitt ist nicht normativ. Mein Argument steht immer noch. Zum Beispiel gibt es keine Möglichkeit, dem W3C-Validator mitzuteilen, dass Ihr Dokument als XHTML5 analysiert werden soll. –

+1

Ich dachte, du hast argumentiert, dass es so etwas nicht gibt. Lassen Sie mich klarstellen, was ich sage - es ist möglich, XHTML 5 (gemäß der Spezifikation) zu schreiben und es als application/xhtml + xml zu verwenden. Browser unterstützen dies, obwohl sie in dieser Hinsicht nur eingeschränkt verwendbar sind (siehe beispielsweise https://mathiasbynens.be/notes/xhtml5). XHTML 5 wird auch benötigt (ein Beispiel, das ich zufällig kenne) als Teil des EPUB3-E-Book-Formats. Es gibt keinen "echten" Doctype für (X) HTML5, aber das spielt keine Rolle. Ich habe den W3C Validator damit nicht ausprobiert ... – sam