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?