![]() |
Re: Alternative zum MSXML
|
Re: Alternative zum MSXML
Zitat:
Zitat:
mfG mirage228 |
Re: Alternative zum MSXML
"Non-validating XML parser"
-Bringt das DTD denn noch was? :gruebel: |
Re: Alternative zum MSXML
Erstaunlich ...
Daniel bei destructor.de Teppich ... Arbeitszimmer ... Sessel Aber Gero ... Jerr... na, also der Typ im Keller, der muss im Keller hausen. :mrgreen: |
Re: Alternative zum MSXML
Zitat:
Delphi-Quellcode:
um Fehler zu finden.
Memo1.Clear;
xmldoc.load(FileListBox1.Items[FileListBox1.ItemIndex]); if(xmldoc.parseError.errorCode <> 0) then begin Memo1.Lines.LoadFromFile( FileListBox1.Items[FileListBox1.ItemIndex] ); MessageDlg(Format('%s in Zeile %d, Position %d' + #13#10 + '%s', [xmldoc.parseError.reason,xmldoc.parseError.line, xmldoc.parseError.linepos,xmldoc.parseError.srcText]), mtError,[mbOk],0); end else begin Memo1.Lines.Text := xmldoc.xml; MessageDlg('Alles okay',mtInformation,[mbOk],0); end; Wenn dein XML-Dokument keine DTD benutzt, bzw. wenn es nicht deins ist, du es aber dennoch gern prüfen würdest, dann geht das bspw. mit einer externen XSD-Datei. Hier ein etwas größerer Auszug:
Delphi-Quellcode:
Der Rest läuft dann wieder wie gehabt: Sind Fehler drin, werden die angezeigt.
// create XSD schema
xsd := CoXMLSchemaCache40.Create; if(xsd = nil) then begin MessageBox(self.Handle, pchar(NOXMLPARSER), nil, MB_OK or MB_ICONEXCLAMATION); fErrorExit := true; Application.Terminate; exit; end; xsd.add('',ExtractFilePath(paramstr(0)) + 'MO.xsd'); // try to create a XML parser xmldoc := CoDOMDocument40.Create; xmldoc.async := false; xmldoc.resolveExternals := true; xmldoc.validateOnParse := true; // XSD-Schema zuweisen xmldoc.schemas := xsd; xmldoc.load(fSavePath + '\' + DATABASE_FNAME); // errors while loading, uh-oh, ... :o( if(xmldoc.parseError.errorCode <> 0) then begin if(MessageBox(self.Handle,pchar( Format(XMLDATABASEERROR,[xmldoc.parseError.reason, xmldoc.parseError.errorCode,xmldoc.parseError.line, xmldoc.parseError.linepos,xmldoc.parseError.srcText])), nil, MB_YESNO or MB_ICONQUESTION) = IDNO) then begin fErrorExit := true; Application.Terminate; exit; end; xmldoc.loadXML('<?xml version="1.0"?><' + mainnode + '/>') end; Ansonsten müsstest du noch mal fragen, wenn du speziell etwas zum Thema Validieren wissen willst. |
Re: Alternative zum MSXML
|
Re: Alternative zum MSXML
Danke für die Erläuterung.
Ich wollte eigetlich nur wissen, ob Omnixlm diese Validation auch unterstützt. Daher mein Zitat :) |
Re: Alternative zum MSXML
Zitat:
Und wie sieht´s aus bei Konsolen- und nonVCL-Programmen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz