Zum Inhalt springen
  • 0

Java Tree, Validierung nach Root, Node, Leaf


Frage

Geschrieben (bearbeitet)

Hallo liebes Forum,

ich habe eine neue Teilaufgabe in meinem Projekt bekommen. Ich habe eine XML nach BMEcat Standard vorliegen, in welcher einer Catalog-Group mit verschiedenen Artikeln existiert. Ein Artikel kann eine Obergruppe haben, die dann Node genannt wird und eine Obergruppe kann eine Stammgruppe haben, die dann Root genannt wird. Das Root Element gibt es nur einmal. Leafs kann es beliebig viele geben. Meine Frage ist, wie validiere ich diese Eingaben in Java? Mir wurde das Stichwort Java Trees genannt, womit ich aber nicht viel anfangen kann. Könnt ihr mir weiterhelfen?

VG,

Bearbeitet von mintmaroo

8 Antworten auf diese Frage

Empfohlene Beiträge

  • 0
Geschrieben (bearbeitet)

Aus deiner Beschreibung werde ich nicht schlau, was du genau willst. Die Frage ist also erst mal, was du unter "validieren" verstehst? Validieren heißt eigentlich, dass etwas auf Richtigkeit überprüft werden soll aber offenbar willst du erstmal die XML in eine Baumstruktur laden, da die Begrifflichkeiten Root, Node und Leaf eben Begriffe aus einer Baumstruktur sind und das einlesen nennt sich Deserialisierung und nicht Validierung.

Edit: Ich vermute mal, dass mit "Java Trees" die TreeMap-Klasse gemeint ist.

Bearbeitet von Whiz-zarD
  • 0
Geschrieben (bearbeitet)
vor 36 Minuten schrieb Whiz-zarD:

Edit: Ich vermute mal, dass mit "Java Trees" die TreeMap-Klasse gemeint ist.

Ich glaube es geht hier generell um Binärbäume und nicht einmal um die Klasse in Java. (https://de.wikibooks.org/wiki/Algorithmen_und_Datenstrukturen_in_C/_Binäre_Bäume)

(Java: http://www.baeldung.com/java-binary-tree)

Die Deserialisierung und/oder Validierung der XML funktioniert aber auch ohne diese Klasse und ohne Binärbäume.

Bearbeitet von Gottlike
Link ergänzt
  • 0
Geschrieben
Gerade eben schrieb Gottlike:

Ich glaube es geht hier generell um Binärbäume und nicht einmal um die Klasse in Java. (https://de.wikibooks.org/wiki/Algorithmen_und_Datenstrukturen_in_C/_Binäre_Bäume)

Ein binärer Baum ist nur eine Sonderstruktur eines Baumes. Ein binärer Baum hat nur zwei Knoten pro Wurzel. Ein Baum hingegen kann viele haben. Somit ist ein binärer Baum für eine XML-Struktur nicht geeignet und ob man das jetzt DOM (Document Object Model) oder Baum nennt, ist erst mal irrelevant, da ein DOM auch nichts weiter als ein Baum ist.

Zitat

Das Document Object Model (DOM, engl. für Dokumenten-Objekt-Modell) ist eine Spezifikation einer Programmierschnittstelle, welche HTML- oder XML-Dokumente als eine Baumstruktur darstellt, in der jeder Knoten ein Objekt ist, welches einen Teil des Dokumentes repräsentiert, ...

https://de.wikipedia.org/wiki/Document_Object_Model

  • 0
Geschrieben
vor 20 Stunden schrieb mintmaroo:

Meine Frage ist, wie validiere ich diese Eingaben in Java? Mir wurde das Stichwort Java Trees genannt, womit ich aber nicht viel anfangen kann. Könnt ihr mir weiterhelfen?

XML ist zwangsläufig ein Baum, da man eine Root-Node hat und (beliebige) Unterlemente. Aber das wäre das falsche Stichwort für die Validierung.

vor 20 Stunden schrieb mintmaroo:

Ich habe eine XML nach BMEcat Standard vorliegen

Ich denke mal, dann hast du etwas wie:

<!DOCTYPE BMECAT SYSTEM "http://www.eclass.eu/static/eClassXML/2.0/bmecat/bmecat_2005_tnc.dtd">

in deiner XML stehen. In dieser Doctype Definition steht, wie deine XML aussehen muss, um valide zu sein.

Kurz im Internet gesucht, findet man genug Tutorials wie das Folgende:

http://www.rgagnon.com/javadetails/java-0668.html

 

  • 0
Geschrieben
Am 16.2.2018 um 08:59 schrieb arlegermi:

Nimmt man für sowas nicht einfach die xsd-Datei und validiert damit? Das geht doch auch mit Java bestimmt in 10, 20 Zeilen.

Die DTDs sind quasi die geistigen Vorfahren der Schemadefinitionen. Sie bieten allerdings deutlich weniger an Möglichkeiten.

Wenn dort eine DTD angegeben ist, dann gibt es wahrscheinlich kein Schema dafür.

  • 0
Geschrieben

Zum Stichwort Deserialisierung : Die Verarbeitung der Daten in einen Java Tree muss nicht unbedingt sein, das war nur ein Stichwort von einem Mitarbeiter.

Ich habe bereits einen DocumentBuilder eingebunden, um die BMEcat XML nach DTD zu validieren. Aber die oben genannte Aufgabe erfordert noch etwas mehr Einsatz. Ich möchte checken, ob jedes Root ein Node und jedes Node das Richtige (Es sind Nummer vergeben) Leaf hat.

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
Diese Frage beantworten...

×   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...