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";
           }
  
  
  

Reply via email to