Re: [xslt] Transformation result DOM document does not honor xml:id
- From: Daniel Veillard <veillard redhat com>
- To: The Gnome XSLT library mailing-list <xslt gnome org>
- Subject: Re: [xslt] Transformation result DOM document does not honor xml:id
- Date: Wed, 24 Jun 2009 12:01:22 +0200
On Mon, Apr 06, 2009 at 04:03:09PM +0200, Michael Ludwig wrote:
> The result DOM document of a transformation does not honor the automatic
> ID-ness of an xml:id attribute. My feeling, which may of course be
> wrong, is that it should. But unlike Daniel, I wasn't among the editors
> of the xml:id specification.
>
> http://www.w3.org/TR/xml-id/
>
> So should xml:id be honored in this case, or shouldn't it?
Hum ... that's I think a bug in libxslt (or possibly libxml2 when
the attribute is added). I must admit xml:id was more though in the
context of a parser while here the document is generated by creating
the tree/DOM, still I think this should be fixed.
I think I found the fix, due to an optimization in libxslt which
broke the ID tagging of the attribute when generated. See attached
patch,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel veillard com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
diff --git a/libxslt/attributes.c b/libxslt/attributes.c
index 168dae6..ce47df7 100644
--- a/libxslt/attributes.c
+++ b/libxslt/attributes.c
@@ -978,6 +978,13 @@ xsltAttributeInternal(xsltTransformContextPtr ctxt,
if (inst->children->name == xmlStringTextNoenc)
copyTxt->name = xmlStringTextNoenc;
+ /*
+ * since we create the attribute without content IDness must be
+ * asserted as a second step
+ */
+ if ((copyTxt->content != NULL) &&
+ (xmlIsID(attr->doc, attr->parent, attr)))
+ xmlAddID(NULL, attr->doc, copyTxt->content, attr);
} else {
/*
* The sequence constructor might be complex, so instantiate it.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]