Thanks to visit codestin.com
Credit goes to lib.rs

1 unstable release

0.1.0 Feb 12, 2025

#2460 in Encoding

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

4,417 downloads per month
Used in 3 crates (via rust_ev_system_library)

MIT license

29KB
672 lines

xml-canonicalization

A pure Rust XML Canonicalisation implementation.

Unsupported Features

Certain XML features (that are rarely used in practice) are unsupported by this crate:

  • Entity references
  • Default attributes via DTD
  • Document Subset Expressions

Otherwise, all XML canonicalisation features are supported, and are validated against examples from the W3C specification.

Usage

use std::io::Cursor;
use xml_canonicalization::Canonicalizer;

let input = r#"<?xml version="1.0" encoding="ISO-8859-1"?><doc>&#169;</doc>"#;
let canonical = r#"<doc>©</doc>"#;

let mut result = vec![];
Canonicalizer::read_from_str(input)
    .write_to_writer(Cursor::new(&mut result))
    .canonicalize(true)
    .expect("canonicalization shouldn't fail");
assert_eq!(String::from_utf8_lossy(&result), canonical);

Dependencies

~10–14MB
~172K SLoC