Zum Inhalt springen

XSD-Schema oder nicht?


steinadler

Empfohlene Beiträge

Hallo,

ich muss ein XML-over-Ethernet-Protokoll serverseitig implementieren.

Momentan habe ich sämtliche XML-Strukturen in Klassen definiert und serialisiere diese bei Bedarf.

Aktuell habe ich gerade von der Client-Seite XSD-Dateien für jede XML-Struktur gefunden.

Hat denn die Verwendung von XSD-Dateien in diesem Fall einen Sinn oder bleibe ich lieber bei meinen eigenen Implementationen ohne viel Overhead?

Was meint ihr?

Link zu diesem Kommentar
Auf anderen Seiten teilen

XSD liefert einen strukturierten Datensatz und je nach Sprache gibt es dann passende Proxyklassen, die das Lesen/Erzeugen der XML direkt durchführen.

Generell würde ich die Frage bezügl Overhead nicht so pauschal angehen, denn es stellt sich die Frage nach den genauen Anforderungen an das System, z.B. Matrix Daten als XML zu transportieren ist sicherlich nicht so sinnvoll, wohin gegen eine Baumstruktur durchaus dafür gut geeignet ist

Link zu diesem Kommentar
Auf anderen Seiten teilen

In der Protokollbeschreibung ist die XML-Struktur als XML angegeben. So habe ich es jetzt als Klassen nachgebaut, welche ich dann serialisiere.

Wie schon gesagt, habe ich zufällig in der Implementation der Clients (von einer Fremdfirma) die zugehörigen XSD-Dateien gefunden.

Jetzt stellt sich mir die Frage, ob es durch Verwendung dieser XSD-Dateien evtl. irgendwelche Vorteile gibt.

Generiere ich mit XSD.exe aus den XSD-Dateien Klassen, dann fehlt mir irgendwie jegliches Vererbungskonzept.

Beispiel:

Es gibt verschiedene Nachrichtentypen; für jeden Typ eine XSD-Datei.

In MEINER Implementation erben alle von einer Klasse/Interface (IMyData), welche die gemeinsamen Felder enthält (z.B. DataIdentifier, Time usw.)

Meine Sendemethode sieht so aus:

SendData(IMyData data)
Damit habe ich die Möglichkeit, in dieser Methode ohne Probleme z.B. DataIdentifier noch einzutragen Bei der XSD-Variante sind die Klassen alle eigenständig, da gibt es kein übergeordnetes Interface/Klasse. Dann müsste die Sendemethode irgendwie so aussehen:
SendData(Object data)

Hier ist ein nachträgliches Ändern nicht so schön machbar.

Mir ist hier der Vorteil von XSD-Verwendung nicht klar. Wenn es denn überhaupt einen gibt!?

Bearbeitet von steinadler
Link zu diesem Kommentar
Auf anderen Seiten teilen

Jetzt stellt sich mir die Frage, ob es durch Verwendung dieser XSD-Dateien evtl. irgendwelche Vorteile gibt.

Generiere ich mit XSD.exe aus den XSD-Dateien Klassen, dann fehlt mir irgendwie jegliches Vererbungskonzept.

Man kann in XSD durchaus ein "Vererbungskonzept" erstellen (siehe XSD and polymorphism - Stack Overflow)

Mir ist hier der Vorteil von XSD-Verwendung nicht klar. Wenn es denn überhaupt einen gibt!?

XML Schema ist dafür gedacht, dass man die Struktur eines Dokumentes beschreibt und mit Hilfe des XSD diese Struktur validieren kann. Aufgrund dessen kann man dann auch direkt aus der XSD Klassencode genieren, so dass Änderungen in der Struktur durch automatische Prozesse übertragen werden können

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...