michat: XML-Parserprobleme beim Einbinden einer URL

Vermutlich muss ich das so hinnehmen, aber ich möchte es zumindest verstehen.

Innerhalb einer URL mit funktionierender Datenbankabfrage, die in Opera, FF und Chrome funktioniert, gibt es die Zeichenkette ..&detailid=1225.., die vom XML-Parser, wenn ich diese URL als Link in eine Website einbaue, als Fehler ausgegeben wird. Konkret wird das "=" nach "id" als Fehler markiert. Das "=" taucht schon vorher einmal in der URL auf, aber eben ohne vorangestelltes "..id".
Ich frage mich, ob hier der XML-Parser nicht des guten zu viel kritisiert, denn der _Inhalt_ einer URL, insbesondere soweit dies gültige Datenbanksyntax darstellt, sollte von nichts außer dem betreffenden Webserver als gültig oder ungültig  erachtet werden? Ist das nicht eigentlich ein XML-Bug? Ich meine, an dieser Stelle die Zeichenfolge mit xhtml-Code zu verwechseln was wohl zu diesem Fehler führt (?) ist doch eher unpraktisch.

Ich möchte meine wenigen Seiten xhtml/strict konform gestalten, auch wenn ich sie als *.html ausliefere, womit das Problem soweit ich sehen kann umgangen ist.
Dennoch finde ich dies unbefriedigend, weil, ohne dass ich dies beeinflussen könnte, die Seite wohl nicht xhtml-valide ist.

bye

MH

