Lieber Mathias,
dazu wäre es jetzt wichtig zu wissen, welche Version Du einsetzt. Es gab
in der Tat einen Bug, dass die Reihenfolge wiederholter Elemente
verloren geht, wenn in einem Formular Eingabevalidierung erfolgt. Diesen
Bug habe ich am 15.08.2007 gefixt, aber das war natürlich nach dem 1.3
Release. Evtl. kannst du aber die Änderungen manuell in Deine Version
von MCREditorSubmission.java übernehmen:
http://www.mycore.de/viewvc/viewvc.cgi?view=rev&revision=12222
Im XML des Metadatenobjektes ist die Reihenfolge implizit gegeben, durch
die Reihenfolge der XML Elemente im Text. Das XML wird 1:1 gespeichert,
und die Reihenfolge bleibt dadurch erhalten. Im Editor-Formular bleibt
sie ebenfalls erhalten, hier werden fortlaufende Nummern für die
generierten Eingabefelder gebaut und später wieder entfernt.
Viele Grüße,
Frank Lützenkirchen
-------------------------------------------------------------
Fachreferat Informatik, Dokumentenserver DuEPublico, MyCoRe
Universitätsbibliothek Duisburg-Essen
Universitätsstraße 9-11, 45141 Essen
Telefon : +49 (0) 201 / 183 - 2124 Raum: V15 S01 M20
Telefax : +49 (0) 201 / 183 - 3231 Fachbibliothek MNT
-------------------------------------------------------------
mathias fricke schrieb:
> hej,
> die eigentliche frage kurz vorweg: wie wird bei wiederholbaren
> editorfeldern sichergetsellt, dass die eingabe-reihenfolge stabil bleibt?
>
> ausführlicher:
> ich habe hier einen editor, der sowohl mehr oder weniger unbegrenzte
> wiederholung eines panels zulässt als auch die sortierung der panele
> mittels der hoch-/runter-pfeile.
> die angaben werden dann auch in der gegebenen reihenfolge gespeichert.
> das ist soweit ja nicht weiter auffällig.
>
> allerdings passiert es, dass die reihenfolge der angaben sich späterhin
> plötzlich ändert, sodass die angaben uu etwas unübersichtlcih werden
> können.
>
> ein beispiel wäre zb
> http://cmslib.rrz.uni-hamburg.de:6292/receive/lexm_lexmperson_00002664?wcmsID=0003&XSL.lexmlayout.SESSION=lexmperson_exil
> (wenn der link nicht funktioniert: suchen nach magda spiegel und in der
> seite dann den "Verfolgung/Exil").
>
> auf der seite sind unter "Stationen" die daten aufgelistet, die natürlich
> in chronologischer reihenfolge sein sollten -- im moment sind sie es auch
> wieder (vorführeffekt).
>
> wenn ich mir das xml dazu anschaue, dann steht da nur
>
> <exilestations class="MCRMetaLangText" heritable="false"
> notinherit="false">
> <exilestations xml:lang="de" inherited="0" form="plain" type="1. Sept.
> 1942">Deportation in das Ghetto Theresienstadt</exilestations>
> <exilestations xml:lang="de" inherited="0" form="plain" type="19. Okt.
> 1944">Deportation in das KZ Auschwitz-Birkenau, dort vermutlich sofort
> nach der Ankunft ermordet</exilestations>
> </exilestations>
>
> es gibt kein attribut, das irgendwie die reihefolge widerspiegelt, in die
> die einträge zb mittels hoch-/runter-pfeile gebracht wurde.
> an anderen stellen tritt das problem auch auf (namen), lässt sich dort
> aber durch ein <xsl:sort ...> entschärfen.
> das geht hier nicht, es muss exakt die reihenfolge beibehalten werden, die
> eingegeben wurde.
>
> meine vermutung ist, dass das beim parsen passiert, also der xalan die
> nodes zufällig einhängt, da kein kriterium zur reihenfolgenbestimmung
> existiert.
> wenn dem so sein sollte -- kann man den parser irgendwo anweisen, die
> nodes so einzuhängen, wie sie im text stehen?
>
> mfg
>
> ps: für den fall, das es irgendwie hilft, habe ich hier mal ausschnitte
> aus den betreffenden xml-dateien:
>
> hier der zugehörige abschnitt aus dem modell:
> <element name="exilestations" minOccurs="0" maxOccurs="1">
> <mcrmetalangtext name="exilestations" class="MCRMetaLangText"
> minOccurs="1" maxOccurs="unbounded" length="1000"/>
> </element>
>
> hier aus dem editor
> <hidden var="metadata/exilestations/@class" default="MCRMetaLangText" />
> <cell row="21" col="1" anchor="NORTHWEST"
> var="metadata/exilestations/exilestations" sortnr="390">
> <repeater min="0" max="40" anchor="NORTHEAST" ref="exilestation" />
> </cell>
>
> und hier aus dem import für den editor
> <panel id="exilestation" lines="off">
> <cell row="1" col="1" class="first" width="25%" anchor="NORTHEAST">
> <text>
> <label xml:lang="de">Datum</label>
> </text>
> </cell>
> <cell row="1" col="2" width="45%" anchor="NORTHWEST" colspan="1"
> var="@type">
> <textfield id="entity.exilestation" width="50" />
> </cell>
> <cell row="1" col="3" width="1%" anchor="NORTHEAST" colspan="1">
> <helpPopup id="person.exilestation_date.hilfe" width="400px"
> height="200px">
> <label xml:lang="de">
> <h1>Datum</h1>
> <p>
> Hier könnte ein Hilfetext stehen.
> </p>
> </label>
> </helpPopup>
> </cell>
>
> <cell row="2" col="1" class="first" width="25%" anchor="NORTHEAST">
> <text>
> <label xml:lang="de">Ereignis</label>
> </text>
> </cell>
> <cell row="2" col="2" width="45%" anchor="NORTHWEST" colspan="1">
> <textfield width="50" />
> </cell>
> <cell row="2" col="3" width="1%" anchor="NORTHEAST" colspan="1">
> <helpPopup id="person.exilestation.hilfe" width="400px" height="200px">
> <label xml:lang="de">
> <h1>Ereignis</h1>
> <p>
> Hier könnte ein Hilfetext stehen.
> </p>
> </label>
> </helpPopup>
> </cell>
> </panel>
>
--
|