Gunnar Bittersmann: keine Sprache angeben

Hi,
Im Tutorial: Using language information in XHTML, HTML and CSS steht:
“Note, in addition, that XML now provides a means to prevent inheritance of language using the empty string, ie. xml:lang=""”

Gebe ich das in einer XHTML 1.0-Datei an, meckert der Valiadator: syntax of attribute value does not conform to declared value.

lang- und xml:lang-Attribut sind "NMTOKEN". Was genau heißt das?

Ich werd aus [XSD:NMTOKEN] nicht so recht schlau.

Darf der Wert von xml:lang kein Leerstring sein, wie im Tutorial angegeben?

Live long and prosper,
Gunnar

--
„Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
  1. Hallo,

    Gebe ich das in einer XHTML 1.0-Datei an, meckert der Valiadator: syntax of attribute value does not conform to declared value.

    lang- und xml:lang-Attribut sind "NMTOKEN". Was genau heißt das?

    xml:lang ist hier normativ definiert:
    http://www.w3.org/TR/REC-xml/#sec-lang-tag
    Dort steht: »The values of the attribute are language identifiers as defined by [IETF RFC 3066], Tags for the Identification of Languages, or its successor; in addition, the empty string MAY be specified.«

    Von NMTOKEN ist nur in der XHTML-DTD die Rede. Das ist ein Fehler in der XHTML-DTD.
    Aber DTDs sind bekanntlich eh scheiße. ;) Dies ist ein weiteres Beispiel dafür, dass Standardkonformität nichts mit DTD-Validität zu tun hat. Validiere halt gegen das (vorläufige) XML Schema von XHTML, dort ist xml:lang korrekt vom Typ CDATA.
    (Naja, zur Zeit von XHTML 1.0 gab es nur XML 1.0 zweite Ausgabe, dort ist xml:lang="" nicht explizit erlaubt, also strenggenommen verboten.)

    Ich werd aus [XSD:NMTOKEN] nicht so recht schlau.

    Äh, wie kommst du jetzt auf XML Schema? Du validierst doch nicht gegen ein Schema. Und im Schema zu XHTML ist nicht von NMTOKEN die Rede. Und XML bezieht sich genausowenig wie die XHTML-DTD auf die NMTOKEN-Definition in XML Schema.

    Darf der Wert von xml:lang kein Leerstring sein, wie im Tutorial angegeben?

    Ja, gemäß XML-Spezifikation, dritte Ausgabe.
    Nein, gemäß XML-Spezifikation, zweite Ausgabe.
    Nein, gemäß XHTML-Spezifikation, aufbauend auf der XML-Spezifikation, dritte Ausgabe.

    Mathias

    1. Zweiter Versuch:

      Darf der Wert von xml:lang kein Leerstring sein, wie im Tutorial angegeben?

      Ja, gemäß XML-Spezifikation, dritte Ausgabe.
      Nein, gemäß XML-Spezifikation, zweite Ausgabe.
      Nein, gemäß XHTML-Spezifikation, aufbauend auf der XML-Spezifikation, dritte Ausgabe.

      Tief durchatmen!

      Gemäß der dritten Ausgabe der XML-Spezifikation darf der Wert ein Leerstring sein.
      Gemäß der zweiten Ausgabe der XML-Spezifikation darf der Wert kein Leerstring sein.
      Gemäß der XHTML-Spezifikation, die auf dieser zweiten Ausgabe aufbaut, darf der Wert kein Leerstring sein.

      Mathias

  2. lang- und xml:lang-Attribut sind "NMTOKEN". Was genau heißt das?

    Ich werd aus [XSD:NMTOKEN] nicht so recht schlau.

    Ah, du denkst, NMTOKEN aus der XHTML-DTD sei in XML Schema definiert?
    Die Bedeutung von NMTOKEN in XML-DTDs ist wie die gesamte Syntax und Semantik von XML-DTDs im XML-Standard definiert:
    »An Nmtoken (name token) is any mixture of name characters.«
    http://www.w3.org/TR/REC-xml/#IDAIO1S

    Mathias