diff --git a/aws-sdk-core/lib/aws-sdk-core/xml/parser.rb b/aws-sdk-core/lib/aws-sdk-core/xml/parser.rb
index <HASH>..<HASH> 100644
--- a/aws-sdk-core/lib/aws-sdk-core/xml/parser.rb
+++ b/aws-sdk-core/lib/aws-sdk-core/xml/parser.rb
@@ -20,6 +20,21 @@ module Aws
         @engine = options[:engine] || self.class.engine
       end
 
+      # Parses the XML document, returning a parsed structure.
+      #
+      # If you pass a block, this will yield for XML
+      # elements that are not modeled in the rules given
+      # to the constructor.
+      #
+      #   parser.parse(xml) do |path, value|
+      #     puts "uhandled: #{path.join('/')} - #{value}"
+      #   end
+      #
+      # The purpose of the unhandled callback block is to
+      # allow callers to access values such as the EC2
+      # request ID that are part of the XML body but not
+      # part of the operation result.
+      #
       # @param [String] xml An XML document string to parse.
       # @param [Structure] target (nil)
       # @return [Structure]
Added clarifying docs.