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