diff --git a/parsers/src/sm.rs b/parsers/src/sm.rs
index e018e6fde5f24b6a5602dd12428f055d0acbc6ef..d9e1996250cd7a40b5bcb827ca7f60cb7f6c5cf8 100644
--- a/parsers/src/sm.rs
+++ b/parsers/src/sm.rs
@@ -139,7 +139,7 @@ pub struct Resumed {
#[xml(namespace = ns::SM, name = "sm")]
pub struct StreamManagement {
/// `` flag.
- #[xml(flag(name = "optional"))]
+ #[xml(flag)]
pub optional: bool,
}
diff --git a/parsers/src/starttls.rs b/parsers/src/starttls.rs
index 182537ac1a0e43d35260da10e53ac9a57a22f392..92b156f2d1235856002a79af11b6f3382ba0bea5 100644
--- a/parsers/src/starttls.rs
+++ b/parsers/src/starttls.rs
@@ -25,7 +25,7 @@ pub struct Proceed;
#[xml(namespace = ns::TLS, name = "starttls")]
pub struct StartTls {
/// Marker for mandatory StartTLS.
- #[xml(flag(name = "required"))]
+ #[xml(flag)]
pub required: bool,
}
diff --git a/parsers/src/util/macro_tests.rs b/parsers/src/util/macro_tests.rs
index 98bc0a8ea199f510f88ac30430f58d7c519517ac..918f00b4b1d411955d55ace8da5130919a822681 100644
--- a/parsers/src/util/macro_tests.rs
+++ b/parsers/src/util/macro_tests.rs
@@ -1977,7 +1977,7 @@ fn extract_ignore_unknown_stuff_roundtrip() {
#[derive(FromXml, AsXml, PartialEq, Debug, Clone)]
#[xml(namespace = NS1, name = "foo")]
struct Flag {
- #[xml(flag(namespace = NS1, name = "flag"))]
+ #[xml(flag)]
flag: bool,
}
diff --git a/xso-proc/src/meta.rs b/xso-proc/src/meta.rs
index 43e7af5489a6bd4acba5e7c07f12ea6e5f40afe5..8018d15a4e8d15fa8db141469d92c7aec7611f96 100644
--- a/xso-proc/src/meta.rs
+++ b/xso-proc/src/meta.rs
@@ -1055,10 +1055,12 @@ impl XmlFieldMeta {
/// Parse a `#[xml(flag)]` meta.
fn flag_from_meta(meta: ParseNestedMeta<'_>) -> Result {
let mut qname = QNameRef::default();
- meta.parse_nested_meta(|meta| match qname.parse_incremental_from_meta(meta)? {
- None => Ok(()),
- Some(meta) => Err(Error::new_spanned(meta.path, "unsupported key")),
- })?;
+ if meta.input.peek(syn::token::Paren) {
+ meta.parse_nested_meta(|meta| match qname.parse_incremental_from_meta(meta)? {
+ None => Ok(()),
+ Some(meta) => Err(Error::new_spanned(meta.path, "unsupported key")),
+ })?;
+ }
Ok(Self::Flag {
span: meta.path.span(),
qname,