Skip to main content

laminar_connectors/fpml/
mod.rs

1//! FpML document decoding: secure parsing, pinned XML Schema validation, reference integrity,
2//! and configured typed projection into Arrow.
3//!
4//! One complete document per transport record (file or message). Each document passes, in
5//! order: a streaming pre-scan (UTF-8 only, no DTDs or processing instructions, structural
6//! limits), libxml2 parsing and XML Schema validation against a digest-pinned closure,
7//! document-local reference checks, and projection through a compiled profile. Any failure
8//! rejects the whole document before a row is returned.
9
10// FpML, XML Schema, and libxml2 names are vocabulary in prose, not code identifiers.
11#![allow(clippy::doc_markdown)]
12
13mod artifacts;
14mod decoder;
15mod document;
16mod error;
17#[cfg(test)]
18mod golden;
19mod limits;
20#[cfg(any(
21    feature = "kafka",
22    feature = "rabbitmq",
23    feature = "ibmmq",
24    feature = "fix"
25))]
26pub(crate) mod message;
27mod metrics;
28mod prescan;
29mod profile;
30mod projection;
31mod references;
32mod schema_model;
33#[cfg(test)]
34mod tests;
35mod xsd;
36
37pub use artifacts::{Artifact, BUNDLED_CONFIRMATION};
38pub use decoder::{FpmlConfig, FpmlDecoder, DEFAULT_PROFILE};
39pub use error::{Rejection, Stage};
40pub use limits::Limits;
41pub use profile::{Profile, ProfileSource, BUNDLED_PROFILES};
42pub use references::ReferencePolicy;