diff --git a/instant-xml-macros/src/meta.rs b/instant-xml-macros/src/meta.rs index ceb48d1..d0dadf1 100644 --- a/instant-xml-macros/src/meta.rs +++ b/instant-xml-macros/src/meta.rs @@ -134,7 +134,9 @@ impl NamespaceMeta { (NsState::Prefix, TokenTree::Ident(id)) => NsState::Eq { prefix: id.to_string(), }, - (NsState::Eq { mut prefix }, TokenTree::Punct(punct)) if punct.as_char() == '-' => { + (NsState::Eq { mut prefix }, TokenTree::Punct(punct)) + if punct.as_char() == '-' || punct.as_char() == '.' => + { prefix.push(punct.as_char()); NsState::Eq { prefix } } diff --git a/instant-xml/tests/de-ns.rs b/instant-xml/tests/de-ns.rs index 2310b6c..a49ecf5 100644 --- a/instant-xml/tests/de-ns.rs +++ b/instant-xml/tests/de-ns.rs @@ -160,7 +160,7 @@ fn other_namespaces() { } #[derive(Debug, Eq, PartialEq, FromXml)] -#[xml(ns("URI", dashed-ns = "dashed"))] +#[xml(ns("URI", da_sh.ed-ns = "dashed"))] struct DashedNs { #[xml(ns("dashed"))] element: String, @@ -169,7 +169,7 @@ struct DashedNs { #[test] fn dashed_ns() { assert_eq!( - from_str("hello"), + from_str("hello"), Ok(DashedNs { element: "hello".to_owned() }) ); }