 // MARK: - String extensions
 
 public protocol StringProvider {
-    var stringValue: String { get }
+    var stringSource: String { get }
 }
 
 extension String : StringProvider {
-    public var stringValue: String {
+    public var stringSource: String {
         return self
     }
 }
 
 extension XML : StringProvider {
-    public var stringValue: String {
+    public var stringSource: String {
         if self.value == nil {
             log("xml: \(self.name) don't have any value")
         }

    case index(Int)
    case key(String)
}

public enum XMLSubscriptResult {


extension StringProvider {
    
    public var bool: Bool {
        return (stringSource as NSString).boolValue
    }
    // unsigned integer
    public var uInt8: UInt8 {
