[Allegro] exp - E und Kopfabschnitt

Thomas Berger ThB at Gymel.com
Mi Mär 14 12:12:21 CET 2012


Lieber Herr Fischer, lieber Herr Eversberg,

>>> dem kann ich so nicht ganz folgen. Sowohl beim Export in den 
>>> verschiedenen XML-Varianten (HTML, XML, SOAP) als auch beim 
>> RTF-Export 
>>> ist es immer wieder notwendig, den Inhalten sowohl einen
>>> Kopf- als auch eine Fußbereich zu spendieren, der vom Inhalt und 
>>> spezifischen Format der Daten ganz unabhängig ist. Dafür fände ich
>>> Kopf- und Fußbefehle immer noch sehr sinnvoll, wenn man sie 
>> denn gut 
>>> steuern könnte und sie die erwarteten Ergebnisse brächten. 
>> Wegen der 
>>> Lesbarkeit (zur Kontrolle) der Daten sind da auch zwei Zeilen zu 
>>> knapp.
>>>
>> Dem kann ich zwar folgen, aber das ist nicht die Frage.
>> Intern, im Innern der Exportprozedur (Quelldatei exet.cpp) 
>> ist es kaum rationell möglich, den Bereich auszuweiten, denn 
>> leider wurde diese Sache unflexibel programmiert. Wie so 
>> manches andere, zugegeben, aber das war eben eine andere Zeit.
>> Mit den anderen schon genannten Mitteln und Methoden sollte 
>> es aber doch hinreichend leicht möglich sein, genau das zu 
>> machen was Sie sich vorstellen!
>> Besser also, Sie trennen sich von der Vorstellung, Ihre 
>> Ansinnen auf diesem Wege zu lösen.
> 
> Das kann ich versuchen, das bedeutet aber auch, dass für die von mir
> genannten
> Formate die Exportfunktion von A99 (Export -> Aktuelle Erg.Menge) keine
> korrekten Daten liefern kann und man immer auf (selbstgebaute) Flexe
> zurückgreifen muss.


Definitiv. Ich habe das letztes Jahr einmal durchexerziert, als ich
MABXML als Metadatenformat fuer OAI-PMH (re-)implementiert habe:

Es gibt da also einen XML-Wrapper, naemlich die OAI-PMH-Datenelemente,
da drinnen einen Metadata-Container, der MABXML enthaelt. Je nachdem,
ob es ein hierarchischer Datensatz ist oder nicht, ist das
hoechste Element im Container "Datei" oder direkt ein "Datensatz", bei
einem "normalen" Export durch die Parameterdatei (ohne OAI-Kontext)
hingegen ist es stets "Datei", davor jedoch ist die XML-Deklaration
faellig.

Bim Ende des Exports ist darauf zu achten, dass alle ggfl.s noch "offenen"
Unterfeld-, Feld-, Datensatz- oder Datei-Elemente zu schliessen sind,
aber keines zu viel. Beim Anfang des Exports (ausgehend von etwas, was
einmal "Datensatz" wird) hingegen ist darauf zu achten, ob dies der
erste Datensatz ist und ob bereits an vorher ausgegebenen, uebergeordneten
Elementen die notwendigen Namespace-Attribute gesetzt wurden, sonst
muessen sie zum aktuellen Element. Und man muss darauf achten, dass nicht
zu frueh etwas ausgegeben wird: Kommt kein Datensatz in die Datei, dann
darf es da auch kein drumrum geben, sonst ist sie u.U. nicht valide...

In einem interaktiven Kontext wie a99 ist die zusaetzliche Schwierigkeit,
dass es gar nicht moeglich ist, "Anfang des Exports" oder "Ende des
Exports" festzustellen: Kommt nach dem Export der Ergebnismenge demnaechst
noch eine weitere? Bedeutet Schliessen der Datei, dass sie demnaechst
nicht erneut zum Anhaengen von irgendwas geoeffnet wird? Bedeutet neu
laden der Parameterdatei, dass sie vorher noch nicht in dieselbe (noch
gar nicht angegebene Ausgabedatei) exportiert hat?

Es ist jedenfalls eine komplexe, mehrschchtige Logik erforderlich, sowohl
vor dem ersten Datensatz als auch nach dem letzten. Und dabei braucht man
in der Tat einen dedizierten Einsprung, der dann den Abschluss der Datei
veranlasst, "exp -<irgendwas>" ist dabei ein entscheidendes Konstrukt.
Aber Kopf- und Fussteile und eigentlich auch "Listenende" sind da nicht
einmal brauchbare Paradigmen, vor allem wo Kopf- und Fussabschnitt m.W.
auch noch gewissen Einschraenkungen unterliegen, was die Exportsprache
angeht (ich habe frueh feststellen muessen, dass der Kopfabschnitt kein
guter Ort ist, um Variableninitialisierungen vorzunehmen, da muss es
irgendwelche Wechselwirkungen damit geben, wieviel ausgeben wird oder
wurde)

viele Gruesse
Thomas Berger




Mehr Informationen über die Mailingliste Allegro