validierender XMP-Parser in PHP

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • validierender XMP-Parser in PHP

    Hallo!

    Als PHP-Neuling suche ich fast verzweifelt nach einer Möglichkeit,
    XML-Dokumente gegen eine DTD zu validieren, also ein validierender
    XML-Parser.
    Ist dies mit libxml2 irendwie möglich?

  • #2
    Hi,

    verstehe jetzt die Frage nicht.

    Eine Validierung des XML über DTD erfolgt durch Parser im Browser:
    PHP-Code:
    <?xml version="1.0" ?>
    <!DOCTYPE name SYSTEM "yourDTD.dtd">
    ...
    oder wohlgeformt ... wenn auch Quatsch.

    Und was hat jetzt die lib2xml oder PHP damit zu tun?!

    cu

    Blaster
    Yuppi, endlich Elite ...

    Kommentar


    • #3
      Danke für deine Antwort!

      Mein Problem ist folgendes:

      Mit 'domxml_open_file()' kann eine eine XML-Datei geöffnet und geparst werden. Dabei wird nur die Wohlgeformtheit überprüft.
      Im XML-Dokument (test.xml) wird zwar auf eine DTD verwiesen, diese wird aber beim Parsen nicht miteinbezogen.
      Aber wie geht das aus PHP heraus: Prüfen ob ein XML-Dokument den DTD-Regeln entspricht.
      Selbst wenn ich die XML-Datei im Internet Explorer öffne, wird die DTD auch ignoriert. Ist eine Validierung im IE möglich?

      $dom = domxml_open_file ("test.xml")

      test.xml:
      <?xml version="1.0" encoding="ISO-8859-1" ?>
      <!DOCTYPE blabla SYSTEM "test.dtd">
      ...

      Kommentar


      • #4
        Achso ...

        So ganz sauber habe ich das Problem bis heute noch nicht gelöst, so dass ich alle dynamisch Validierungen bisher nur über XSchema erledige.

        Im Samar & Stocker habe ich noch folgende Möglichkeiten gefunden:

        Darstellung über Dtd Objecte mit
        $DTDObject = $DomDocument->doctype() bzw $DomDocument->dtd()
        die Du dann explizit vergleichen musst.

        Eine andere Alternative sehe ich noch über die Ext/xmL XML_ERROR_* -Funktionen.

        XML wird nur vom IE>=5.0 unterstützt.
        Nicht über Aktualisieren gehen, sondern über Link neu initalisieren.
        Yuppi, endlich Elite ...

        Kommentar

        Lädt...
        X