XaraX: IE als Vorreiter beim DTD-Laden

Hallo,

gerade bin ich am Erstellen einer Dokumentation von Quellcode, wobei ich auf XML setze. Nun habe ich vorab ein Testdokument erstellt:

http://eddi.to-grip.de/versuch/

<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE Objektinfo SYSTEM "info.dtd">
<a>
 <b n="datei">
  Infoseite des Objekts
 </b>
 <c>
  <d>Generelle Informationen</d>
  <e>
   <f>Objektname</f>
   <f l="&a;">datei&c;</f>
  </e>
 </c>
</a>

Überraschend vorbildlich verhält sich der IE 6 und läd die DTD. Das hat mit erstaunt. Welcher Browser kann das auf Linux? Bzw. weiß jemand, ob bei Mozilla schon was in arbeit ist, um dies auch zu ermöglichen?

Gruß aus Berlin!
eddi

  1. Hallo,

    <?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
    <!DOCTYPE Objektinfo SYSTEM "info.dtd">
    <a>

    Das Wurzelelement lautet Objektinfo und nicht a!

    Überraschend vorbildlich verhält sich der IE 6 und läd die DTD. Das hat mit erstaunt. Welcher Browser kann das auf Linux? Bzw. weiß jemand, ob bei Mozilla schon was in arbeit ist, um dies auch zu ermöglichen?

    Der IE 6 liest die DTD, prueft die formale Syntax und expandiert Entitys, aber es findet keine Validierung statt (MSXML = nicht-validierender Parser). Deshalb erscheint auch keine Fehlermeldung bei Deinem nicht mit der DTD konformem XML-Dokument.

    Mozilla interpretiert externe Entity-Referenzen nur ansatzweise: http://www.mozilla.org/newlayout/xml/#dtd.

    MfG, Thomas

    1. Hallo Thomas,

      <?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
      <!DOCTYPE Objektinfo SYSTEM "info.dtd">
      <a>

      Das Wurzelelement lautet Objektinfo und nicht a!

      ups :) ist verbessert

      Mozilla interpretiert externe Entity-Referenzen nur ansatzweise: http://www.mozilla.org/newlayout/xml/#dtd.

      Das hat mich einen kleinen Schritt, was das lokale System betrifft, nach vorn gebracht. Danke!
      Was mache ich nur mit anderen Usern :(

      Gruß aus Berlin!
      eddi

      1. Hallo,

        Das hat mich einen kleinen Schritt, was das lokale System betrifft, nach vorn gebracht. Danke!
        Was mache ich nur mit anderen Usern :(

        Wenn Cross-Browser-Tauglichkeit gefordert ist, wird es kaum eine Alternative zur Server-seitigen Verarbeitung des XML-Contents geben (z. B. via XSLT), sodass die Browser eben das erhalten, was diese am besten verstehen: (X)HTML.

        MfG, Thomas

        1. Hallo,

          Wenn Cross-Browser-Tauglichkeit gefordert ist, wird es kaum eine Alternative zur Server-seitigen Verarbeitung des XML-Contents geben (z. B. via XSLT), sodass die Browser eben das erhalten, was diese am besten verstehen: (X)HTML.

          Darauf sollte es eh hinaus laufen. Ich wollte nur nicht auf die Entitäten verzichten, sondern den Rest einmal laden - und dann die Browser arbeiten lassen. So werde ich wohl bei HTML bleiben (müssen), da der Inhalt eh schon ziemlich aufwändig durch PHP generiert wird und noch einen Handler ist es mir nicht Wert. Danke noch mal an Dich.

          Gruß aus Berlin!
          eddi

      2. Was mache ich nur mit anderen Usern :(

        "best viewed with IE" >;->

        Gruß aus Friedrichshain,
        Gunnar

        --
        „Solang wir noch tanzen können
        und richtig echte Tränen flennen,
        ist noch alles offen,
        ist noch alles drin.“
        (Gundermann)
        1. Hallo Gunnar,

          "best viewed with IE" >;->

          *lach*
          Ich glaube dann werde ich hier von der Security entfernt.

          Gruß aus Berlin!
          eddi

    2. Hallo

      (MSXML = nicht-validierender Parser)

      Dasi ist Blödsinn. Die MSXML in der Version 4 ist auf alle fälle in der lage zu validieren, die 3er glaub ich auch, jedoch benutzt der IE AFAIK eine uralte verson der MSXML. Das ändert jedoch nichts daran der die XML-Engine grundsätzlich die möglichkeit zur validierung besitzt.

      Gruß, Peter

      1. Hallo,

        (MSXML = nicht-validierender Parser)
        Dasi ist Blödsinn. Die MSXML in der Version 4 ist auf alle fälle in der lage zu validieren,

        Ja. Aber die Validierung ist defaultmäßig abgeschaltet. (M$ weiss offenbar, dass die Leute meinstens Fehler machen *g*).
        Du kannst es nur via JavaScript - wenn du so auf das XML zugrifst - aktivieren.

        Grüße
        Thomas

      2. Hallo,

        (MSXML = nicht-validierender Parser)
        Dasi ist Blödsinn.

        Naja, der tut jedenfalls meistens so ...

        Die MSXML in der Version 4 ist auf alle fälle in der lage zu validieren, die 3er glaub ich auch, jedoch benutzt der IE AFAIK eine uralte verson der MSXML. Das ändert jedoch nichts daran der die XML-Engine grundsätzlich die möglichkeit zur validierung besitzt.

        Der IE 6 verwendet MSXML 3, IE 5.5 die Version 2.5. In der Default-Konfiguration wird jedenfalls nicht ohne Weiteres validiert. Man kann aber ein Tool vom MSDN beziehen, welches die Validierung ueber das Kontextmenue ermoeglicht.

        Bei MSXML 4 kann man eine XML-Dokumenteninstanz via Scripting mit xmlobj.parseError.errorCode zumindest gegen ein XML-Schema validieren.

        MfG, Thomas