openbim-gaeb 0.1.1

Pure-Rust GAEB DA XML reading, inspection, and lossless editing.
Documentation

openbim-gaeb

Pure-Rust, lossless GAEB DA XML recognition, inspection, and focused editing.

Implemented

  • GAEB DA XML 3.1, 3.2, 3.3, and 3.4 beta detection;
  • namespace-resolved GAEB elements plus <Version> and <DP> evidence with mismatch diagnostics;
  • byte-identical unchanged round trips, including BOM, comments, prefixes, whitespace, and unknown extensions;
  • common BoQ item summaries;
  • atomic <Qty> edits by unique, non-empty item ID when the value has one safe text or CDATA range; fragmented/mixed-content quantities are read-only.

The crate does not claim full XSD bindings, XSD validation, or business-rule validation.

Example

use openbim_gaeb::Document;

let xml = br#"<GAEB xmlns="http://www.gaeb.de/GAEB_DA_XML/DA86/3.3">
  <GAEBInfo><Version>3.3</Version></GAEBInfo>
  <Award><DP>86</DP><Item ID="i-1"><Qty>1.000</Qty></Item></Award>
</GAEB>"#;
let mut document = Document::parse(xml)?;
document.set_item_quantity("i-1", "2.500")?;
assert!(String::from_utf8_lossy(document.as_bytes()).contains("<Qty>2.500</Qty>"));
# Ok::<(), openbim_gaeb::Error>(())

The canonical repository is https://github.com/openbimrs/gaeb.

License

MIT