def properties_for_complex_type(type_name)
      type_definition = metadata.xpath("//ComplexType[@Name='#{type_name}']").first
      raise ArgumentError, "Unknown ComplexType: #{type_name}" if type_definition.nil?
      properties_to_return = {}
      type_definition.xpath('./Property').each do |property_xml|
        property_name, property = process_property_from_xml(property_xml)
        properties_to_return[property_name] = property
      end
      properties_to_return
    end
def properties_for_complex_type(type_name)
      type_definition = metadata.xpath("//ComplexType[@Name='#{type_name}']").first
      raise ArgumentError, "Unknown ComplexType: #{type_name}" if type_definition.nil?
      properties_to_return = {}
      type_definition.xpath('./Property').each do |property_xml|
        property_name, property = process_property_from_xml(property_xml)
        properties_to_return[property_name] = property
      end
      properties_to_return
    end
Get list of properties and their various options for the supplied
 ComplexType name.
 @param type_name [to_s]
 @return [Hash]
 @api private