# File lib/aws/core/xml/frame.rb, line 29
        def initialize root_frame, parent_frame, element_name, rules

          @root_frame = root_frame
          @parent_frame = parent_frame
          @element_name = element_name
          @rules = rules
          @rules[:children] ||= {}

          @data = {}.merge(rules[:defaults] || {})
          @text = nil

          # initialize values for child frames of special types (e.g.
          # lists, maps, and forced elements)
          known_child_frames.each do |child_frame|
            context = data_context_for(child_frame)
            if child_frame.list?
              context[child_frame.ruby_name] = []
            elsif child_frame.map?
              context[child_frame.ruby_name] = {}
            elsif child_frame.forced?
              context[child_frame.ruby_name] = child_frame.value
            end
          end

        end