Skip to main content

qname

Macro qname 

Source
macro_rules! qname {
    (@ $uri:literal, $local:literal) => { ... };
    ($uri:literal, $local:literal) => { ... };
}
Expand description

Writes a name in a namespace as {uri}local.

This is the notation for names in namespaces (see DeserializerConfig::set_resolve_namespaces). With @ in front it’s the name of an attribute with the default attribute prefix. The name is a literal, so it can be used for rename:

use deser_xml::qname;

#[derive(deser::Deserialize)]
struct Link {
    #[deser(rename = qname!(@ "http://www.w3.org/1999/xlink", "href"))]
    href: String,
}

assert_eq!(qname!("urn:x", "a"), "{urn:x}a");
assert_eq!(qname!(@ "urn:x", "a"), "@{urn:x}a");