Dynamisches XML-Schema...Geht das überhaupt

masjab

Grünschnabel
Hey Leute, hab folgende Frage:
Ist es möglich zu einer XML Datei die XML-Schema Datei einzulesen, dann die Baumstruktur
abzuspeichern?

Zu meinem Vorhaben:
Ich möchte es einem Benutzer einer Internetsite ermöglichen, Felder zu füllen und dessen Inhalt dann in einer XML-Datenbank zu speichern.
Das ganze soll dynamisch ablaufen, da die genauen Felder, also weder deren Bezeichnung noch desses hierarchische Ordnung zur Zeit genau bekannt sind. Ich dachte mir, es sei möglich über JSP Tree die Baumstruktur der XML-Schema Datei visuell abzubilden. Dann könnte der Benutzer einfach auf einen Knoten des Baumes klicken und in der Mitte der Site erscheint dann das Feld, welches zu füllen ist.
Der Admin soll die Möglichkeit haben, auch über den visuell dargestellten Baum die XML-Schema Datei zu verändern.

Meint Ihr, dass das möglich ist?

Es soll am besten eine javaseitige Lösung sein...
 
Zuletzt bearbeitet:
Hallo,

meiner Meinung nach gehört das zur Programmlogik. Ein Schema definiert ja nur, wie die XML-Datei auszusehen hat.

MFG

Sascha
 
sorry, versteh ich nicht...
Natürlich gehört das zur Programmlogik...Ich wollte nur versuchen, das ganze etwas dynamisch...Wenn es mir möglich wär, den Baum aus dem gleichen XML-Schema auszulesen, wie das Schema, was auch gleichzeitig für die XML Daten, die in der XML-Datenbank ebgelegt werden sollen gilt, hätt ich einiges gewonnen. Dann muss der Admin keine Ahnung von XML/XML-Schema haben und kann einfach an seinem Baum die für die Datenbank nötigen Tags einfügen und editieren. Wenn er aber am Baum rumspielt, dann soll das gleich auch in die XML-Schema geschrieben werden..also am besten eine bijektive Abbildung von Baum zur XML-Schemadatei..

Ne Idee?
 
XML ist aber nicht dafür da Programmlogik umzusetzen. XML ist ja bei dir für die Datenhaltung zuständig.
Das würde ich sauber trennen.

Was genau möchtest du eigentlich machen?

MFG

Sascha
 
ich möchte einer gruppe es ermöglichen, ein wörterbuch zu erstellen. Das Problem ist, dass die erst mir der Zeit klar wird, welche Datensätze gesammelt werden sollen...
Auf der Internetsite soll dann der "subsriber" auf z.B. <entry>(also wurzel vom baum) klicken und in der Mitte der Site soll er dann das Wort schreiben...
Natürlich besteht der Baum nicht nur aus <entry> sondern aus vielen(bis jetzt unbekannten) Tags...unbekannt, da es bei dictionarys(arabisch) noch keinen standard gibt und dieser erst mit der Zeit in einer Arbeitsgruppe..vergleich TextEncodingInitiative...

Die gesamte XML Datei, die in einer Exist Datenbank abgespeichert werden soll, enthält dann irgendwann mal die ganzen einträge...

Nun soll es dem Andmin des Projektes möglich sein, die Datenstruktur zu ändern, ohne aber XML/DTD was auch immer zu können...Sollte eine gesunde mischung aus fest verdrateten tags sein, die auf jeden Fall im Baum zu sehen sein sollen...und manchen, die mit der Zeit dazu kommen.

Ich verstehe trotzdem nicht..
<XML ist aber nicht dafür da Programmlogik umzusetzen. XML ist ja bei dir für die Datenhaltung zuständig.

XML soll auch nicht zur Programmlogik beitragen.
Beispiel: Ein lustiges kleines JavaProgramm liegt auf dem Server und liest diese kleine XML-SCHEMA datei ein, spuckt die Baumstruktur, also Elemente und deren Bezeichung aus, beim Aufrufen der Homepage zieht sich der Baum(also, der visuell dargestellte, z.B mit Jtree) seinen Inhalt aus dem zuvor Ausgespucktem.
Was hat denn da XML mit der Programmlogik zu tun?

Entweder ich hab das nicht richtig erklärt, oder ich hab nen kleinen denkfehler...
 
Wenn ich dich richtig verstanden hab, soll eine XML-Datei abgespeichert werden, wie die Datei aber aussieht, ist noch gar nicht klar, oder?

MFG

Sascha
 
richtig. Aber ich glaube, dass ich mit Java JTree auf dem Holzweg war...
Versuche gerade einen Ansatz mit XFORMS. Das Problem ist, das weder JDOM noch DOM/SAX meine Schema datei intern als Baumstruktur darstellt, da ich innerhalb meiner schema datei mit references gearbeitet hab, ging das in die Hose...
Aber vielleicht hat ja trotzdem jemand eine idee...
THX anyway
 
Ein dynamisches Schema ist unsinnig. Ein Schema soll ja eine Struktur validieren. Es ist ein Modell (oder eine Klasse) wie immer amn das sieht. Es stellt einen Vertrag zwischen dem Sender und dem Empfänger von Daten da.

Wenn eine Software beispielsweise testen möchte, ob ein Xml-Dokument ein Buch oder eine Steuererklärung ist, verwendet sie ein Schema.

Wenn ein Schema dynamisch wäre, könnte ja eine Steuererklärung Montags valide und Dienstags nicht mehr valide sein. So was geht nicht.

Was allerdings geht, ist das man Teile eines Schemas "weich" hält.

Auszug aus Wikipedia:
Beliebiger Inhalt [Bearbeiten]XML-Elemente mit beliebigem Inhalt lassen sich mittels des Basistyps anyType definieren. Der nachfolgende Code spezifiziert ein kommentar-Element beliebigen Inhalts, d. h. sowohl komplexe XML-Elemente als auch Text können vorkommen.
XML:
<xsd:element name="kommentar" type="xsd:anyType"/>

Schreib doch noch ein wenig über die Sache. Ich finde das Problem interessant.
Das ist übrigens auch der Default, wenn man den Type am Element wegläßt.
 
Zuletzt bearbeitet von einem Moderator:
Zurück