Thomas J.S.: Validierung ohne DOCTYPE

Beitrag lesen

Hallo,

Die Feststellung der Eigenschaft "valide" eines XML-Dokuments
 - mit vorhandener DTD (z.B. bei XHTML) kann mit Standard-XML-Werkzeugen (z.B. dem Tool `xmllint') erfolgen.
 - ohne vorhandene DTD (z.B. bei XSL aufgrund unterschiedlicher Namensräume) kann nur mit Hilfe eines Parsers, der die Zielsprache kennt (z.B. eines XSLT-Prozessors), erfolgen.

Ist diese Schlussfolgerung korrekt?

Ja, aber: ohne DTD wird das Dokument nach anderen Kritierien überprüft. Nicht desto trotz, wird ein XSL-Stylesheet auf Wohlgeformtheit überprüft.

Kann ein XSL-Dokument mit fehlerhaften XPath-Ausdrücken nicht trotzdem "valid" auf XML-Ebene sein?

Ja, natürlich kann es.
Wie gesagt, man kann auch eine DTD dazu schreiben, aber bedenke den Aufwand: es müssen die DTD für XSL und die DTD für XHTML gemischt werden: z.B. du müsstest demnach festlegen, welche XSL-Elemente in einer <td> und welche in einem <div> stehen dürfen usw. Trotzdem könntest du bestimmte Fehler nicht ganz vermeiden:
<td align="center">
 <xsl:attribute name="align">
  <xsl:value-of select="pafd/zum/wert" />
 </xsl:attribute>
</td>

Das wäre auch der sicht der DTD valide, aber nicht aus Sicht des XSL-Prozessors.

Grüße
Thomas