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

     */
    public func value<T: XMLAttributeDeserializable>(ofAttribute attr: String) throws -> T {
        if let attr = self.attribute(by: attr) {
            return try T.deserialize(attr)
        } else {
            throw XMLDeserializationError.attributeDoesNotExist(element: self, attribute: attr)
        }
    }

        throw XMLDeserializationError.implementationIsMissing(
            method: "XMLIndexerDeserializable.deserialize(element: XMLIndexer)")
    }

	/**
	A default do nothing implementation of validation.
	- throws: nothing
	*/
	func validate() throws {}
}

// MARK: - XMLElementDeserializable
