/[suikacvs]/test/html-webhacc/WebHACC/Language/XML.pm
Suika

Diff of /test/html-webhacc/WebHACC/Language/XML.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by wakaba, Sun Jul 20 14:58:24 2008 UTC revision 1.6 by wakaba, Fri Aug 15 05:53:23 2008 UTC
# Line 10  sub new ($) { Line 10  sub new ($) {
10  sub generate_syntax_error_section ($) {  sub generate_syntax_error_section ($) {
11    my $self = shift;    my $self = shift;
12        
13      require Message::DOM::DOMImplementation;
14    require Message::DOM::XMLParserTemp;    require Message::DOM::XMLParserTemp;
15    
16      $self->result->layer_uncertain ('charset');
17    
18    my $out = $self->output;    my $out = $self->output;
19    $out->start_section (id => 'parse-errors', title => 'Parse Errors');    $out->start_section (role => 'parse-errors');
20    $out->start_tag ('dl', class => 'parse-errors-list');    $out->start_error_list (role => 'parse-errors');
21    
22    my $input = $self->input;    my $input = $self->input;
23    my $result = $self->result;    my $result = $self->result;
24      $self->result->layer_applicable ('syntax');
25    
26    my $onerror = sub {    my $onerror = sub {
27      my $err = shift;      my $err = shift;
28      my $line = $err->location->line_number;      $result->add_error (line => $err->location->line_number,
29      $out->start_tag ('dt');                          column => $err->location->column_number,
30      $out->xref (qq[Line $line], target => 'line-' . $line);                          type => 'xml parse error',
31      $out->html (' column ' . $err->location->column_number . '<dd>');                          value => $err->text,
32      $out->text ($err->text);                          level => [
   
     add_error ('syntax', {type => $err->text,  
                 level => [  
33                            $err->SEVERITY_FATAL_ERROR => 'm',                            $err->SEVERITY_FATAL_ERROR => 'm',
34                            $err->SEVERITY_ERROR => 'm',                            $err->SEVERITY_ERROR => 'm',
35                            $err->SEVERITY_WARNING => 's',                            $err->SEVERITY_WARNING => 's',
36                           ]->[$err->severity]} => $result);                          ]->[$err->severity],
37                            layer => 'syntax');
38      return 1;      return 1;
39    };    };
40    
# Line 42  sub generate_syntax_error_section ($) { Line 43  sub generate_syntax_error_section ($) {
43      require Encode;      require Encode;
44      $t = \(Encode::encode ('utf8', $$t));      $t = \(Encode::encode ('utf8', $$t));
45      $input->{charset} = 'utf-8';      $input->{charset} = 'utf-8';
46      } else {
47        $self->result->layer_uncertain ('encode');
48    }    }
49    
50    open my $fh, '<', $t;    open my $fh, '<', $t;
51    my $doc = Message::DOM::XMLParserTemp->parse_byte_stream    my $dom = Message::DOM::DOMImplementation->new;
52      $self->{structure} = Message::DOM::XMLParserTemp->parse_byte_stream
53        ($fh => $dom, $onerror, charset => $input->{charset});        ($fh => $dom, $onerror, charset => $input->{charset});
54    $doc->manakai_charset ($input->{official_charset})    $self->{structure}->manakai_charset ($input->{official_charset})
55        if defined $input->{official_charset};        if defined $input->{official_charset};
56    
57    $doc->document_uri ($input->{uri});    $self->{structure}->document_uri ($input->{uri});
58    $doc->manakai_entity_base_uri ($input->{base_uri});    $self->{structure}->manakai_entity_base_uri ($input->{base_uri});
59    
60    $out->end_tag ('dl');    $out->end_error_list;
61    $out->end_section;    $out->end_section;
62  } # generate_syntax_error_section  } # generate_syntax_error_section
63    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.6

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24