diff --git a/parsers/src/version.rs b/parsers/src/version.rs
index 3a903a88..7184528c 100644
--- a/parsers/src/version.rs
+++ b/parsers/src/version.rs
@@ -19,23 +19,25 @@ pub struct VersionQuery;
impl IqGetPayload for VersionQuery {}
-generate_element!(
- /// Represents the answer about the software version we are using.
- ///
- /// It should only be used in an ``, as it can only
- /// represent the result, and not a request.
- VersionResult, "query", VERSION,
- children: [
- /// The name of this client.
- name: Required = ("name", VERSION) => String,
+/// Represents the answer about the software version we are using.
+///
+/// It should only be used in an ``, as it can only
+/// represent the result, and not a request.
+#[derive(FromXml, AsXml, PartialEq, Debug, Clone)]
+#[xml(namespace = ns::VERSION, name = "query")]
+pub struct VersionResult {
+ /// The name of this client.
+ #[xml(extract(fields(text)))]
+ pub name: String,
- /// The version of this client.
- version: Required = ("version", VERSION) => String,
+ /// The version of this client.
+ #[xml(extract(fields(text)))]
+ pub version: String,
- /// The OS this client is running on.
- os: Option = ("os", VERSION) => String
- ]
-);
+ /// The OS this client is running on.
+ #[xml(extract(default, fields(text(type_ = String))))]
+ pub os: Option,
+}
impl IqResultPayload for VersionResult {}