 public protocol XMLElementDeserializable {
     /// Method for deserializing elements from XMLElement
     static func deserialize(_ element: XMLElement) throws -> Self
+	/// Method for validating elements from XMLElement post deserialization
+	func validate() throws
 }
 
 /// Provides XMLElement deserialization / type transformation support

        return value
    }
    // swiftlint:enable line_length
}

     */
    public func value<T: XMLAttributeDeserializable>(ofAttribute attr: String) -> T? {
        if let attr = self.attribute(by: attr) {
			let deserialized = try? T.deserialize(attr)
			if deserialized != nil { try? deserialized?.validate() }
			return deserialized
		} else {
            return nil
        }
    }
