--- test/html-webhacc/cc.cgi 2008/03/11 14:10:11 1.38 +++ test/html-webhacc/cc.cgi 2008/05/18 03:47:56 1.51 @@ -86,6 +86,8 @@
<$euri>];
+ my $eccuri = htescape (get_cc_uri ($uri));
+ print STDOUT qq[<' . $euri .
+ '>';
+ } elsif (defined $resource->{bnodeid}) {
+ return htescape ('_:' . $resource->{bnodeid});
+ } elsif ($resource->{nodes}) {
+ return '(rdf:XMLLiteral)';
+ } elsif (defined $resource->{value}) {
+ my $elang = htescape (defined $resource->{language}
+ ? $resource->{language} : '');
+ my $r = qq[] . htescape ($resource->{value}) . '';
+ if (defined $resource->{datatype}) {
+ my $euri = htescape ($resource->{datatype});
+ $r .= '^^<' . $euri .
+ '>';
+ } elsif (length $resource->{language}) {
+ $r .= '@' . htescape ($resource->{language});
+ }
+ return $r;
+ } else {
+ return '??';
+ }
+} # get_rdf_resource_html
+
sub print_result_section ($) {
my $result = shift;
@@ -1054,24 +1199,25 @@
print STDOUT qq[Important: This conformance checking service @@ -1118,18 +1264,49 @@ my $r = ''; - if (defined $err->{line}) { - if ($err->{column} > 0) { - $r = qq[Line $err->{line} column $err->{column}]; + my $line; + my $column; + + if (defined $err->{node}) { + $line = $err->{node}->get_user_data ('manakai_source_line'); + if (defined $line) { + $column = $err->{node}->get_user_data ('manakai_source_column'); + } else { + if ($err->{node}->node_type == $err->{node}->ATTRIBUTE_NODE) { + my $owner = $err->{node}->owner_element; + $line = $owner->get_user_data ('manakai_source_line'); + $column = $owner->get_user_data ('manakai_source_column'); + } else { + my $parent = $err->{node}->parent_node; + if ($parent) { + $line = $parent->get_user_data ('manakai_source_line'); + $column = $parent->get_user_data ('manakai_source_column'); + } + } + } + } + unless (defined $line) { + if (defined $err->{token} and defined $err->{token}->{line}) { + $line = $err->{token}->{line}; + $column = $err->{token}->{column}; + } elsif (defined $err->{line}) { + $line = $err->{line}; + $column = $err->{column}; + } + } + + if (defined $line) { + if (defined $column and $column > 0) { + $r = qq[Line $line column $column]; } else { - $err->{line} = $err->{line} - 1 || 1; - $r = qq[Line $err->{line}]; + $line = $line - 1 || 1; + $r = qq[Line $line]; } } if (defined $err->{node}) { $r .= ' ' if length $r; - $r = get_node_link ($input, $err->{node}); + $r .= get_node_link ($input, $err->{node}); } if (defined $err->{index}) { @@ -1183,10 +1360,10 @@ while (defined $node) { my $rs; if ($node->node_type == 1) { - $rs = $node->manakai_local_name; + $rs = $node->node_name; $node = $node->parent_node; } elsif ($node->node_type == 2) { - $rs = '@' . $node->manakai_local_name; + $rs = '@' . $node->node_name; $node = $node->owner_element; } elsif ($node->node_type == 3) { $rs = '"' . $node->data . '"'; @@ -1264,6 +1441,17 @@ } +sub encode_uri_component ($) { + require Encode; + my $s = Encode::encode ('utf8', shift); + $s =~ s/([^0-9A-Za-z_.~-])/sprintf '%%%02X', ord $1/ge; + return $s; +} # encode_uri_component + +sub get_cc_uri ($) { + return './?uri=' . encode_uri_component ($_[0]); +} # get_cc_uri + sub get_input_document ($$) { my ($http, $dom) = @_; @@ -1453,4 +1641,4 @@ =cut -## $Date: 2008/03/11 14:10:11 $ +## $Date: 2008/05/18 03:47:56 $