1 unstable release
| 0.1.0 | Feb 12, 2025 |
|---|
#2460 in Encoding
4,417 downloads per month
Used in 3 crates
(via rust_ev_system_library)
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>©</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