Hallo
DP !
Ich habe ein recht seltsames Verhalten, welches ich mir nicht erklären kann. Ich validiere eine
XML gegen eine XSD Datei. Das funktioniert zwar prima, allerdings NUR wenn die XSD Datei per
OpenTextFileDialog in das Memo geladen wird. Denn dann wird auch die "include" Zeile berücksichtigt.
Funktioniert:
Delphi-Quellcode:
procedure TFmain.button_open_xsdClick(Sender: TObject);
begin
open_xmlorxsd.InitialDir := ExtractFilePath(Application.ExeName);
open_xmlorxsd.filter := '.xsd';
open_xmlorxsd.filename := '*.xsd';
if open_xmlorxsd.Execute then memo_xsd.Lines.LoadFromFile(open_xmlorxsd.FileName);
end;
if validate_xml_memo(memo_xml.Lines.Text,memo_xsd.Lines.Text) = TRUE then Showmessage('Hurra');
Funktioniert nicht:
Delphi-Quellcode:
xsd := ExtractFilePath(Application.ExeName) + filename + '.xsd';
memo_xsd.lines.loadfromfile(xsd);
if validate_xml_memo(memo_xml.Lines.Text,memo_xsd.Lines.Text) = TRUE then Showmessage('Hurra');
XSD:
Code:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.hoppsassa.com/rr/schna/Types" elementFormDefault="qualified" targetNamespace="http://www.hoppsassa.com/rr/schna/Types">
<xs:include schemaLocation="Types_Enhanced.xsd"/>
<xs:element type="tns:Cool" name="Cool"/>
</xs:schema>
Wie gesagt der Pfad zu beiden XSD Dateien ist in beiden Fällen gleich. Per OpenTextFileDialog wird die include Zeile berücksichtigt, wenn ich die Datei einfach per LoadFromFile lade, wird die include Datei nicht gefunden.
Woran liegt das?