You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axkit-dev@xml.apache.org by ma...@apache.org on 2005/04/20 22:02:14 UTC
cvs commit: xml-axkit/lib/Apache/AxKit/Language XSP.pm
matts 2005/04/20 13:02:14
Modified: lib/Apache/AxKit/Language XSP.pm
Log:
Support namespace prefixed attributes
Revision Changes Path
1.53 +17 -1 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.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- XSP.pm 31 Oct 2003 17:04:46 -0000 1.52
+++ XSP.pm 20 Apr 2005 20:02:14 -0000 1.53
@@ -743,8 +743,24 @@
}
}
elsif ($tag eq 'attribute') {
+ if (my $uri = $attribs{uri}) {
+ # handle NS attributes
+ my $prefix = $attribs{prefix} || die "No prefix given";
+ my $name = $attribs{name} || die "No name given";
+ $e->{attrib_seen_name} = 1;
+ return '$parent->setNamespace('.makeSingleQuoted($uri).', '.
+ makeSingleQuoted($prefix).', 0);'.
+ '$parent->setAttribute('.makeSingleQuoted($name).', ""';
+ }
if (my $name = $attribs{name}) {
$e->{attrib_seen_name} = 1;
+ # handle prefixed names
+ if ($name =~ s/^(.*?)://) {
+ my $prefix = $1;
+ return 'my $nsuri = $parent->lookupNamespaceURI(' . makeSingleQuoted($prefix) . ')'.
+ ' || die "No namespace found with given prefix";'."\n".
+ '$parent->setAttributeNS($nsuri,'.makeSingleQuoted($name).', ""';
+ }
return '$parent->setAttribute('.makeSingleQuoted($name).', ""';
}
$e->{attrib_seen_name} = 0;