Repository navigation
GAEB-for-Pascal 1.0.0
First release: read, write, check and convert GAEB DA XML with one code base for Delphi 6 to Delphi 13 and Free Pascal 3.2.2, 3.2.4 and 3.3.1 (Windows, Linux, macOS). No MSXML, no DLL: XML goes through LandrixXML 0.4.0, included as a Git submodule (git clone --recurse-submodules).
Highlights
- GAEB DA XML 3.2 (2013-10) and 3.3 (2021-05): read, write and check all bill of quantities phases DA 80 to 87 (X80 to X82 bill of quantities, X83 request for bids, X84 bid, X85 alternative bid, X86 award, X87 award confirmation). 3.3 edition 2019-11 is read. Conversion between versions and phases.
- Business facade (
LandrixGaebBoQ,LandrixGaebProcess): categories, items with OZ, quantities, unit prices, item types, short and long texts, parties; item matching and building the award from request and bid. - Complete syntax model generated from the GAEB schemas: whatever the facade does not cover is kept and reachable.
- Checks: content model of the target phase when reading and writing; business rules (OZ, quantities, prices, texts, totals) and pair rules (request/bid, bid/award); every message with a rule ID and a path.
- Exact decimals for quantities and prices, never Double; no locale dependency; Unicode texts on every compiler, Delphi 6 included.
- Untrusted input: no DTD, no external entities, a size limit; XML that is not well-formed is rejected with its position.
- Detection of GAEB 90, GAEB 2000, GAEB DA XML 3.0/3.1 and further phases (reading them is planned).
Quality
- Tested on 15 toolchains: Delphi 6, 7 and 13 (Win32/Win64, also with range and overflow checks), Delphi 13 macOS ARM64 (compile only), Free Pascal 3.2.2, 3.2.4 and 3.3.1 on Windows (x86, x64, ARM64), Linux and macOS (Apple Silicon); zero warnings and hints.
- External XSD validation: every document the tests validate is validated again with .NET against the original GAEB schemas, valid and invalid ones; both verdicts must agree.
- Round trips over real bills of quantities; frozen public API checked against a baseline. Within 1.x the source stays compatible (see README, Public API).
Documentation
Getting started, reading, writing and converting, checking and the bid process in English and German; five console examples under examples/.
License
Dual-licensed: GPL-3.0-or-later or the Landrix Software Commercial License (see README).
Deutsch: Erste Version: GAEB DA XML 3.2 und 3.3 (DA 80 bis 87) lesen, schreiben, prüfen und konvertieren, eine Codebasis für Delphi 6 bis 13 und Free Pascal. Fachliche Fassade, vollständiges Syntaxmodell, Inhaltsmodell-, Geschäfts- und Paarregeln, exakte Dezimalzahlen, getestet auf 15 Toolchains und extern gegen die originalen Schemas validiert. Doku auf Deutsch unter docs/de.
GAEB is a standard of the Gemeinsamer Ausschuss Elektronik im Bauwesen. This project is not affiliated with or endorsed by GAEB.