Tom: HTML-eigene Zeichen

Hello,

wo finde ich die offiziellen Bestimmungen zu den HTML-eigenen Zeichen?

in
http://www.validome.org/doc/HTML_ge/html/allgemein/zeichen.htm
habe ich keinen Link auf w3 entdecken können.

Es geht mir darum, eine offizielle Aussage darüber zu bekommen, warum die vier Zeichen < > & " auf jeden Fall ersetzt werden müssen.

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de
  1. Es geht mir darum, eine offizielle Aussage darüber zu bekommen, warum die vier Zeichen < > & " auf jeden Fall ersetzt werden müssen.

    ISO 8879:1986 könnte für dich interessant sein, darin werden die regeln von sgml beschrieben, die in weiterer folge auch für html oder xml gelten

    http://www.is-thought.co.uk/book/sgml-4.htm#Predefined
    leider steht dort nicht direkt, warum sie escaped werden "müssen", aber es steht dort, für was sie explizit verwendet werden - daraus geht dann indirekt hervor, wo sie escaped werden müssen (wenn man sämtliche regeln der dtd beachtet)

    1. Hello,

      ISO 8879:1986 könnte für dich interessant sein, darin werden die regeln von sgml beschrieben, die in weiterer folge auch für html oder xml gelten

      schade...

      The site is temporarily down for maintenance.
      Sorry for the inconvenience.
      Please check back again soon.

      Liebe Grüße aus Syburg bei Dortmund

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
  2. Dann schau mal hier. Merke: erst suchen, dann fluchen!

    Gruß, LX

    --
    X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
  3. Hi Tom!

    wo finde ich die offiziellen Bestimmungen zu den HTML-eigenen Zeichen?

    Ich verstehe nicht, wofür das gut sein soll.

    Es geht mir darum, eine offizielle Aussage darüber zu bekommen, warum die vier Zeichen < > & " auf jeden Fall ersetzt werden müssen.

    Unabhängig von den Zeichen und der Ausgabe dieser müssen Metazeichen (also die Zeichen, denen eine besondere Bedeutung zukommt), maskiert werden.

    Das ist in HTML genauso der Fall wie in regulären Ausdrücken und Beschreibungen mit EBNF und Formatstrings für die Funktion printf() in C und einfachen Anführungszeichen in SQL und ...

    Wozu also eine "offizielle" Aussage, wenn die Logik allein ausreicht?

    Vielleicht hilft dir ja das schon mal weiter:
    Using Ampersands in Attribute Values (and Elsewhere)
    Character entity references for markup-significant and internationalization characters

    Ha! Bitte schön:
    ———————————————————————————————————————————————————————————————————————
    Authors wishing to put the "<" character in text should use "&lt;" (ASCII decimal 60) to avoid possible confusion with the beginning of a tag (start tag open delimiter). Similarly, authors should use "&gt;" (ASCII decimal 62) in text instead of ">" to avoid problems with older user agents that incorrectly perceive this as the end of a tag (tag close delimiter) when it appears in quoted attribute values.

    Authors should use "&amp;" (ASCII decimal 38) instead of "&" to avoid confusion with the beginning of a character reference (entity reference open delimiter). Authors should also use "&amp;" in attribute values since character references are allowed within CDATA attribute values.

    Some authors use the character entity reference "&quot;" to encode instances of the double quote mark (") since that character may be used to delimit attribute values.
    ———————————————————————————————————————————————————————————————————————
    Quelle: Character entity references

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hello,

      Wozu also eine "offizielle" Aussage, wenn die Logik allein ausreicht?

      Wegen: "Das geht auch ohne... Ich mache schon Webseiten, da hast Du noch gar nicht dran gedacht..."

      Das geht mir eben gerade auf den Keks.
      Aber es muss dann auch auf Deutsch sein, "richtig Deutsch" meine ich...

      Liebe Grüße aus Syburg bei Dortmund

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hi Tom!

        Wozu also eine "offizielle" Aussage, wenn die Logik allein ausreicht?
        Wegen: "Das geht auch ohne... Ich mache schon Webseiten, da hast Du noch gar nicht dran gedacht..."

        Und das kratzt dich?

        Das geht mir eben gerade auf den Keks.

        Also ja! =)

        Aber es muss dann auch auf Deutsch sein, "richtig Deutsch" meine ich...

        Du hast im Ausgangsposting aber geschrieben:

        [...] habe ich keinen Link auf w3 entdecken können.

        Definiere w3.

        Meinst du:
        http://www.edition-w3.de/TR/1999/REC-html401-19991224/charset.html#h-5.3.2 und
        http://www.edition-w3c.de/TR/2002/REC-xhtml1-20020801/#_Toc6101560

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Hello,

          Und das kratzt dich?

          Ja, das geht hier schon den ganzen Morgen so...

          Und um meine Aussage, man müsse die vier HTML-eigenen Zeichen maskieren, zu untermauern, hatte ich bei  w3.org eine Aussage gesucht, dann bei Google, was mich wieder zurückgeführt hat zu selfHTML.

          Liebe Grüße aus Syburg bei Dortmund

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Hi Tom!

            Und um meine Aussage, man müsse die vier HTML-eigenen Zeichen maskieren, zu untermauern, hatte ich bei  w3.org eine Aussage gesucht [...]

            Und was stört an den englischen Texten?
            Die Sprache kann doch nicht als Argument dafür gewertet werden, dass der Text deine Aussage nicht untermauert!

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
            1. Hello,

              Und um meine Aussage, man müsse die vier HTML-eigenen Zeichen maskieren, zu untermauern, hatte ich bei  w3.org eine Aussage gesucht [...]

              Und was stört an den englischen Texten?

              Es stört an den Unterlagen vom W3, dass sie nicht verständlich und kurz genug sind, für jemanden, der etwas "immer so gemacht hat und deshalb ist das richtig"...

              Außerdem habe ich keine Stelle gefunden, die gezielt auf die vier (mit Apos sind es fünf) zu maskierenden Zeichen eingeht.

              Die Sprache kann doch nicht als Argument dafür gewertet werden, dass der Text deine Aussage nicht untermauert!

              ICH kann englisch, der Kandidat leider nicht.

              Liebe Grüße aus Syburg bei Dortmund

              Tom vom Berg

              --
              Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
              1. echo $begrüßung;

                Außerdem habe ich keine Stelle gefunden, die gezielt auf die vier (mit Apos sind es fünf) zu maskierenden Zeichen eingeht.

                Es ist eben kein "zu maskierend" im Sinne von zwingend und unter allen Umständen notwendig. Aus Hopsels Zitat geht hervor, dass sie maskiert werden sollten (Emfehlung), um Irritationen zu vermeiden. Bei einem

                23 < 42

                kann aus dem < kein öffnender Tag abgeleitet werden. Zum einen wegen des Leerzeichens und zum anderen, weil es kein Element 42 gibt. Ein " mitten im Fließtext ist auch nicht verwechselbar. Innerhalb eines Attributs dagegen schon. Deshalb muss es zwingend nur im Attributwert behandelt werden, im Fließtext ist es freiwillig. Ebenso ist ein > ohne ein Tag öffnendes < auch harmlos.

                echo "$verabschiedung $name";

                1. kann aus dem < kein öffnender Tag abgeleitet werden. Zum einen wegen des Leerzeichens und zum anderen, weil es kein Element 42 gibt.

                  dass es kein element 42 in html gibt ist richtig, aber die regeln liegen auf der grundlage von sgml - da ist sehrwohl ein element 42 möglich - die dtd ist zwar dann dagegen, da die meisten browser aber nicht aktiv valideren, wirds ihnen ggf herzlich egal sein

                  prinzipiell sollten die 5 zeichen immer maskiert werden, wenn man nicht genau weiß, was man tut - besonders in html 4 sind so viele sgml-spezifische dinge erlaubt, die in xhtml verboten sind, dass man nur mit sehr sehr tiefer kenntnis der materie sämtliche syntaxregeln richtig beachtet

                  folgender kram zb ist vollkommen valide und ich hab keins der betreffenden zeichen maskiert - "leider" stellen das sämtliche browser inhaltlich falsch dar - am nächsten an das korrekte ergebnis kommt übrigens opera, dicht gefolgt von ie7 [!] - firefox 3 und safari 3 sind am weitesten davon entfernt ;)

                    
                  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
                         "http://www.w3.org/TR/html4/loose.dtd">  
                  <html>  
                  <head>  
                  <title>Example</title>  
                  </head>  
                  <body>  
                   <p/<" > <&ndash&nbsp&&copy > < &auml >''' <>weee</>"> & " ' baz foo/weee  
                  </body>  
                  </html>  
                  
                  

                  wenn mir jetzt keine fehler unterlaufen ist, sollte das ganze eigentlich so aussehen (bzw dem hier entsprechen - wobei empty tags, eben das <>weee</>, in html garnicht erlaubt wären - den w3-validator kümmert das übrigens nicht ;))

                  <p>&lt;&quot; &gt; &lt;&amp;ndash&amp;nbsp&amp;&amp;copy &gt; &lt; &amp;auml &gt;&#039;&#039;&#039; weee&quot;&gt; &amp; &quot; ' baz foo</p>weee

                  also so

                  <" > <&ndash&nbsp&&copy > < &auml >''' weee"> & " ' baz foo
                  weee