Erweiterung von XHTML

8

Ich spiele gerade mit dem Schreiben eines jQuery-Plugins, das ein Attribut verwendet, um das Formularvalidierungsverhalten zu definieren (ja, ich weiß, dass es bereits ein Validierungs-Plugin gibt; das ist genauso eine Lernübung wie etwas, das ich verwenden werde) . Idealerweise hätte ich gerne so etwas:

Beispiel 1 - Eingabe:

%Vor%

Beispiel 2 - Wrapper:

%Vor%

Beispiel 3 - vordefiniert:

%Vor%

Das Ziel ist es, meinem jQuery-Code zu ermöglichen, herauszufinden, welche Elemente validiert werden müssen (dies ist bereits geschehen), und das Markup ist immer noch ein gültiges XHTML, mit dem ich ein Problem habe. Ich bin ziemlich sicher, dass dies eine Kombination von DTD und XML-Schema erfordert, aber ich bin mir nicht ganz sicher, wie genau das ausgeführt werden soll.

Basierend auf diesem Artikel habe ich die folgende DTD erstellt:

%Vor%

Und hier ist "formvalidation-model-1":

%Vor%

Ich habe DTD noch nie gemacht, also bin ich mir nicht einmal wirklich sicher, was ich mache. Wenn ich meine Seite durch den W3 XHTML-Validator führe, erhalte ich 80+ Fehler, weil es doppelte Definitionen aller XHTML-Elemente erhält. Bin ich wenigstens auf dem richtigen Weg? Irgendwelche Vorschläge?

BEARBEITEN: Ich habe diesen Abschnitt aus meiner benutzerdefinierten DTD entfernt, weil sich herausgestellt hat, dass er sich tatsächlich selbst referenziert, und der Code, aus dem ich die Vorlage habe, war eigentlich für das Kombinieren von zwei DTDs zu einem einzigen, das Hinzufügen bestimmter Elemente zu einem:

%Vor%

Ich habe das auch entfernt, weil es nicht validiert wurde und nichts zu tun schien:

%Vor%

Außerdem habe ich beschlossen, dass, da ich nur eine Handvoll zusätzlicher Elemente hinzufüge, das von W3 empfohlene separate Dateimodell nicht wirklich hilfreich erscheint, also habe ich alles in die dtd-Datei geschrieben, deren Inhalt ist jetzt das:

%Vor%

Nun bekomme ich keine DTD-Validierungsfehler, aber das Onvalidate-Attribut ist immer noch nicht gültig.

Update: Ich habe die DTD aufgegeben und ein Schema hinzugefügt: Ссылка

Die Verwendung von v: onvalidate scheint in Visual Studio zu validieren, aber der W3C-Dienst mag es immer noch nicht.

Hier ist eine Seite, auf der ich sie verwende, damit Sie sich die Quelle ansehen können:

Ссылка

Und hier ist der Link zum w3c Validierungsergebnis:

Ссылка

Ist das ungefähr so ​​nah, wie ich damit komme, oder mache ich noch etwas falsch?

    
Daniel Schaffer 12.01.2009, 04:38
quelle

1 Antwort

7

Wenn Sie möchten, dass das Ergebnis ein gültiges XHTML-Objekt ist, müssen Sie wahrscheinlich XML-Namespaces verwenden als eine benutzerdefinierte DTD. Die DTD definiert nicht nur die Sprache (und daher ist eine benutzerdefinierte DTD nicht "wirklich" XHTML), sondern wirft auch alle Browser, die sie lesen, in Qualitätsmodus , auch wenn sie die Datei nicht ersticken.

Auf der anderen Seite erzeugt ein Namespace ein perfekt gültiges XHTML (obwohl nicht alle Validatoren Namespace-fähig sind und es möglicherweise nicht korrekt validieren) und es Browsern erlaubt, im (Fast-) Standardmodus zu arbeiten.

%Vor%     
Ben Blank 12.01.2009, 17:16
quelle

Tags und Links