Grundsätzlich ist es nicht schwer auch ohne direkte Unterstützung des Parsers an die relevanten Informationen im Schema zu gelangen. Bilde den Pfadnamen für Knoten vom Typ ELEMENT und Attribut:
Delphi-Quellcode:
function NodePath(dn: IDOMNode): string;
begin
if Assigned(dn) then
case dn.nodeType of
ELEMENT_NODE:
Result := NodePath(dn.parentNode) + '/' + dn.nodeName;
ATTRIBUTE_NODE:
Result := NodePath(dn.parentNode) + '/@' + dn.nodeName;
else
Result := '';
end
else Result := '';
end;
Mit diesem Pfadnamen kannst du dann in das Schema eintauchen. Für die Knoten auf dem Pfad lassen sich passende XPath Ausdrücke angeben, mit denen du auf die Schema-Definitionen zugreifen kannst. Oder du stellst fest, dass XDR doch nicht so veraltet ist...
marabu