AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Seltsames Memo LoadFomFile inculde Phänomen

Ein Thema von Ajintaro · begonnen am 2. Okt 2014 · letzter Beitrag vom 3. Okt 2014
 
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#4

AW: Seltsames Memo LoadFomFile inculde Phänomen

  Alt 2. Okt 2014, 22:43
Hi,

Okay habe den Filter abgändert: open_xmlorxsd.filter := 'XSD schemas (*.xsd)|*.XSD'; die Funktion sieht wie folgt aus:

Delphi-Quellcode:
{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// validate_xml_memo
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}

Function validate_xml_memo(xml,xsd: string):Boolean;

  procedure AddParseError(E: IXMLDOMParseError);
  begin
    if E.errorCode <> 0 then
    begin
     Showmessage('Validation Error: '+E.reason+#13#10+E.srcText)
    end else result:=TRUE;
  end;

var
  Doc: IXMLDOMDocument2;
  Schema: IXMLDOMDocument2;
  SchemaCache: IXMLDOMSchemaCollection;
  sNameSpace: String;
begin
  try
    // Load XML document
    Doc := CoDOMDocument60.Create;
    Doc.async := False;
    Doc.resolveExternals := True;
    Doc.validateOnParse := True;

    if not Doc.loadXML(xml) then
    begin
      AddParseError(Doc.parseError);
      Exit;
    end;

    // Load schema
    Schema := CoDOMDocument60.Create;
    Schema.async := False;
    Schema.resolveExternals := True;
    Schema.validateOnParse := True;

    if not Schema.loadXML(xsd) then
    begin
      AddParseError(Schema.parseError);
      Exit;
    end;

    // put in schema cache
    SchemaCache := CoXMLSchemaCache60.Create;
    sNameSpace := VarToStr(Schema.documentElement.getAttribute('targetNamespace'));
    SchemaCache.add(sNameSpace, Schema); //load schema with the correct namespace

    // assign schema cache to a document
    Doc.schemas := SchemaCache;

    // Validate
    AddParseError(Doc.validate);
    result:=TRUE;
  except
    on E: Exception do
      Showmessage(E.message);
  end;
end;
Die XSD Dateien liegen in einem benutzerdefinierten Ordner, dessen Pfad beim Starten des Programms aus einer ini gelesen wird.
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 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