NuSphere: Standart DTD erweitern um ein Attribut in Elementen

Beitrag lesen

Hi,

ich habe mich zwar nun eingehend damit beschäfftigt wie das validieren von HTML-Quellcode funktioniert und habe festgestellt, dass es abhängig ist von dem DOCTYPE den ich angebe.

So weit so gut. Den Standart Quellcode zu validieren ist ja nicht schwer, da es ja in der DTD beschieben ist was erlaubt ist und was nicht. Nun möchten wir jedoch ein Attribut in speziellen Elementen hinzufügen. Hierbei ist nur wichtig das es hinzugefügt werden muss - warum dies sein muss tut nicht zur sache.

Dies führt aber zu einer Warnung bzw. zu einem Fehler welcher dargestellt wird mit "Fehler: there is no attribute 'ccindex'". Dieser Fehler entsteht weil durch die DTD nicht bekannt gegeben wurde, dass wir ein weiteres Attribut zulassen.

Von daher die Frage, wie kann man eine DTD erweitern um bestimmt Attribute  dem Validator erlaubt werden. Noch besser das nur bestimmte Eigenschaften gültig sind.

Ich weiß das die möglich ist, nur habe ich im Moment keine Ahnung wie das zu realisieren ist.

Hier einmal der zu validierende Code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
      Titel der XHTML-Seite
    </title>
  </head>
  <body>
    <form name="f1" action="#" id="f1">
      <input type="text" name="date_lae12_feldname" id="date_lae12_feldname" ccindex="datum" />

</form>
  </body>
</html>

Bisheriger ansatz ist eine eigene DTD Datei zu erstellen und den Bereich zur Deklarierung des Inputfeldes zu erweitern - ungefähr so:

<!ELEMENT input EMPTY>     <!-- form control -->
<!ATTLIST input
  %attrs;
  %focus;
  type        %InputType;    "text"
  name        CDATA          #IMPLIED
  value       CDATA          #IMPLIED
  checked     (checked)      #IMPLIED
  disabled    (disabled)     #IMPLIED
  readonly    (readonly)     #IMPLIED
  size        CDATA          #IMPLIED
  maxlength   %Number;       #IMPLIED
  src         %URI;          #IMPLIED
  alt         CDATA          #IMPLIED
  usemap      %URI;          #IMPLIED
  onselect    %Script;       #IMPLIED
  onchange    %Script;       #IMPLIED
  accept      %ContentTypes; #IMPLIED
  align       %ImgAlign;     #IMPLIED
  ccindex     CDATA          #IMPLIED
  >

Jedoch müssten wir dafür eine eigene DTD schreiben - beziehungsweise die zum aktuellem Stand kopieren und immer wieder aktuell halten.

Effektiver wäre es ja wenn man sagt. Nimm die Standart Datei und erweitere Sie um das entsprechende Attribut "ccindex" - Nur jetzt steh ich wie die Axt vorm Walde und weiß nicht mehr weiter.

Ich würde mich über konstruktive Vorschläge und Lösungsansätze freuen.

Mit freundlichen Grüßen
NuSphere