zerodds-xml-wire

Layer 3 — Schema (DDS-XML wire PSM). DDS-XML 1.0 wire PSM — XML↔︎CDR codec.

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 (XsdGenerator builder).
  • 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.

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.