2010-06-02 7 views
11

Gdzie mogę znaleźć próbkę X HTML 5 stron? Chcę przede wszystkim wiedzieć, czy można mieszać i dopasowywać XHTML 5 do innych języków XML, tak jak XHTML 1 czy nie. Na przykład coś takiego jest poprawne w XHTML 5?Gdzie mogę znaleźć przykładowe kody źródłowe XHTML5?

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

Z góry dziękuję.

Odpowiedz

7

Nie potrzebujesz w ogóle typu dokumentu. Nie są zaprojektowane, aby radzić sobie z przestrzeniami nazw i nie mają żadnego użytecznego zastosowania w XML. (W HTML, są one niezbędne, aby przejść do trybu standardowego.) Jeśli naprawdę chcesz mieć jeden, z jakiegokolwiek powodu, użyj po prostu <!DOCTYPE html>.

Co do nazw:

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

jak już używasz, zakładam.

Jak widać, nie ma informacji o wersji, z której korzystasz. To dlatego, że go nie potrzebujesz. W celu sprawdzenia poprawności możesz wybrać swój cel w interfejsie, a przeglądarki nigdy nie oglądały wersji. Oznacza to, że w przeglądarkach nie ma czegoś takiego jak HTML3.2 lub HTML4.01 lub HTML5, po prostu "HTML" i bez XHTML1.0, XHTML1.1 lub XHTML5, tylko "XHTML". Obecnie składają się one głównie z HTML4.01/XHTML1.0 i niektórych części HTML5, a także z części zastrzeżonych (chociaż większość z nich określono w HTML5).

+0

Więc, jeśli się nie mylę, nie można odróżnić dokumentu XHTML 1 od a dokument XHTML 5 dokumentuje wyłącznie swoje prologi, czy tak? – Behrang

+1

Należy zauważyć, że jeśli dokument XHTML jest obsługiwany z MIME-type "' application/xml' "lub" 'application/xhtml + xml'", 'xmlns =" ​​http://www.w3.org/1999/xhtml " Deklaracja przestrzeni nazw może być wymagana przez niektóre przeglądarki, aby nie uznać dokumentu za zwykły XML ... –

1

Najprościej jest prawdopodobnie specyfikacja HTML5 na section on XHTML, które najczęściej woła do XML 1.0 5th edition spec i namespaces spec. Jak to tam mówi, nie ma zdefiniowanego DOCTYPE dla HTML5 w XML, który jest odpowiedzią na część DOCTYPE twojego pytania. W szczególności wspomina o wymieszaniu HTML5 z innymi treściami w dokumentach XML, więc powinno być odpowiedzią na tę część twojego pytania.

1

Na przykład coś takiego jest poprawne w XHTML 5?

Nie, a nie można tego zrobić również za pomocą XHTML 1. Po uruchomieniu robi foo + Bar dokumentów, nie są one ważne FOO lub ważny BAR, tylko jakaś kombinacja tych dwóch (co może odpowiadać DTD, a tym samym być ważny FOO + BAR)

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

Niestandardowy DTD że opisuje kombinację języków znaczników, z których korzystasz.

Podczas mieszania przestrzeni nazw zwykle lepiej jest zapomnieć o DTD. To nie będzie kompatybilny HTML tak, więc text/html jest wykluczone

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

Przestrzeń nazw XHTML nie uległa zmianie. Jest taka sama jak każda inna wersja XHTML.

+0

Jeśli przestrzeń nazw XHTML nie uległa zmianie, to w jaki sposób weryfikator wie, czy dokument to XHTML 5, więc elementy podrzędne, takie jak

, są poprawne, czy jest to XHTML 1, aby i inne nowe elementy były nieprawidłowe? – Behrang

+1

Przestrzenie nazw nigdy nie miały nic wspólnego z walidacją. Musisz użyć jawnego walidatora XHTML 5 lub użyć walidatora schematu i przekazać mu zarówno schemat, jak i dokument. – Quentin

+0

Dlaczego więc uwzględniamy DOCTYPE i odwołujemy się do DTD, jeśli dokument XHTML nie jest sprawdzany pod kątem DTD? Co oznacza, że ​​nie można powiedzieć, czy dokument jest XHTML 1 czy XHTML 5 wyłącznie na podstawie jego prologu, czy też nie? – Behrang

