--- test/html-webhacc/cc.cgi 2008/02/10 02:05:30 1.31 +++ test/html-webhacc/cc.cgi 2008/02/10 03:11:06 1.34 @@ -147,12 +147,15 @@ sub check_and_print ($$) { my ($input, $result) = @_; + $input->{id_prefix} = ''; + #$input->{nested} = 1/0; print_http_header_section ($input, $result); my $doc; my $el; my $manifest; + my @subdoc; if ($input->{media_type} eq 'text/html') { ($doc, $el) = print_syntax_error_html_section ($input, $result); @@ -178,15 +181,51 @@ } if (defined $doc or defined $el) { - print_structure_dump_dom_section ($doc, $el); - my $elements = print_structure_error_dom_section ($doc, $el, $result); - print_table_section ($elements->{table}) if @{$elements->{table}}; - print_id_section ($elements->{id}) if keys %{$elements->{id}}; - print_term_section ($elements->{term}) if keys %{$elements->{term}}; - print_class_section ($elements->{class}) if keys %{$elements->{class}}; + $doc->document_uri ($input->{uri}); + $doc->manakai_entity_base_uri ($input->{base_uri}); + print_structure_dump_dom_section ($input, $doc, $el); + my $elements = print_structure_error_dom_section + ($input, $doc, $el, $result, sub { + push @subdoc, shift; + }); + print_table_section ($input, $elements->{table}) if @{$elements->{table}}; + print_listing_section ({ + id => 'identifiers', label => 'IDs', heading => 'Identifiers', + }, $input, $elements->{id}) if keys %{$elements->{id}}; + print_listing_section ({ + id => 'terms', label => 'Terms', heading => 'Terms', + }, $input, $elements->{term}) if keys %{$elements->{term}}; + print_listing_section ({ + id => 'classes', label => 'Classes', heading => 'Classes', + }, $input, $elements->{class}) if keys %{$elements->{class}}; } elsif (defined $manifest) { - print_structure_dump_manifest_section ($manifest); - print_structure_error_manifest_section ($manifest, $result); + print_structure_dump_manifest_section ($input, $manifest); + print_structure_error_manifest_section ($input, $manifest, $result); + } + + my $id_prefix = 0; + for my $subinput (@subdoc) { + $subinput->{id_prefix} = 'subdoc-' . ++$id_prefix; + $subinput->{nested} = 1; + $subinput->{base_uri} = $subinput->{container_node}->base_uri + unless defined $subinput->{base_uri}; + my $ebaseuri = htescape ($subinput->{base_uri}); + push @nav, ['#' . $subinput->{id_prefix} => 'Sub #' . $id_prefix]; + print STDOUT qq[
@{[htescape $subinput->{media_type}]}
+ <$ebaseuri>Note: Due to the limitation of the @@ -231,11 +270,11 @@ require Whatpm::HTML; print STDOUT qq[ -
] . htescape ($attr->[0]) . ' = '; ## ISSUE: case?
+ $r .= qq[] . htescape ($attr->[0]) . ' = '; ## ISSUE: case?
$r .= '' . htescape ($attr->[1]) . '
@{[htescape $id]}@{[htescape $class]}Input Error: @{[htescape ($input->{error_status_text})]}