steinadler Geschrieben 17. Dezember 2013 Geschrieben 17. Dezember 2013 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? Zitieren
flashpixx Geschrieben 17. Dezember 2013 Geschrieben 17. Dezember 2013 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 Zitieren
steinadler Geschrieben 17. Dezember 2013 Autor Geschrieben 17. Dezember 2013 (bearbeitet) 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 17. Dezember 2013 von steinadler Zitieren
flashpixx Geschrieben 18. Dezember 2013 Geschrieben 18. Dezember 2013 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 Zitieren
Empfohlene Beiträge
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.