C.3 Paket SGML (p_sgml)

Das Paket SGML beinhaltet alle Klassen zur Speicherung von, zum Zugriff auf und zum Durchsuchen der in der Datenbank abgelegten SGML-Dokumente.

C.3.1 Klasse c_sgmlstore

Konstruktor- übernimmt die Dokumenten-ID, sowie den Dateinamen des Eingabebitstroms von der Ablaufumgebung.

open_in- öffnet den Eingabebitstrom.

close_in- schließt den Eingabebitstrom.

read_in(size)- liest size Bytes vom Eingabebitstrom.

seek_in(offset,whence)- verändert die Position der Lese-/Schreibmarke des Eingabebitstroms, wie unter seek der Klasse c_bsio beschrieben.

tell_in()- liefert die aktuelle Position der Lese-/Schreibmarke des Eingabebitstroms.

get_emptytags()- liefert alle in der DTD des Dokuments definierten EMPTY-Tags als Liste zurück.

register_sgmlstore()-vermerkt in der Datenbank, daß das Dokument in der Datenbank des Speichers abgelegt wurde.

save_doctype()- legt den Dokumententyp (DTD-Name) in der Datenbank ab.

save_astag(tagstr)- speichert tagstr in der Tag-Klasse, Berechungen für den Strukturbaum werden automatisch vorgenommen.

save_astext(textstr)- speichert textstr in der Text-Klasse.

save_asbin(urlstr)- speichert das als URL referenzierte binäre Objekt in der Binärklasse.

get_nextelement()- liest das nächste Element aus dem Eingabebitstrom ein und gibt es zurück.

is_tag(tagstr)- ergibt 1, wenn es sich bei tagstr um ein Tag handelt, sonst 0.

is_emptytag(tagstr)- ergibt 1, wenn es sich bei tagstr um ein Empty-Tag handelt, sonst 0.

C.3.2 Klasse c_sgmlquery

Diese Klasse bietet Methoden zum Durchsuchen eines bestimmten Dokuments nach Suchausdrücken.

Konstruktor(ident)- initialisert Objektvariable, ident gibt die Dokumenten-ID an.

sgmlquery_tag(tagname,tagcount)- liefert das tagcount-te Tag mit Namen tagname zurück.

sgmlquery_tagcontents(tagname,tagcount)- liefert den Inhalt des tagcount-ten Tags mit Namen tagname zurück.

sgmlquery_structure()- gibt den Strukturbaum des Dokuments zurück.

sgmlquery_doc()- gibt das gesamte Dokument zurück.

sgmlquery_tagcount(tagname)- zählt die Tags mit Namen tagname im Dokument.

sgmlquery_splittag(tagstr)- verarbeitet tagstr wie unter sgmlread_splittag beschrieben.

C.3.3 Klasse c_sgmlsearch

Diese Klasse bietet Methoden zum Durchsuchen aller Dokumente nach Suchausdrücken. Bei der Suche wird der SQL LIKE-Operator verwendet, so daß auch ähnliche Zeichenketten Berücksichtigung finden.

sgmlsearch_tag(searchstr)- durchsucht die Tag-Klasse nach Übereinstimmungen mit searchstr.

sgmlsearch_text(searchstr)- durchsucht die Text-Klasse nach Übereinstimmungen mit searchstr.

sgmlsearch_bin()- eine virtuelle Methode, die in abgeleiteten Klassen überschrieben werden kann.

sgmlsearch_doc(searchstr)- durchsucht die Tag- und die Text-Klasse nach Übereinstimmungen mit searchstr.

sgmlsearch_dtddocs(dtdid)- ermittelt die Dokumenten-ID‘s aller Dokumente, die der in dtdid gegebenen DTD entsprechen. Dabei kann dtdid die Public- oder die System-ID einer DTD angeben. Das Ergebnis wird in Form einer Lsite zurückgeliefert.

sgmlsearch_dtdandtags(dtdid,searchstr)- ermittelt die Dokumenten-ID‘s aller Dokumente, die der durch dtdid gegebenen DTD entsprechen und ein Tag enthalten das searchstr entspricht. Das Ergebnis wird in Form einer Liste zurückgegeben.