energyml-core 0.3.0

Runtime support for generated EnergyML (eml/resqml/witsml/prodml) crates: XML/JSON serialization, reflection, validation and identifiers.
Documentation

energyml-core

Runtime support for the generated EnergyML crates (EML, RESQML, WITSML, PRODML). It holds everything generated code leans on and nothing schema-specific: namespace-aware XML reading and writing, JSON through serde, a static reflection table per type, dynamic access by path, structural validation, a registry that creates and reads objects by content type or qualified type, and the parsers for UUIDs, content types, qualified types and ETP URIs.

The crate has no native dependency, so everything built on it up to the geometry layer compiles for wasm32.

Features

Feature Default Effect
json yes JSON (de)serialisation through serde_json
derive yes re-exports the derive macros of energyml-derive

Example

Identifiers are parsed in one place, energyml_core::identifiers; EtpUri::parse is the single entry point for ETP URIs.

use energyml_core::identifiers::EtpUri;

let uri = EtpUri::parse(text)?; // `text`: an ETP URI string

TODO(verify): add a literal URI example after checking the accepted syntax in src/identifiers.rs.

Documentation

Licence

Apache-2.0. See LICENSE.