Hi!
Ich muss zugeben, ich hab mir nicht alles durchgelesen, aber ich hab mir den Thread zumindest gebookmarked, da ich das Thema schon interessant finde. Denn - das könnte mir beim Design einer meiner Ideen weiterhelfen.
Hast Du schon mal daran gedacht, mit Deinen Formularen auch hierarchische Strukturen abzubilden? Bei Datenbanktabellen ist es noch relativ einfach: man nimmt die Spaltenköpfe als Formularfelder. Wenn aber die Formulardaten in einer XML-Datei abgespeichert werden sollen, müssen auch die Formularfelder entsprechende Namen haben, um hier den Überblick zu behalten (zum Beispiel "root:childelem:attribute").
Wofür ich das brauche? Ich hatte irgendwann mal angefangen, mir ein CMS auf XML-Basis auszudenken und nach ziemlich langer Hin- und Herbastelei bin ich auf eine erstaunlich einfache Struktur gekommen.
In groben Zügen: der Inhalt einer Webseite wird einer XML-Datei gespeichert (Web Content File nenne ich das :) und daraus wird dann per XSLT oder PHP oder sonstwas die HTML-Seite generiert. So weit ist das nichts Neues, aber mich haben halt die bisherigen viel zu speziellen XML-Lösungen gestört. So sieht man zum Beispiel immer wieder sowas hier:
<page>
<headline>...</headline>
<teaser>...</teaser>
<body>...</body>
</page>
Mein Ansatz geht einen ziemlich allgemeinen und abstrakten Weg: die Datenfeldnamen bestimmen nicht die Tagnamen, sondern nur deren ID.
Eine Inhaltsseite sieht dann zum Beispiel so aus:
<page>
<text id="headline">...</text>
<text id="teaser">...</text>
<text id="body">...</text>
<set id="linkszumthema">
<set id="link1">
<text id="url">http://...</text>
<text id="label">...</text>
</set>
...
</set>
</page>
Die beiden Tags "text" und "set" reichen vollkommen aus, um Inhalt und Struktur der Daten zu speichern. Das Template übernimmt dann die Aufgabe, dem einen Sinn und eine Form zu geben (also zum Beispiel: das Set "linkszumthema" ist eine Liste und das Set "link1" ist ein Eintrag in dieser Liste, welcher die zu diesem Eintrag gehörenden Daten zusammenfasst - in früheren Versionen hatte ich hier noch eine Trennung, die Tags hießen dann "list" und "entry").
Anhand der ID eines Elements kann der Formularname leicht zusammengebastelt werden (z.B. "linkszumthema:link1:label"). Da aber ID kein required-Attribut ist (im Beispiel wäre die Bezeichnung link1,link2,...,linkn ziemlich überflüssig), können Elemente auch über ihre Nummer, sprich ihre Position in einer Liste angesprochen werden ("linkszumthema:[1]:label" oder so). Letztendlich ist die Zugriffssyntax ein sehr, sehr stark vereinfachtes XPath.
Hm, ich hab wohl ein wenig weit ausgeschweift und wahrscheinlich ist das für Dich alles uninteressant, aber vielleicht solltest Du hierarchische Datenstrukturen bei Deinem Formulargenerator nicht ganz außer Acht lassen.
VG Simon
Die Jugend ist viel zu schade für die jungen Leute.