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 ChangesPath 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.pm31 Oct 2003 17:04:46 - 1.52 +++ XSP.pm20 Apr 2005 20:02:14 - 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;
cvs commit: xml-axkit/lib/Apache/AxKit/Language XSP.pm
matts 2005/04/20 13:06:54 Modified:lib/Apache/AxKit/Language XSP.pm Log: Support namespace prefixes for ordinary elements. Revision ChangesPath 1.54 +7 -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.53 retrieving revision 1.54 diff -u -r1.53 -r1.54 --- XSP.pm20 Apr 2005 20:02:14 - 1.53 +++ XSP.pm20 Apr 2005 20:06:54 - 1.54 @@ -1228,6 +1228,12 @@ sub __mk_element_node { my ($document, $parent, $name) = @_; +if ($name =~ s/^(.*?)://) { +my $prefix = $1; +my $uri = $parent-lookupNamespaceURI($prefix) +|| die No namespace URI for prefix '$prefix'; +return __mk_ns_element_node($document, $parent, $uri, $name); +} my $elem = $document-createElement($name); if ($parent) { $parent-appendChild($elem);
cvs commit: xml-axkit/lib/Apache/AxKit/Language XSP.pm
matts 2005/04/20 14:18:21 Modified:lib/Apache/AxKit/Language XSP.pm Log: Bug fix for attribute ns names Revision ChangesPath 1.55 +3 -2 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.54 retrieving revision 1.55 diff -u -r1.54 -r1.55 --- XSP.pm20 Apr 2005 20:06:54 - 1.54 +++ XSP.pm20 Apr 2005 21:18:20 - 1.55 @@ -750,7 +750,8 @@ $e-{attrib_seen_name} = 1; return '$parent-setNamespace('.makeSingleQuoted($uri).', '. makeSingleQuoted($prefix).', 0);'. - '$parent-setAttribute('.makeSingleQuoted($name).', '; + '$parent-setAttributeNS('.makeSingleqQuoted($uri).', '. + makeSingleQuoted($name).', '; } if (my $name = $attribs{name}) { $e-{attrib_seen_name} = 1;