You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by db...@apache.org on 2001/10/03 20:18:16 UTC
cvs commit: xml-xalan/c/src/XSLT XSLTEngineImpl.cpp
dbertoni 01/10/03 11:18:16
Modified: c/src/XSLT XSLTEngineImpl.cpp
Log:
Always exclude implicit XML namespace declaration.
Revision Changes Path
1.122 +54 -50 xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp
Index: XSLTEngineImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.cpp,v
retrieving revision 1.121
retrieving revision 1.122
diff -u -r1.121 -r1.122
--- XSLTEngineImpl.cpp 2001/09/26 22:45:21 1.121
+++ XSLTEngineImpl.cpp 2001/10/03 18:18:16 1.122
@@ -1709,75 +1709,79 @@
const XalanDOMString& aname,
const XalanDOMString& value)
{
- bool fExcludeAttribute = false;
-
- if (equals(aname, DOMServices::s_XMLNamespace))
+ // Always exclude the implicit XML declaration...
+ if (equals(aname, DOMServices::s_XMLNamespacePrefix) == false)
{
- // OK, we're adding a default namespace declaration. So see if the length
- // of the namespace is 0. If it's not, go ahead and add the declaration.
- // If it's not, it means we're "turning off" the previous default
- // declaration.
-
- const XalanDOMString* const currentDefaultNamespace =
- getNamespaceForPrefix(s_emptyString);
-
- // Note that we use an empty string for the prefix, instead of "xmlns", since the
- // prefix really is "".
- if (length(value) != 0)
+ bool fExcludeAttribute = false;
+
+ if (equals(aname, DOMServices::s_XMLNamespace) == true)
{
- if (currentDefaultNamespace != 0 &&
- equals(*currentDefaultNamespace, value) == true)
+ // OK, we're adding a default namespace declaration. So see if the length
+ // of the namespace is 0. If it's not, go ahead and add the declaration.
+ // If it's not, it means we're "turning off" the previous default
+ // declaration.
+
+ const XalanDOMString* const currentDefaultNamespace =
+ getNamespaceForPrefix(s_emptyString);
+
+ // Note that we use an empty string for the prefix, instead of "xmlns", since the
+ // prefix really is "".
+ if (length(value) != 0)
{
- fExcludeAttribute = true;
+ if (currentDefaultNamespace != 0 &&
+ equals(*currentDefaultNamespace, value) == true)
+ {
+ fExcludeAttribute = true;
+ }
+ else
+ {
+ addResultNamespaceDecl(s_emptyString, value);
+ }
}
else
{
- addResultNamespaceDecl(s_emptyString, value);
+ // OK, we're turning of the previous default namespace declaration.
+ // Check to see if there is one, and if there isn't, don't add
+ // the namespace declaration _and_ don't add the attribute.
+ if (currentDefaultNamespace != 0 && length(*currentDefaultNamespace) != 0)
+ {
+ addResultNamespaceDecl(s_emptyString, value);
+ }
+ else
+ {
+ fExcludeAttribute = true;
+ }
}
}
- else
+ else if (startsWith(aname, DOMServices::s_XMLNamespaceWithSeparator) == true)
{
- // OK, we're turning of the previous default namespace declaration.
- // Check to see if there is one, and if there isn't, don't add
- // the namespace declaration _and_ don't add the attribute.
- if (currentDefaultNamespace != 0 && length(*currentDefaultNamespace) != 0)
+ assert(m_executionContext != 0);
+
+ StylesheetExecutionContext::GetAndReleaseCachedString prefixGuard(*m_executionContext);
+
+ XalanDOMString& prefix = prefixGuard.get();
+
+ prefix = substring(aname, DOMServices::s_XMLNamespaceWithSeparatorLength);
+
+ const XalanDOMString* const theNamespace = getResultNamespaceForPrefix(prefix);
+
+ if (theNamespace == 0 || equals(*theNamespace, value) == false)
{
- addResultNamespaceDecl(s_emptyString, value);
+ addResultNamespaceDecl(prefix, value);
}
else
{
fExcludeAttribute = true;
}
}
- }
- else if (startsWith(aname, DOMServices::s_XMLNamespaceWithSeparator) == true)
- {
- assert(m_executionContext != 0);
- StylesheetExecutionContext::GetAndReleaseCachedString prefixGuard(*m_executionContext);
-
- XalanDOMString& prefix = prefixGuard.get();
-
- prefix = substring(aname, DOMServices::s_XMLNamespaceWithSeparatorLength);
-
- const XalanDOMString* const theNamespace = getResultNamespaceForPrefix(prefix);
-
- if (theNamespace == 0 || equals(*theNamespace, value) == false)
+ if (fExcludeAttribute == false)
{
- addResultNamespaceDecl(prefix, value);
+ attList.addAttribute(
+ c_wstr(aname),
+ c_wstr(Constants::ATTRTYPE_CDATA),
+ c_wstr(value));
}
- else
- {
- fExcludeAttribute = true;
- }
- }
-
- if (fExcludeAttribute == false)
- {
- attList.addAttribute(
- c_wstr(aname),
- c_wstr(Constants::ATTRTYPE_CDATA),
- c_wstr(value));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org