Einzelnen Beitrag anzeigen

Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: MSXML: Nicht valide Nodes ignorieren

  Alt 9. Feb 2009, 14:59
Endlich eine Art Durchbruch...MultipleErrors funktioniert scheinbar nur bei der Schemaüberprüfung, also

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var tmp: IXMLDOMDocument2;
    lst: IXMLDOMParseErrorCollection;
    schema : IXMLDOMSchemaCollection2;
    i: Integer;
begin
  Memo.Clear;
  tmp := CoDOMDocument60.Create;
  schema:=CoXMLSchemaCache60.Create;
  tmp.setProperty('MultipleErrorMessages', true);
  tmp.loadXML('<test><a></a>[b][/b]</test>');
  schema.add('','C:\xsd.xsd');
  tmp.schemas:=schema;

  lst := (tmp.validate as IXMLDOMParseError2).allErrors;
  for i := 0 to lst.length -1 do
  begin
    Memo.Lines.Add(lst.item[i].reason);
  end;
end;
Zitat:
Der Inhalt des Elements 'a' ist gemäß dem Inhaltsmodell des übergeordneten Elements 'XXXXX' nicht gültig.
Erwartet: XXXX1, XXXX2, XXXX3, XXXX4, XXXX5.

Das Element 'b' wird verwendet, aber es ist im DTD/Schema nicht deklariert .
Zwar in gewisser Weise keine gute Nachricht...aber naja...jetzt müsste ich mir nur irgendwas überlegen wie er nicht beim Überprüfen der Wohlgeformtheit der XML-Datei abbricht. Und so perfekt wirkt es auch noch nicht...hmhm

Falls wer einen Tipp hat, her damit!

MfG Alaitoc

PS: Schonmal Danke für die Mühen :>
  Mit Zitat antworten Zitat