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() })
);
}