Lukas: Ist #FIXED required?

Hallo!

Ich habe mal eine Frage zu DTDs.

Wenn ich hinter einem Attribut #FIXED "Wert" angebe, ist das Attribut dann optional oder muss es immer angegeben werden? Wenn ich einen Defaultwert angebe, ist es ja optional, da ansonsten immer der Defaultwert angenommen wird. Daher würde ich sagen, dass die Angabe bei #FIXED auch optional ist, da ansonsten ja auch einfach der Wert angenommen werden könnte. Aber das steht halt nirgends so und daher bin ich mir nicht sicher.

Dann noch eine Frage zu #FIXED. Bedeutet das eigentlich, dass ein Attribut immer diesen Wert hat, egal was ich mache, oder bedeutet das, dass das Atrribut einfach nur einen Wert annehmen kann, wie etwa bei select="selected" in XHTML?

Wenn es die erste Bedeutung hat, wozu hat man dann eigentlich das Attribut? Dann hat es doch keinen Informationsgehalt und man könnte es genauso gut weglassen?

  1. Bedeutet das eigentlich, dass ein Attribut immer diesen Wert hat, egal was ich mache, oder bedeutet das, dass das Atrribut einfach nur einen Wert annehmen kann, wie etwa bei select="selected" in XHTML?

    Worin unterscheiden sich deine beidenn Beschreibungen? Das Attribut hat halt immer den einen Wert.

    wozu hat man dann eigentlich das Attribut?

    Zum Beispiel könnte ein Firmenname drin stehen, der in einer Firma immer gleich ist. Die auf diese Firma angepasste DTD erwartet dann immer diesen Namen. In einer anderen Firma steht dann immer was anderes drin.
    Sinnvoll ist das, wenn die Dateien irgendwoanders gesammelt werden und man da dann anhand der Attributwerte unterscheiden kann.

    1. Bedeutet das eigentlich, dass ein Attribut immer diesen Wert hat, egal was ich mache, oder bedeutet das, dass das Atrribut einfach nur einen Wert annehmen kann, wie etwa bei select="selected" in XHTML?
      Worin unterscheiden sich deine beidenn Beschreibungen? Das Attribut hat halt immer den einen Wert.

      Hm, vielleicht wurde nicht ganz deutlich, was ich meine.

      Nehmen wir z.B. wieder selected="selected" aus dem XHTML-Standard. Dieses Attribut, was ich dem Element <option> mitgeben kann, kann nur einen Wert haben, nämlich den Wert "selected". Ein anderer ist nicht möglich, "selected" ist der einzige gültige Wert. ABER: Das bedeutet ja noch lange nicht, dass bei jedem <option>-Element das Attribut selected auch tatsächlich den Wert selected hat, es kann ja auch einfach nicht gesetzt werden. Wäre ja auch blöd, wenn jedes <option> automatisch selected wäre.

      Und das ist halt meine Frage: Bedeutet #FIXED "wert", dass das Attribut nur einen möglichen Wert annehmen KANN (nur kann!) oder eben, dass das Attribut diesen einen Wert tatsächlich immer ANNIMMT, also dass das Attribut z.B. immer mit notiert werden muss bzw. dass, sofern es nicht angegeben wird, automatisch wie beim Defaultwert der Wert übernommen wird.

      Daher auch die Frage: Ist ein FIXED required oder nicht? Muss es angegeben werden oder nicht?

      1. Ich finde ehrlich gesagt auch grad keine Erklärung die angibt, ob das Attribut dann wirklich da sein muss oder nicht.
        Du könntest dir ja ein Beispiel erstellen und validieren und da dann schauen ob der Validator meckert.

  2. @@Lukas:

    nuqneH

    Wenn ich hinter einem Attribut #FIXED "Wert" angebe, ist das Attribut dann optional oder muss es immer angegeben werden?

    Siehe http://forum.de.selfhtml.org/archiv/2008/10/t178023/#m1173748.

    Dann noch eine Frage zu #FIXED. Bedeutet das eigentlich, dass ein Attribut immer diesen Wert hat, egal was ich mache, oder bedeutet das, dass das Atrribut einfach nur einen Wert annehmen kann, wie etwa bei select="selected" in XHTML?

    Erstes.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Wenn ich hinter einem Attribut #FIXED "Wert" angebe, ist das Attribut dann optional oder muss es immer angegeben werden?

      Siehe http://forum.de.selfhtml.org/archiv/2008/10/t178023/#m1173748.

      Entschuldige, dass ich noch mal nachfrage, aber ich bin mir jetzt nicht ganz sicher, da sich im verlinkten Post ja gegenteilige Aussagen finden lassen.

      Eigentlich sollte man FIXED-Attribute also weglassen können, da sich der XML-Prozessor bei einem weggelassenen Attribut so verhält, als ob das Attribut mit dem Vorgabewert im Dokument stünde. Andererseits gibt der W3C-Validator Fehlermeldungen aus, wenn man FIXED-Attribute wie das xmlns im HTML-Tag weglässt.

      Ist die Angabe nun notwendig oder nicht?

      1. @@Lukas:

        nuqneH

        Siehe http://forum.de.selfhtml.org/archiv/2008/10/t178023/#m1173748.

        Entschuldige, dass ich noch mal nachfrage, aber ich bin mir jetzt nicht ganz sicher, da sich im verlinkten Post ja gegenteilige Aussagen finden lassen.

        Finde ich nicht.

        Eigentlich sollte man FIXED-Attribute also weglassen können, da sich der XML-Prozessor bei einem weggelassenen Attribut so verhält, als ob das Attribut mit dem Vorgabewert im Dokument stünde.

        Bei validierenden XML-Prozessoren, ja.

        Nicht validierende XML-Prozessoren hingegen lesen keine DTD (kein XML Schema), haben also keinerlei Kenntnis eines Attributs, dass nicht explizit im Quelltext steht.

        Andererseits gibt der W3C-Validator Fehlermeldungen aus, wenn man FIXED-Attribute wie das xmlns im HTML-Tag weglässt.

        Würde ich von einem Validator, der gegen die DTD checkt, so nicht erwarten. In [XHTML1 §3.1.1] steht zwar „Das Wurzelelement des Dokuments muss eine xmlns–Deklaration für den XHTML-Namensraum enthalten“, in der DTD steht dies aber nicht.

        Qapla'

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