--
war unregistriert "michaa"
  1. Hi,

    Innerhalb einer URL mit funktionierender Datenbankabfrage, die in Opera, FF und Chrome funktioniert, gibt es die Zeichenkette ..&detailid=1225.., die vom XML-Parser, wenn ich diese URL als Link in eine Website einbaue, als Fehler ausgegeben wird. Konkret wird das "=" nach "id" als Fehler markiert. Das "=" taucht schon vorher einmal in der URL auf, aber eben ohne vorangestelltes "..id".
    Ich frage mich, ob hier der XML-Parser nicht des guten zu viel kritisiert

    Die Frage ist, ob du dir nicht wenigstens *Grundlagenwissen* über XML aneignen solltest, bevor du etwas damit machst - und die Antwort ist natürlich Ja.
    http://de.selfhtml.org/xml/regeln/zeichen.htm#xmleigene

    Darüber hinaus ist die Problematik bzw. ihre Umgehung in HTML genau die gleiche.
    http://de.selfhtml.org/html/referenz/zeichen.htm#benannte_html

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. Die Frage ist, ob du dir nicht wenigstens *Grundlagenwissen* über XML aneignen solltest, bevor du etwas damit machst - und die Antwort ist natürlich Ja.

      Ich gehe auf Grund deiner Bemerkung und deines Links davon aus, dass es am "&" liegt und nicht am "=" (laut FF) oder am angeblich fehlenden ";" (wie Chromium sich dazu äußert; Opera markiert den gesamten ausdruck "&detailid").

      Darüber hinaus ist die Problematik bzw. ihre Umgehung in HTML genau die gleiche.

      Vielleicht theoretisch. Praktisch funktioniert der Link so wie er ist in HTML, da muss man nichts umgehen (was mich jetzt verunsichert, ob dein kryptischer Rat mir zum Erfolg verhelfen wird).

      Ok, tut er, es war tatsächlich der nicht escapte Ampersand, falls diese Formulierung in diesem Zusammenhang korrekt ist.

      Danke für den Hinweis.

      bye

      MH

      --
      war unregistriert "michaa"
      1. @@michat:

        nuqneH

        Ok, tut er, es war tatsächlich der nicht escapte Ampersand, falls diese Formulierung in diesem Zusammenhang korrekt ist.

        Ja, das ist sie. [ESCAPES, s.a. vorläufige aktualisierte Übersetzung]

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
      2. Hi.

        Ich gehe auf Grund deiner Bemerkung und deines Links davon aus, dass es am "&" liegt und nicht [...] am angeblich fehlenden ";" (wie Chromium sich dazu äußert; Opera markiert den gesamten ausdruck "&detailid").

        Wie man's nimmt. Es liegt daran, dass der angegebene Wert kein gueltiges CDATA-Literal ist. Bis zu dem "&" (einschliesslich) ist alles unproblematisch - nur wird hinterher die mit dem "&" begonnene Entitaet nicht korrekt vervollstaendigt; insbesondere fehlt - genau - ein ";", das die Entitaet abschliesst. Da ist also der Fehler.

        Viele Gruesse,
        der Bademeister

        1. Wie man's nimmt. Es liegt daran, dass der angegebene Wert kein gueltiges CDATA-Literal ist. Bis zu dem "&" (einschliesslich) ist alles unproblematisch - nur wird hinterher die mit dem "&" begonnene Entitaet nicht korrekt vervollstaendigt; insbesondere fehlt - genau - ein ";", das die Entitaet abschliesst. Da ist also der Fehler.

          Naja prima, jetzt ist das Chaos perfekt:
          Ich habe mich um das escapen des Ampersand gekümmert, und damit mein Problem eigentlich gelöst, auch in den "Augen" der von mir benutzten Browser.
          Nun kommst du und sagst: Der Fehler ist ein anderer.
          Ich liebe Fehlerbeseitigungsratschläge ala "Der Aschenbecher ist voll, also pumpt man den Reifen auf!" Die sind soooo lee/hreich.

          1. Hi!

            Wie man's nimmt. Es liegt daran, dass der angegebene Wert kein gueltiges CDATA-Literal ist. [...]
            Naja prima, jetzt ist das Chaos perfekt:
            Ich habe mich um das escapen des Ampersand gekümmert, und damit mein Problem eigentlich gelöst, auch in den "Augen" der von mir benutzten Browser.
            Nun kommst du und sagst: Der Fehler ist ein anderer.

            Dein eigentlicher Fehler war das nicht ordnungsgemäß notierte/maskierte &. Soweit richtig. Der XML-Parser hat aber nicht dieses als Fehler angesehen und es so anzeigen können, weil er nicht wissen kann, dass du das gemeint hast. Er sieht nur das was du geschrieben hast. Und da hat er eben ein & gemäß seinen Regeln als Anfang einer Entität angesehen, weil wie bei einer solchen ein paar Buchstaben folgten. Ihm fehlte aber ein abschließendes ;, was zunächst einmal eine unvollständige Entität ergab. Dass diese Zeichenfolge mit einem abschließenden ; auch keine definierte Entität ergibt, hätte er in einem zweiten Schritt erkannt.

            Ich liebe Fehlerbeseitigungsratschläge ala "Der Aschenbecher ist voll, also pumpt man den Reifen auf!" Die sind soooo lee/hreich.

            Das kann ja sein, jedoch ist es als Probleminhaber selten hilfreich (zurück) zu motzen. Schluck lieber die Kröte oder ignorier die Antwort (oder den Teil, den du als Provokation ansiehst). Denn mit einer unüberlegten Antwort darauf senkst du auch die Antwortbereitschaft bisher noch nicht beteiligter, wenn diese annehmen müssen, dass du bei ihnen genauso reagierst, wenn sie sich nicht besonders viel Mühe geben, freundlich zu klingen.

            Lo!

            1. Dein eigentlicher Fehler war das nicht ordnungsgemäß notierte/maskierte &. ...

              erkannt.

              Ok, danke, das war nachvollziehbar. Wieder etwas mehr Licht im erst spärlich erleuchten Dunkel meiner xhtml/css Kenntnisse.

        2. Hi,

          Bis zu dem "&" (einschliesslich) ist alles unproblematisch - nur wird hinterher die mit dem "&" begonnene Entitaet nicht korrekt vervollstaendigt; insbesondere fehlt - genau - ein ";", das die Entitaet abschliesst. Da ist also der Fehler.

          Und es würde ein Fehler bleiben, so lange die Entität nicht auch in der DTD definiert wird.

          Und wenn man die Entität definieren würde, müsste man ihr wiederum als Wert "&detailid" verpassen, um den eigentlich an dieser Stelle auszuzeichnenden Inhalt, einen bestimmten URL, nicht zu verfälschen.

          Und innerhalb des EntityValue müsste man das & dann wieder als Entität notieren.

          ... so kann man sich also auch sehr schön im Kreis drehen :-)

          MfG ChrisB

          --
          RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
          1. @@ChrisB:

            nuqneH

            Und innerhalb des EntityValue müsste man das & dann wieder als Entität notieren.

            Nein.

            ... so kann man sich also auch sehr schön im Kreis drehen :-)

            Kann man. Muss man aber nicht. Man kann den Kreis auch durChbRecheN. <werkommtaufdenstuhl bei="Jauch">Bringen Sie die Großbuchstaben im letzten Wort in die richtige Reihenfolge!</werkommtaufdenstuhl> :-b

            Qapla'

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
  2. @@michat:

    nuqneH

    Ich frage mich, ob hier der XML-Parser nicht des guten zu viel kritisiert

    Das fragten sich vor dir schon viele. „Lies unsere FAQ, dort sind häufig gestellte Fragen direkt beantwortet.“ (Startseite des Forums)

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)