//! XML 转义工具。
//!
//! 提供 [`xml_escape`] 函数,用于 XML 属性值和文本内容的转义。
//!
//! 本模块是 OPC 层([`crate::opc`])和 OOXML 层([`crate::oxml`])的共享基础设施,
//! 避免各模块各自实现转义逻辑导致行为不一致。
/// XML 转义:将 `&` / `<` / `>` / `"` / `'` 转为对应的实体引用。
///
/// 用于 XML 属性值和文本内容的转义,避免 XML 注入和解析错误。
///
/// # 示例
///
/// ```
/// use ooxml_core::escape::xml_escape;
///
/// assert_eq!(xml_escape("a < b & c > d"), "a < b & c > d");
/// assert_eq!(xml_escape(r#"say "hi""#), "say "hi"");
/// ```