2013-06-28 14 views
5

Zajmuję się tworzeniem aplikacji wieloplatformowych (dla Windows, Mac itd.) Oraz dla maszyn 32-bitowych i 64-bitowych. Mam wiele plików XML, które muszę sprawdzić na ich XSD.Sprawdzanie poprawności plików XML przed XSD w FireMonkey

Czy jest jakiś sposób robienia tego w Delphi XE3?

Próbowałem sprawdzania DTD, ale zawsze otrzymuję błąd "DTD zabronione". Próbowałem również rozwiązań wymienionych na wielu stronach internetowych w celu rozwiązania tego błędu, ale nie miałem żadnych sukcesów.

Z góry dziękuję.

Poniżej znajduje się kod Użyłem ...

function TForm2.ValidateXML(const xmlFile : TFileName) : boolean; 
var 
xmlDoc: TXMLDocument; 
begin 
result := false; 
    xmlDoc := TXMLDocument.Create(nil) ; 
    try 
    xmlDoc.ParseOptions := [poResolveExternals, poValidateOnParse]; 
    try 
     xmlDoc.LoadFromFile(xmlFile) ; 
    xmlDoc.Active := true; //this will validate 
    result := true; 
    except 
    on EX : EDOMParseError do 
    begin 
    ShowMessage('Invalid XML: ' + Ex.Message) ; 
    end; 
    end; 
finally 
    xmlDoc := nil; 
end; 
end; 

Odpowiedz

2

Oczywiście trzeba walidator cross-platform.

Być może Libxml2 (http://xmlsoft.org/) to opcja, ponieważ może być używana z wielu języków programowania na wielu platformach.

open source Pascal wrapper dla libxml2 jest avalaible na http://sourceforge.net/projects/libxml2-pas/

+0

Dzięki za response.i próbowali na wspomnianej stronie internetowej, ale wydaje się, że nie jest przykładem dla Delphi. –

+0

@ user2531352 użyj Google - zobacz moją edycję – mjn

+0

Dzięki. Użyłem tego, ale otrzymuję naruszenia dostępu podczas uruchamiania. –

Powiązane problemy