anchor.diff:                      if obj <> null then
                           pi.SetValue( item, obj )
   
  -        member this.SetValue(el:XElement, item:Object, propName:string ) =
  -            let s = el.Attribute(propName)
  -            if s = "" || s.[0] <> '{' then
  -                // no binding 
  -                this.SetValue( item, propName, s, el.Name.LocalName )
  -            else
  -                // TODO:binding 
  +        member this.SetValue(el:XElement, item:Object, propName:XName ) =
  +            if el.Attribute(propName) = null then
                   ()
  -
  -        member this.SetProperty(el:XElement, item:Object, propName:string ) =
  +            else 
  +                let s = el.Attribute(propName).Value
  +                if s = "" || s.[0] <> '{' then
  +                    // no binding 
  +                    this.SetValue( item, propName, s, el.Name.LocalName )
  +                else
  +                    // TODO:binding 
  +                    ()
  +
  +        member this.SetProperty(el:XElement, item:Object, propName:XName ) =
               this.SetValue( el, item, propName )
   
           member this.SetPropertis( el:XElement, item:Object ) =
               el.Attributes() 
  -                |> Seq.iter(fun (it) -> this.SetProperty( el, item, it.Name.LocalName ))
  +                |> Seq.iter(fun (it) -> this.SetProperty( el, item, it.Name ))
               if el.HasAttributes then
                   let tag = el.Name.LocalName
                   for it in el.Children do
                       if it.Name.LocalName.StartsWith(tag + ".") then
                           let name = it.Name.LocalName.Substring( it.Name.LocalName.IndexOf(".")+1)
                           let value = it.Value
  -                        this.SetValue( item, name, value, el.Name.LocalName )
  +                        this.SetValue( item, XName.Get(name), value, el.Name.LocalName )
                   
   
           member this.SetChildren( el:XElement, item ) =
  
positive.code:                 if it.NodeType = XmlNodeType.Element then
                      let view = this.LoadView(it)
                      let bounds = 
                          let v = it.Attribute("AbsoluteLayout.LayoutBounds")
                          if v <> "" then RectangleTypeConverter().ConvertFrom(v) else null
                      let flags = 
                          let v = it.Attribute("AbsoluteLayout.LayoutFlags")
                          if v <> "" then AbsoluteLayoutFlagsTypeConverter().ConvertFrom(v) else null
                      if bounds = null then
                          item.Children.Add( this.LoadView(it))
  
negative.code:             | "HorizontalOptions"|"VerticalOptions" -> typeof<LayoutOptions> 
              | _ -> null
  
          member this.SetValue(item:Object, propName:XName, s:string, tagName:string ) =
              let t = getType(propName, tagName)
              if t <> null then
                  let pi = item.GetType().GetRuntimeProperty(propName.LocalName)
                  if pi <> null then
                      let obj = 
                          match t.Name with
  