xml.instruct!
xml.declare! :DOCTYPE, :html, :PUBLIC, "-//W3C//DTD XHTML 1.0 Strict//EN", "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
xml.html( "xmlns" => "http://www.w3.org/1999/xhtml" ) {
xml.head {
xml.title "#{@document.service} interface description"
xml.style( "type"=>"text/css" ,"media" => "all" ) { xml.text! "
body{font-family:Calibri,Arial;background-color:#fefefe;}
.pre{font-family:Courier;}
.normal{font-family:Calibri,Arial;}
.bold{font-weight:bold;}
h1,h2,h3{font-family:Verdana,Times;}
h1{border-bottom:1px solid gray;}
h2{border-bottom:1px solid silver;}
h3{border-bottom:1px dashed silver;}
a{text-decoration:none;}
a:hover{text-decoration:underline;}
.blue{color:#3400FF;}
.lightBlue{color:#5491AF;}
"
}
xml.style( "type"=>"text/css", "media" => "print" ) { xml.text! "
.noprint{display:none;}
"
}
}
xml.body {
xml.h1 "#{ @document.service} Soap WebService interface description"
xml.p{ |y| y << "Endpoint URI:";
xml.span( "class" => "pre") { |y| y << "#{@document.endpoint}"};
}
xml.p{ |y| y << "WSDL URI:";
xml.span( "class" => "pre") {
xml.a( "href" => "#{@document.namespace}") { |y| y << "#{@document.namespace}" }
};}
xml.p ""
unless @document.service_description.blank?
xml.p "#{@document.service_description}"
end
xml.div("class" => "noprint") {
xml.h2 "Index "
@complex_types = @document.complex_types
@fault_types = @document.fault_types
unless @complex_types.blank?
xml.p "Complex Types: "
xml.ul do
@complex_types.each do |hash|
xml.li { |y| y << "#{hash[:class]}" }
end
end
end
unless @fault_types.blank?
xml.p "Fault Types: "
xml.ul do
@fault_types.each do |hash|
xml.li { |y| y << "#{hash[:fault].to_s}" }
end
end
end
@methods = @document.all_soap_action_names
unless @methods.blank?
xml.p "Public Methods:"
xml.ul do
@methods.each do |name|
xml.li { |y| y << "#{name}" }
end
end
end
}
unless @complex_types.blank?
xml.h2 "Complex types:"
@complex_types.each { |hash|
xml << render(:partial => "wash_with_html/complex_type", :locals => { :object => hash[:obj], :class_name => hash[:class], :ancestors => hash[:ancestors]})
}
end
unless @fault_types.blank?
xml.h2 "Fault types:"
@fault_types.each { |hash|
xml << render(:partial => "wash_with_html/fault_type", :locals => { :object => hash[:fault], :structure => hash[:structure], :ancestors => hash[:ancestors]})
}
end
unless @methods.blank?
xml.h2 "Public methods:"
@map = @document.sorted_operations
unless @map.blank?
@map.each { |operation, formats|
xml << render(:partial => "wash_with_html/public_method", :locals => { :operation=> operation, :input => formats[:in], :output => formats[:out] , :exceptions => formats[:raises], :description => formats[:description]})
}
end
end
if @complex_types.blank? && @fault_types.blank? && @methods.blank?
xml.p "There are no soap actions defined yet for this service. Please add some actions and try again!"
end
}
}