1 unstable release
new 0.1.0 | Feb 12, 2025 |
---|
#77 in #attributes
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
~7.5MB
~133K SLoC