GAEB-for-Pascal 1.0.0 ist erschienen: eine quelloffene Bibliothek für GAEB DA XML, also Leistungsverzeichnisse, Angebote und Aufträge der Bauwirtschaft. Eine Codebasis für Delphi 6 bis Delphi 13 und Free Pascal 3.2.2, 3.2.4 und 3.3.1 (Windows, Linux, macOS). Kein MSXML, keine DLL, keine Laufzeitumgebung: XML läuft über LandrixXML, das als Git-Submodul mitkommt.
Repository: https://github.com/LandrixSoftware/GAEB-for-Pascal
Release: https://github.com/LandrixSoftware/GAEB ... tag/v1.0.0
Was sie kann
- GAEB DA XML 3.2 (2013-10) und 3.3 (2021-05) lesen, schreiben und prüfen, in allen LV-Phasen DA 80 bis 87: Leistungsverzeichnis, Angebotsaufforderung (X83), Angebot (X84), Nebenangebot (X85), Auftrag (X86), Auftragsbestätigung (X87). GAEB DA XML 3.3 in der Ausgabe 2019-11 wird gelesen.
- Konvertieren zwischen 3.2 und 3.3 und zwischen den Phasen, etwa X81 nach X83.
- Fachliche Fassade: Bereiche, Positionen mit OZ, Mengen, Einheitspreise, Positionsarten, Kurz- und Langtexte, Parteien. Aus Anfrage und Angebot den Auftrag bilden, mit Zuordnung der Positionen und Summen.
- Darunter ein vollständiges, aus den GAEB-Schemas generiertes Syntaxmodell. Was die Fassade nicht abdeckt, bleibt erhalten und ist erreichbar.
- Prüfung gegen das Inhaltsmodell der Zielphase beim Lesen und Schreiben, dazu Geschäftsregeln (OZ, Mengen, Preise, Texte, Summen) und Paarregeln (Anfrage/Angebot, Angebot/Auftrag). Jede Meldung hat eine Regel-ID und einen Pfad.
- Mengen und Preise exakt dezimal, nie Double. Nichts hängt von den Ländereinstellungen ab. Texte sind durchgehend Unicode, auch unter Delphi 6.
- Eingaben von außen gelten als nicht vertrauenswürdig: keine DTD, keine externen Entitäten, eine Größengrenze. Nicht wohlgeformtes XML wird mit Position abgelehnt, nie geraten.
- Erkennt außerdem GAEB 90, GAEB 2000, GAEB DA XML 3.0/3.1 und weitere Phasen (Lesen folgt, siehe unten).
- 15 Toolchains: Delphi 6, 7 und 13 (Win32/Win64, auch mit Bereichs- und Überlaufprüfung), Delphi 13 macOS ARM64 (nur Übersetzen), Free Pascal 3.2.2, 3.2.4 und 3.3.1 unter Windows (x86, x64, ARM64), Linux und macOS (Apple Silicon). Null Warnungen und Hinweise.
- Jedes Dokument, das die Tests gegen die Schemas prüfen, wird zusätzlich unabhängig mit .NET gegen die originalen GAEB-Schemas validiert, gültige wie gezielt ungültige; beide Urteile müssen übereinstimmen.
- Round Trips über echte Leistungsverzeichnisse aus der Praxis: lesen, schreiben, wieder lesen, Modell Feld für Feld vergleichen.
- Die öffentliche API ist eingefroren und wird bei jedem Build gegen eine Baseline geprüft; innerhalb von 1.x bleibt der Quelltext kompatibel.
Code: Alles auswählen
uses
LandrixGaebTypes, LandrixGaebDiagnostics, LandrixGaebBoQ;
Bill := TLandrixGaebBillOfQuantities.LoadFromFile('request.x83', nil, 0);
try
for I := 0 to Bill.AllItems.Count - 1 do
WriteLn(string(Bill.AllItems[I].OZ), ' ', string(Bill.AllItems[I].ShortText));
Bill.SaveToFile('copy.x83', nil); // gegen das Schema geprüft
finally
Bill.Free;
end;Lizenz
Doppellizenz: kostenlos unter der GPL v3, oder die Landrix Software Commercial License für die Nutzung in eigenen, nicht offengelegten Anwendungen: 1.900 EUR zzgl. MwSt. pro Firma, dauerhaft, mit allen künftigen Updates. Anfrage per Mail an info@landrix.de.
Was als Nächstes kommt
- GAEB DA XML 3.0 und 3.1 lesen.
- GAEB DA XML 3.4, sobald die Version freigegeben ist.
- Weitere Phasen nach Bedarf, später GAEB 2000 und GAEB 90 lesen.
GAEB ist ein Standard des Gemeinsamen Ausschusses Elektronik im Bauwesen. Das Projekt steht in keiner Verbindung zum GAEB und wird von ihm nicht unterstützt.