Skip to content

GAEB-for-Pascal 1.2.0

Latest

Choose a tag to compare

@landrix landrix released this 13 Nov 12:15
· 15 commits to main since this release

Checks a conversion before saving and validates GAEB DA XML 3.0 and 3.1 files against their original schemas. Source compatible with 1.1.0; the new unit extends the frozen public API. XML still goes through LandrixXML 0.4.0 (Git submodule, git clone --recurse-submodules).

New

  • Checking a conversion (LandrixGaebConversion, stable): LandrixGaebCheckConversion writes a bill of quantities for an output target and reports three separate results: writing (fails on any data loss), structure (content model check of the exact bytes written) and business rules (run on the output read back). The output can go to an optional stream, so the checked bytes are the ones saved. Useful above all for files read from 3.0/3.1, which are saved as 3.3. examples/CheckGaeb gains -convert=3.2|3.3.
  • XSD validation of 3.0 and 3.1 files against their original schemas (3.0/2004-07, 3.1/2007-11 and 3.1/2009-12, each with its DA 84 package). tools/fetch-gaeb-xsd.ps1 now also fetches the 3.1 packages from gaeb.de. Files are recognised by name and SHA-256 sum; a changed schema is never assigned to a version by guessing. Writing 3.0/3.1 is still not supported, so validating a model for these targets raises before any schema is loaded.

Fixed

  • The detection reports Version, VersDate or DP holding child elements as a warning (GAEB-DET-011) instead of rejecting the file as not well-formed.

Not included

Content model check and business rules for 3.0/3.1 input itself: they run on the converted 3.3 output (see above). The trade phases of 3.1 (DA 93 to 97) and DA 88 are detected but not read. GAEB 90 and GAEB 2000 stay detection only.

Quality

  • 15 toolchains green with zero warnings and hints: 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).
  • External XSD validation with .NET: both verdicts agree on all 145 documents the tests validate, valid and invalid ones.
  • Writing measured on real x86: run time grows linearly with the size of the bill of quantities.

Documentation

Checking (checking a conversion, XSD validation of 3.0/3.1) and Writing and converting; German under docs/de.


Deutsch: Konvertierung vor dem Speichern prüfen (LandrixGaebConversion: Schreiben, Struktur und Geschäftsregeln getrennt) und GAEB DA XML 3.0/3.1 gegen die originalen Schemas validieren (3.1-Pakete per tools/fetch-gaeb-xsd.ps1). Quelltextkompatibel zu 1.1.0, getestet auf 15 Toolchains.

GAEB is a standard of the Gemeinsamer Ausschuss Elektronik im Bauwesen. This project is not affiliated with or endorsed by GAEB.