zerodds-xml-wire
Layer 3 — Schema (DDS-XML wire PSM). DDS-XML 1.0 wire PSM — XML↔︎CDR codec.
- Source: crates/zerodds-xml-wire
- API docs: docs.rs/zerodds-xml-wire
OMG DDS-XML 1.0 wire PSM (formal/2019-09-01 §6): XML as an alternative on-the-wire representation for DDS topic samples, parallel to CDR. Provides a bidirectional XML↔︎CDR codec at the type-token level, XSD schema generation from IDL type definitions, a streaming XML parser (no DOM buffering) and emitter with XML 1.0 conformance, and schema validation against XSD.
Spec anchors
- OMG DDS-XML 1.0 §6 — XML wire representation for topic samples.
- XML↔︎CDR codec, XSD generation, streaming parser/emitter, validator.
Quick start
Encode a sample map to the §6.4 XML wire form and back:
use std::collections::BTreeMap;
use zerodds_xml_wire::codec::{encode_to_xml, decode_xml, FieldValue};
let mut fields = BTreeMap::new();
fields.insert("celsius".to_string(), FieldValue::Float(21.5));
// Sample → XML (DDS-XML 1.0 §6.4 wire form)
let xml = encode_to_xml("Temperature", &fields)?;
// …and back
let (type_name, decoded) = decode_xml(&xml)?;
Modules
codec— bidirectional XML↔︎CDR codec (encode_to_xml/decode_xml,FieldValue).xsd— XSD schema generation (XsdGeneratorbuilder).parser— streaming XML parser (no DOM buffering).emitter— streaming XML emitter (XML 1.0 conformance).validator— schema validation against XSD.
Coverage & tests
Coverage ledger: dds-xml-1.0 (OMG DDS-XML 1.0 audit, §6 wire). Run cargo test -p zerodds-xml-wire.
Stability
1.0.0-rc.3. 14 public items.
zerodds-xml-wire
Layer 3 — Schema (DDS-XML wire PSM). DDS-XML 1.0 Wire-PSM — XML↔︎CDR-Codec.
- Quelle: crates/zerodds-xml-wire
- API-Docs: docs.rs/zerodds-xml-wire
OMG DDS-XML 1.0 Wire-PSM (formal/2019-09-01 §6): XML als alternative On-the-Wire-Repräsentation für DDS-Topic-Samples, parallel zu CDR. Liefert einen bidirektionalen XML↔︎CDR-Codec auf Type-Token-Ebene, XSD-Schema-Generierung aus IDL-Type-Definitionen, einen Streaming-XML-Parser (kein DOM-Buffering) und -Emitter mit XML-1.0-Conformance sowie Schema-Validierung gegen XSD.
Spec-Anker
- OMG DDS-XML 1.0 §6 — XML-Wire-Repräsentation für Topic-Samples.
- XML↔︎CDR-Codec, XSD-Generierung, Streaming-Parser/-Emitter, Validator.
Quick Start
Eine Sample-Map in die §6.4-XML-Wire-Form kodieren und zurück:
use std::collections::BTreeMap;
use zerodds_xml_wire::codec::{encode_to_xml, decode_xml, FieldValue};
let mut fields = BTreeMap::new();
fields.insert("celsius".to_string(), FieldValue::Float(21.5));
// Sample → XML (DDS-XML 1.0 §6.4 wire form)
let xml = encode_to_xml("Temperature", &fields)?;
// …and back
let (type_name, decoded) = decode_xml(&xml)?;
Module
codec— bidirektionaler XML↔︎CDR-Codec (encode_to_xml/decode_xml,FieldValue).xsd— XSD-Schema-Generierung (XsdGenerator-Builder).parser— Streaming-XML-Parser (kein DOM-Buffering).emitter— Streaming-XML-Emitter (XML-1.0-Conformance).validator— Schema-Validierung gegen XSD.
Coverage & Tests
Coverage-Ledger: dds-xml-1.0 (OMG-DDS-XML-1.0-Audit, §6 Wire). cargo test -p zerodds-xml-wire.
Stabilität
1.0.0-rc.3. 14 Public-Items.