+Tue Feb 4 22:10:17 CET 2003 Daniel Veillard <daniel@veillard.com>
+
+ * libxslt/transform.c: fixing bug #105116 sometimes one need
+ to generate a default namespace reset xmlns="" in the output
+ * tests/docs/Makefile.am tests/docs/bug-103.xml
+ tests/general/Makefile.am tests/general/bug-103*: added the
+ example in the regression tests for this case
+
Tue Feb 4 18:39:35 CET 2003 Daniel Veillard <daniel@veillard.com>
* libxslt/pattern.c libxslt/transform.c: changed the way the
if (node->nsDef != NULL)
xsltCopyNamespaceList(ctxt, copy, node->nsDef);
}
- if (((node->type == XML_ELEMENT_NODE) ||
- (node->type == XML_ATTRIBUTE_NODE)) &&
- (node->ns != NULL)) {
- copy->ns = xsltGetNamespace(ctxt, node, node->ns, copy);
+ if ((node->type == XML_ELEMENT_NODE) ||
+ (node->type == XML_ATTRIBUTE_NODE)) {
+ if (node->ns != NULL)
+ copy->ns = xsltGetNamespace(ctxt, node, node->ns, copy);
+ else if ((insert != NULL) && (insert->type == XML_ELEMENT_NODE) &&
+ (insert->ns != NULL)) {
+ xmlNsPtr defaultNs;
+
+ defaultNs = xmlSearchNs(insert->doc, insert, NULL);
+ if (defaultNs != NULL)
+ xmlNewNs(copy, BAD_CAST "", NULL);
+ }
}
} else {
xsltTransformError(ctxt, NULL, node,
/*
* Add namespaces as they are needed
*/
- if (node->ns != NULL) {
- copy->ns = xsltGetNamespace(ctxt, node, node->ns, copy);
+ if ((node->type == XML_ELEMENT_NODE) ||
+ (node->type == XML_ATTRIBUTE_NODE)) {
+ if (node->ns != NULL)
+ copy->ns = xsltGetNamespace(ctxt, node, node->ns, copy);
+ else if ((insert != NULL) && (insert->type == XML_ELEMENT_NODE) &&
+ (insert->ns != NULL)) {
+ xmlNsPtr defaultNs;
+
+ defaultNs = xmlSearchNs(insert->doc, insert, NULL);
+ if (defaultNs != NULL)
+ xmlNewNs(copy, BAD_CAST "", NULL);
+ }
}
if (node->nsDef != NULL)
xsltCopyNamespaceList(ctxt, copy, node->nsDef);
bug-101.out bug-101.xsl \
bug-102.out bug-102.xsl \
bug-102-inc.out bug-102-inc.xsl \
+ bug-103.out bug-103.xsl \
character.out character.xsl \
character2.out character2.xsl \
itemschoose.out itemschoose.xsl \
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ >
+
+ <xsl:template match="/">
+ <report xmlns="http://examplotron.org/namespaces/example">
+ <xsl:copy-of select="foo"/>
+ </report>
+ </xsl:template>
+
+</xsl:stylesheet>
+