Skip to main content

openbim_mmc/
lib.rs

1//! Safe, lossless DIN 18290-1 / Multi-Model Container 2.0 mechanics.
2//!
3//! `openbim-mmc` owns the MMC ZIP envelope, `MultiModel.xml`, LinkModel XML,
4//! bounded parsing, conformance reporting, safe extraction, and deterministic
5//! writing. Application payloads remain opaque. DIN 18290 Parts 2–4 profiles
6//! belong in domain crates that consume this crate and canonical GAEB/IFC APIs.
7
8mod archive;
9mod builder;
10mod error;
11mod limits;
12mod model;
13mod path;
14mod validation;
15mod xml;
16
17pub use archive::{ArchiveEntry, EntryKind, MmcArchive};
18pub use builder::MmcArchiveBuilder;
19pub use error::MmcError;
20pub use limits::Limits;
21pub use model::{
22    ApplicationModel, ContainerMetadata, DataResource, Link, LinkModel, LinkModelDocument,
23    LinkModelReference, MetadataEntry, ModelData, MultiModel, Rate, Relatum, ResourceLocation,
24};
25pub use validation::{ValidationCode, ValidationIssue, ValidationReport};
26
27/// Exact MMC 2.0 container namespace from DIN 18290-1's digital schema lineage.
28pub const MMC_NAMESPACE: &str = "http://www.buildingsmart.org/multi-model/MMContainer/2.0.0";
29/// Exact MMC 2.0 LinkModel namespace.
30pub const LINK_MODEL_NAMESPACE: &str = "http://www.buildingsmart.org/multi-model/LinkModel/2.0.0";