 import var   Foundation.NSCalendarIdentifierISO8601
 import class Foundation.NSLocale
 
+/// Transformation that transforms node to `NSDate` value
+/// in case of date represented as the formatted string.
 public
 struct DateTransform: TransformType {
 
     private
     let formatter: NSDateFormatter
 
+    /// Creates an instance of `DateTransform` initilized with given date format string.
+    /// - Parameter dateFormat: Date format.
+    /// - Note: `en_US_POSIX` locale will be used for transformation.
     public
     init(dateFormat: String) {
         let formatter = NSDateFormatter()

        self.init(formatter: formatter)
    }

    public
    init(formatter: NSDateFormatter) {
        self.formatter = formatter.copy() as! NSDateFormatter
    }

    public
    func applyToNode(node: NodeType) throws -> NSDate {
        guard let value = try formatter.dateFromString(node.value(String)) else {

public
extension DateTransform {

    /// Date transformation working with dates formatted using ISO 8601 standard.
    /// - Note: Transformation covers only `yyyy-MM-dd'T'HH:mm:ssZZZZZ` format.
    public
    static var ISO8601: DateTransform {
        let formatter = NSDateFormatter()
