matts 2003/01/02 08:09:35
Modified: lib/Apache/AxKit/Language XSP.pm
Log:
Attempt to give better error messages if you try to create elements inside
attributes
Revision Changes Path
1.24 +15 -6 xml-axkit/lib/Apache/AxKit/Language/XSP.pm
Index: XSP.pm
===================================================================
RCS file: /home/cvs/xml-axkit/lib/Apache/AxKit/Language/XSP.pm,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- XSP.pm 2 Jan 2003 15:05:53 -0000 1.23
+++ XSP.pm 2 Jan 2003 16:09:34 -0000 1.24
@@ -684,6 +684,13 @@
return "use ";
}
elsif ($tag eq 'element') {
+ if ($node->{Parent}->{Name} eq 'attribute' &&
+
Apache::AxKit::Language::XSP::is_xsp_namespace($node->{Parent}->{NamespaceURI}))
+ {
+ throw Apache::AxKit::Exception(
+ -text => "Can't have element as child of attributes!"
+ );
+ }
if (my $name = $attribs{name}) {
$e->manage_text(0);
return '{ my $elem = $document->createElement(' .
makeSingleQuoted($name) . ');' .
@@ -850,12 +857,14 @@
}
}
else {
-# $code = '{ my $elem = $document->createElement(q(' . $node->{Name}
. '));' .
+ if ($node->{Parent}->{Name} eq 'attribute' &&
+
Apache::AxKit::Language::XSP::is_xsp_namespace($node->{Parent}->{NamespaceURI}))
+ {
+ throw Apache::AxKit::Exception(
+ -text => "Can't have element as child of attributes!"
+ );
+ }
if ($node->{NamespaceURI}) {
-# FIXME: This seems to be okay now, needs more testing.
-# if ($node->{Name} !~ m/:/) {
-# $node->{Name} =
$e->generate_nsprefix($node->{NamespaceURI}).':'.$node->{Name};
-# }
$code = '{ my $elem =
$document->createElementNS('.makeSingleQuoted($node->{NamespaceURI}).','.makeSingleQuoted($node->{Name}).');'
.
'$parent->appendChild($elem); $parent = $elem; }' . "\n";
}