anchor.diff:  let createXmlReader(textReader:TextReader) =
       XmlReader.Create(textReader, XmlReaderSettings(IgnoreProcessingInstructions = true, IgnoreWhitespace = true))
   
  -
  -let GetElementName isRoot node =
  -    match node.Data.Name with
  -    | Some name -> name            
  -    | None -> 
  -        if isRoot then "Root" else
  -        failwith "Cannot create a nested type without a name" // TODO: Generate one
  -
  -let rec getAllSubElementsWithName isRoot (node:XamlNode) =      
  -    seq { yield isRoot,GetElementName isRoot node,node
  +let rec getAllSubElementsWithName (node:XamlNode) =      
  +    seq { yield node
             for child in node.Children do
  -            yield! getAllSubElementsWithName false child }
  +            yield! getAllSubElementsWithName child }
   
   let createTypeFromReader typeName (xamlInfo:XamlInfo) (reader: TextReader) =
       let root = 
  
positive.code:                 |> addDefinitionLocation root.Data.Position)
      |++!> (
          subElements
          |> Seq.map (fun (isRoot,name,node) ->
               provideProperty name node.NodeType (accessExpr isRoot name node)
               |> addXmlDoc (sprintf "Gets the %s element" name)
               |> addDefinitionLocation node.Data.Position))   
  
  /// Infer schema from the loaded data and generate type with properties     
  
negative.code:       Children : Tree<'Data> list }
  
  type XamlNode =
      { IsRoot: bool
        Name: string
        NodeType : Type
        Data : XamlId
        Children : XamlNode list }
  
  