Viennamade: inline-frame: xhtml-dtd frameset oder transitional?

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

  1. 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

    --
    Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
    Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
    Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
    1. 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

    2. 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

      1. 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

        1. 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

          --
          MudGuard? Siehe http://www.Mud-Guard.de/
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. 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

            --
            Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
            Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
            Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
            1. 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

              --
              MudGuard? Siehe http://www.Mud-Guard.de/
              Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            2. 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

              --
              MudGuard? Siehe http://www.Mud-Guard.de/
              Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.