2

To jest bardzo dobre pytanie, obejmujące nierozstrzygnięte kwestie W3C nadal pracuje nad jak późnego 2012 roku:

Jeśli chodzi o pytanie DOCTYPE, nie może być nowe rozwiązania na DOCTYPE względu: począwszy od 12 listopada 2012 r., HTML5 Latest Editor's Draft stwierdza, dotyczące składni HTML, w sekcji "8.1.1 DOCTYPE "że:

  1. "DOCTYPE jest wymagana preambuła [...]"=><!DOCTYPE html>
  2. " Do celów generatorów HTML, które nie mogą wyjście znaczników HTML z [że] krótkim DOCTYPE , może zostać wstawiony łańcuch starszej wersji DOCTYPE [...] "=><!DOCTYPE html SYSTEM "about:legacy-compat"> może być użyty, jeśli jest absolutnie wymagany (np. przez generator XML)
  3. " Aby pomóc autorom przejść z HTML4 i XHTML1, można użyć przestarzałego dozwolonego ciągu DOCTYPE wstawiono [...] "=> np. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> (lub dowolne z 5 innych, patrz poniżej)

mojego rozeznania:

  • wszystkie 3 postacie trzymać dokładnie to samo znaczenie: „Ten dokument jest HTML5”, bez względu na to, co konkretne, prawny Legacy PUBLIC doctype wykorzystywane ze względów wsteczną kompatybilnością
  • i użycie jednego z nich to wymagane (np. korzystania pierwszy, chyba że masz naprawdę dobre powody, aby nie)

ile występuje w ostatniej chwili zmiany, to powinien uczynić go do kandydackiej zalecenia HTML5 W3C 08 listopada 2012.

Składnia XHTML pozostaje niezmieniona w tym przypadku: "Dokumenty XML mogą zawierać DOCTYPE, jeśli jest to pożądane, ale nie jest to wymagane, aby dostosować się do tej specyfikacji."


Podsumowując, począwszy od 8 listopada 2012 r którekolwiek z poniższych byłby ważny:

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

oraz:

  • każda inna doctype nieważny ,
  • brak typu dokumentu, nieprawidłowy HTML
  • i nie doctype jeszcze opcja dla XML ...
-2

Obawiam się, że nie ma czegoś takiego jak XHTML5.

Możesz mieć prawdziwy XHTML, z jednym z klasycznych DOCTYPE XHTML (zobacz inne odpowiedzi), lub możesz umieścić w <!DOCTYPE html> jeden, a następnie głównie sprawdza, ale nie jest już w pełni XHTML. Będzie działać tylko wtedy, gdy potraktujesz go jako HTML.

Na przykład, plik ten

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

będzie działać tylko wtedy, gdy dasz mu .html rozszerzenie. Z .xhtml, nie ma mowy.

Możesz myśleć, że zapisywanie jako .html to nic wielkiego, ale to HTML, bez względu na to, co mówi zawartość pliku. Wtedy równie dobrze możesz wyrzucić deklarację XML i atrybut xmlns oraz wszystkie inne funkcje XHTML.

+0

To prawda, istnieje prawdziwy XHTML 5. Zobacz http://www.w3.org/TR/html5/introduction.html # html-vs-xhtml – sam

+0

@sam Ta sekcja nie jest normatywna. Moja argumentacja nadal trwa. Na przykład, nie ma sposobu, aby powiedzieć walidatorowi W3C, że twój dokument powinien być parsowany jako XHTML5. –

+1

Myślałem, że kłócisz się, że nie ma czegoś takiego. Pozwól mi wyjaśnić, co mówię - możliwe jest napisanie XHTML 5 (zgodnie ze specyfikacją) i podanie go jako application/xhtml + xml. Przeglądarki obsługują to, chociaż ma ograniczone zastosowanie w tym zakresie (zobacz na przykład https://mathiasbynens.be/notes/xhtml5). XHTML 5 jest również wymagany (przykład, o którym wiem, że tak jest) jako część formatu ebook EPUB3. Nie ma "prawdziwego" dokumentu dla (X) HTML5, ale to nie ma znaczenia. Nie próbowałem z nim walidatora W3C ... – sam

Powiązane problemy