AGB  ·  Datenschutz  ·  Impressum  







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

Validierung mit MSXML

Ein Thema von weltaran · begonnen am 26. Apr 2005 · letzter Beitrag vom 3. Mai 2005
Antwort Antwort
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#1

Validierung mit MSXML

  Alt 26. Apr 2005, 10:22
Hi Leute!

Folgendes xml-File (test.xml) wird von MSXML beanstandet:

XML-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE tsq [
<!ELEMENT tsq (abc)>
<!ELEMENT abc EMPTY>
]>
<tsq>
   <abc/>
</tsq>

Fehlertext:
Validate failed because the root element had no associated DTD/schema.

Aber: Sämtliche online-Validatoren finden das Dokument ganz OK!

Quelltext:
Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);
var
   i, j: integer;
   error: IXMLDOMParseError;

begin
     myDoc := CoDOMDocument40.Create;
     myDoc.setProperty('NewParser', true);
     myDoc.async:= false;

     if not FileExists('test.xml') then
     begin
          myDoc.loadXML('<?xml version="1.0"?><tsq></tsq>');
     end else
         myDoc.load('test.xml');

     if myDoc.parseError.errorCode <> 0 then
     begin
          MessageDlg('Die XML-Datei ist nicht korrekt!' + #13#10
                          +'Das Programm wird nun beendet.',
                          mtError, [mbOK], 0);
          Application.Terminate;
     end;

     error:= myDoc.validate;

     Edit1.Text:= error.Get_reason;

end;

Idee?
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Validierung mit MSXML

  Alt 26. Apr 2005, 10:40
Ja. Lass den "NewParser" weg
Zitat von Platform SDK:
The new parser is faster and more reliable than the old one, but it lacks support for asynchronous loading or DTD validation. The new parser will ignore the async property and throw an exception when validation against a DTD is requested. Therefore, the default value of this property is false.

(Quelle)
  Mit Zitat antworten Zitat
Benutzerbild von weltaran
weltaran

Registriert seit: 12. Sep 2003
Ort: Offenburg
78 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Validierung mit MSXML

  Alt 26. Apr 2005, 10:49
OK, ich bin auch gerade darauf gekommen. Aber wozu dann überhaupt MSXML 4.0, wenn der neue Parser diese grundsätzliche Funktionalität nicht erfüllt. Ist dies auch der Grund, warum die 4.0 Version nicht bei XP dabei ist, oder hat dies eher historische Gründe (4.0 war zum erscheinen von XP noch nicht fertig?).

Wie seht Ihr denn die Notwendigkeit einer DTD für kleinere, abgeschlossene Projekte (XML-Daten werden nur von einem Programm gelesen und geschrieben)?


Ciao
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Validierung mit MSXML

  Alt 26. Apr 2005, 11:06
Zitat von weltaran:
Aber wozu dann überhaupt MSXML 4.0, wenn der neue Parser diese grundsätzliche Funktionalität nicht erfüllt.
Den Sinn kann ich dir leider nicht erklären. Ich kenne es nur aus Chakotays damaligen Tutorial und Beispiel, und auch bei mir gab es damit diverse Problemchen. Seitdem nutze ich das nicht mehr.

Zitat:
Wie seht Ihr denn die Notwendigkeit einer DTD für kleinere, abgeschlossene Projekte (XML-Daten werden nur von einem Programm gelesen und geschrieben)?
Ansichtssache. Ich persönlich nutze für eins meiner Tools auch die Validierung (wenn auch XSD, aber das ist ja erst mal unwichtig), weil ich so mein Tool absichern kann. Natürlich ist nicht auszuschließen, dass jemand die XSD manipuliert, und dass sich mein Programm dann auch aufhängt, aber für solche Sachen bin ich ohnehin nicht verantwortlich. Wer sich sein System zur Sau machen will und dabei von mir vorgegebene Dateien manipuliert, nur damit mein Programm atypisch reagiert, ... tja, mich kümmert das nicht. Wie gesagt, im Normalfall kann ich mit der Validierung sicherstellen, dass die Datei auch dem erwarteten Format entspricht, so dass beim Benutzen keine Fehler auftreten.
  Mit Zitat antworten Zitat
bate

Registriert seit: 28. Jul 2004
Ort: Kahla
32 Beiträge
 
Delphi 7 Professional
 
#5

Re: Validierung mit MSXML

  Alt 3. Mai 2005, 21:28
Hat jemand von euch ne Idee wie ich mein XML Dokument per OmniXML gegen die eingebettete DTD Validiere?
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz