AGB  ·  Datenschutz  ·  Impressum  







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

Validierender XML-Parser?

Ein Thema von Chewie · begonnen am 10. Apr 2005 · letzter Beitrag vom 10. Apr 2005
Antwort Antwort
Seite 1 von 2  1 2      
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#1

Validierender XML-Parser?

  Alt 10. Apr 2005, 17:57
Ich experimentiere gerade mit XML und möchte mir für eine Anwendung ein Format definieren. Damit das alles korrekt ist (auch zu Dokumentationszwecken), habe ich auch eine DTD erstellt.

Nun stellt sich natürlich die Frage, mit welcher Software ich meine XML-Dateien gegen das DTD auf Validität prüfen kann. Eine Recherche brachte nur Hinweise auf kommerzielle Software, ich kann mir aber nicht vorstellen, dass bei der Verbreitung von XML sowas Alltägliches nicht als OpenSource- oder Freeware-Variante existiert.

Kennt da jemand was?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Validierender XML-Parser?

  Alt 10. Apr 2005, 18:16
Wahrscheinlich habe ich, trotz gewisser XML-Kenntnisse, nicht so die Ahnung von Validierung, denn ich habe bisher ganz einfach die eingebauten Möglichkeiten (von MS-XML bspw.) benutzt. Und da das Framework auch XML-Unterstützung enthält ...

Klärt mich mal jemand auf: Wozu braucht man beim Validieren seiner eigenen XML-Datei externe Software? Das PSDK zeigt, wie man mit einem XSD-Schema und einem JavaScript eine XML-Datei auf Gültigkeit prüfen kann (per MS-XML). Ich bin sicher, die gleichen Methoden gibt´s auch im .NET Framework. Nicht falsch verstehen, @Chewie. Hat nicht viel mit dir und deiner Frage zu tun.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Validierender XML-Parser?

  Alt 10. Apr 2005, 18:22
Zitat von MathiasSimmack:
Das PSDK zeigt, wie man mit einem XSD-Schema und einem JavaScript eine XML-Datei auf Gültigkeit prüfen kann (per MS-XML). Ich bin sicher, die gleichen Methoden gibt´s auch im .NET Framework. Nicht falsch verstehen, @Chewie. Hat nicht viel mit dir und deiner Frage zu tun.

OK, was ist ein XSD-Schema? Ich bin nicht so XML bewandert, deshalb wäre es nett, wenn man mich aufklären würde
Wenn ich keine zusätzliche Software brauche - umso besser. Ich will halt einfach nur eine Methode um zu überprüfen, ob meine XML-Dateien valide sind. Und nach dem Wenigen, was ich bisher von XML weiß, ist die Prüfung des DTDs die Methode dazu.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#4

Re: Validierender XML-Parser?

  Alt 10. Apr 2005, 18:36
das schreibt meine OH:

Zitat:
Beschreibung
Die Schemadatei (.XSD) definiert die Struktur der Daten in der XML-Datei. Die XSD-Datei ist optional. Wenn die XSD-Datei vorhanden ist, verwendet Delphi diese Datei zur Deklaration der Metadaten der Datenmenge. Wenn keine XSD-Datei vorhanden ist, müssen Sie die Metadaten mit dem Tabelleneditor der Datenmenge bereitstellen. Dazu erstellen Sie eine Tabelle in der Tabellenkollektion für die Datenmenge. Die folgende Beispiel-XML-Datei enthält einige Datensätze. Sie erstellen die Metadaten für die Datenmenge, indem Sie die Tabelle und die Spalten entsprechend der Tabelle und der Spalten in der XML-Datei anlegen.
raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: Validierender XML-Parser?

  Alt 10. Apr 2005, 18:36
Ein Hier im Forum suchenXSD-Schema erlaubt feinere Einstellungen. Du kannst festlegen, dass bspw. der Wert eines Attributes nur eine vierstellige Zahl sein darf. Oder es wird ein Dateiname mit einer bestimmten Endung erwartet, usw. Das lässt sich IMHO mit DTD schlecht machen.

Ich würde dir ja gern das XSD-Schema meiner Help 2.0-Registrierung abdrucken, aber das würde wohl zu umfangreich werden. Darum hau ich´s mal samt Beispiel-XML und Prüf-JavaScript in den Anhang (MS XML 4 wird aber benötigt). Einfach das Skript aufrufen, und es sollte dir zeigen, dass die XML-Datei gültig ist. Dann etwas in der XML-Datei rumfummeln, vllt. mal ein paar selbst erdachte Knoten eintragen und wieder prüfen lassen, usw.

Wie gesagt, mir persönlich reicht das aus. Mein Registrierungstool lädt die Datei und prüft die übergebene XML dann auf Gültigkeit. Ich meine, das Validieren übernimmt eigentlich der Parser. Mein Programm reagiert bloß auf den "errorCode".
Angehängte Dateien
Dateityp: zip xsd-sample_809.zip (3,3 KB, 27x aufgerufen)
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Validierender XML-Parser?

  Alt 10. Apr 2005, 18:38
Ah, OK, ich schaus mir mal an.

Aber gibt es diese XSD-Dateien dann nur .NET/Windows-Bereich? Oder ist das ein allgemeiner XML-Standard?
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#7

Re: Validierender XML-Parser?

  Alt 10. Apr 2005, 18:42
Das müsste Standard sein.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Validierender XML-Parser?

  Alt 10. Apr 2005, 18:48
OK, soweit ich das sehe, enthält ein XSD die gleichen Deklarationen wie ein DTD, nur wiederum im XML-Format.

Das heißt es gibt eine Meta-Sprache SGML, die eine Sprache namens XML definiert, die wiederum Meta-Sprache für andere Sprachen ist. Und die Sprache, die die Gültigkeit von XML-Dateien beschreibt (XSD), baut wiederum auf XML auf

Wenn man das das erste Mal liest, kommt es einem so vor, als beiße sich die Katze (nicht Sakura) in den Schwanz. Aber naja, Katzen haben ja neun Leben

Schade an der ganzen geschichte ist nur, dass diese XSD etwas länglicher als DTDs sind.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#9

Re: Validierender XML-Parser?

  Alt 10. Apr 2005, 19:10
"länglich"? Im Sinne von "länger/größer/umfangreicher als eine DTD"? Na ja, die ganzen Dokumentationstags kannst du bspw. auch weglassen:
XML-Code:
<xs:annotation><xs:documentation>
  Help 2.0 Registration Validation Schema
  Copyright (c) 2005 Mathias Simmack
</xs:documentation></xs:annotation>
Ich habe sie bloß gesetzt, weil ich ein Tool habe, das aus dem Schema ein paar HTML-Seiten mit der Doku generiert. Im Prinzip das, was NDoc aus der XML-Dokumentation einer .NET-Klasse macht.

Und ich finde XSDs besser. Das Schema muss nicht in der XML-Datei angegeben werden. Es muss lediglich dem Programm (und damit dem XML-Parser) bekannt sein. Eine DTD sollte schon in der XML-Datei drin stehen, ansonsten musst du das IMHO erst umständlich einfügen, bevor du das Dokument validieren kannst.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#10

Re: Validierender XML-Parser?

  Alt 10. Apr 2005, 19:15
nur mal so am Rande...
Man kann sich in .Net Klassen aus XSDs erzeugen lassen.
Auf dem Prinzip beruhen typisierte DataSets und die Proxyklassen für WebServices.
Du kannst damit deklarativ eine struktur vorgeben, die dann in Code umgesetzt werden kann.

@Topic
Ein, den Zugriffsklassen bekanntes, XSD bedeutet auch, dass du du nur valide Daten einlesen kannst. Du "müllst" dich also nicht mit strings zu, die eigentlich dateTimes oder Integer sein sollten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:45 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