inline-frame: xhtml-dtd frameset oder transitional?
Viennamade
- html
0 Thomas Luethi0 Viennamade0 molily
Hallo liebe Forumsteilnehmer!
1. Auf diesem Dokument (Achtung, nur mit schneller Verbindung folgen!) http://www.w3.org/TR/xhtml1/dtds.html steht das Element iframe unter der dtd transitional.
2. Für ein iframe-Element wird kein frameset deklariert.
3. Ein Dokument mit dtd transitional und iframe validiert erfolgreich bei w3c.
Also gehe ich davon aus, daß bei Verwendung eines inline-frames die dtd transitional zu verwenden ist. Stimmt das?
Danke
Viennamade
Hallo,
Also gehe ich davon aus, daß bei Verwendung eines inline-frames die dtd transitional zu verwenden ist. Stimmt das?
Ja.
Das iframe-Element kommt nur in der XHTML 1.0 Transitional DTD
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
vor, nicht aber in XHTML 1.0 Strict oder XHTML 1.0 Frameset.
Gruesse,
Thomas
Hallo!
Ja.
Das iframe-Element kommt nur in der XHTML 1.0 Transitional DTD
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
vor, nicht aber in XHTML 1.0 Strict oder XHTML 1.0 Frameset.
Alles klar, Danke Thomas!
Viennamade
Hallo,
Das iframe-Element kommt nur in der XHTML 1.0 Transitional DTD
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
vor, nicht aber in XHTML 1.0 Strict oder XHTML 1.0 Frameset.
Jetzt muss ich mal streng sein: Die Frameset-DTD gleicht der Transitional-DTD bis auf die bekannten Frames-Elemente und den Dokumentenaufbau. Daher ist iframe durchaus in XHTML 1.0 Frameset erlaubt (http://www.w3.org/TR/xhtml1/dtds.html#dtdentry_xhtml1-frameset.dtd_iframe), und zwar im body, wo nach Regeln gespielt wird, die denen der Transitional-DTD gleichen:
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>DTD- und Schema-Valides XHTML 1.0 Frameset-Dokument</title>
</head>
<frameset>
<noframes>
<body>
<iframe src="iframe.html"><a href="iframe.html">iframe</a></iframe>
</body>
</noframes>
</frameset>
</html>
Besonders sinnvoll ist das natürlich nicht, aber hey, das war nicht die Frage. ;)
Mathias
Hallo Mathias,
[...] Daher ist iframe durchaus in XHTML 1.0 Frameset erlaubt
Danke fuer die Korrektur und das einleuchtende - und sogar sehr
abwaerts-kompatible ;-) - Beispiel!
Freundliche Gruesse
Thomas
Hi,
Danke fuer die Korrektur und das einleuchtende - und sogar sehr
abwaerts-kompatible ;-)
aber dennoch falsche ;-)
- Beispiel!
frameset muß mindestens ein frameset oder frame enthalten und darf zusätzlich noch ein noframes enthalten. Im gegebenen frameset war aber weder frame noch frameset enthalten...
<!ELEMENT FRAMESET - - ((FRAMESET|FRAME)+ & NOFRAMES?) -- window subdivision-->
cu,
Andreas
Hallo Andreas,
<!ELEMENT FRAMESET - - ((FRAMESET|FRAME)+ & NOFRAMES?) -- window subdivision-->
Wo hast Du _das_ denn wieder her?
Vermutlich aus HTML 4.01:
http://www.w3.org/TR/html401/present/frames.html#h-16.2.1
In der XHTML 1.0 Frameset DTD steht:
http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd
http://www.w3.org/TR/xhtml1/dtds.html#dtdentry_xhtml1-frameset.dtd_frameset
<!ELEMENT frameset (frameset|frame|noframes)*>
d.h. es reicht IMHO auch ein <noframes> Element als
einziges Kind eines <frameset> Elements.
Das Beispiel von molily ist jedenfalls gemaess Validator valide.
Das Beispiel ist vielleicht abwaertskompatibel und funktionstuechtig
fuer Browser, die gar keine Frames und IFrames koennen.
Aber bei Browsern, die Frames koenn(t)en, wird der
Noframes-Bereich ja gar nicht angezeigt, somit sieht
man dort gar rein nichts (ausser dem TITLE im
Fensterrahmen...), was seine Praxistauglichkeit doch
etwas einschraenkt... ;-)
Gruesse,
Thomas
Hi,
<!ELEMENT FRAMESET - - ((FRAMESET|FRAME)+ & NOFRAMES?) -- window subdivision-->
Wo hast Du _das_ denn wieder her?
Vermutlich aus HTML 4.01:
Ja, sorry, mein Fehler, ist aus HTML 4.01.
<!ELEMENT frameset (frameset|frame|noframes)*>
Ja, das mit dem & ist in XML formal nicht ausdrückbar - eine der Einschränkunge von XML gegenüber allgemeinem SGML.
Da fehlt m.E. in der DTD der entsprechende Kommentar, so wie z.B. beim a-Element ja auch als Kommentar dabeisteht, daß sie nicht verschachtelt werden dürfen (was in XML auch nicht formal ausdrückbar ist).
Daß nur ein noframes erlaubt ist, steht ja auch als Kommentar dabei:
<!-- only one noframes element permitted per document -->
d.h. es reicht IMHO auch ein <noframes> Element als
einziges Kind eines <frameset> Elements.
Noch extremer: ein frameset braucht in XHTML 1.0 gar keinen Inhalt zu haben - da steht ja ein * dahinter, nicht ein +.
Also ziehe ich meine Behauptung, daß das Beispiel falsch ist, zurück und ersetze sie durch die Behauptung, daß das Beispiel sinnlos ist. ;-)
cu,
Andreas
Hi,
Nachtrag:
Die Ausschlüsse, die die Schachtelung betreffen (a nicht in a, form nicht in form) werden in XHTML 1.0-Standard ausdrücklich erwähnt im Kapitel der Unterschiede zu HTML 4.01. http://www.w3.org/TR/xhtml1/#h-4.9
Der Unterschied mit dem in XHTML 1.0 evtl. leeren frameset wird bei den Unterschieden nicht aufgelistet.
M.E. liegt hier ein Fehler im Standard vor - es müßte entweder darauf hingewiesen werden, daß das jetzt erlaubt ist oder aber wie bei der Schachtelung darauf hingewiesen werden, daß dies nur formal nicht ausgedrückt werden kann.
cu,
Andreas