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/01/26 23:02:42 UTC
cvs commit: xml-xalan/c/src/XSLT XSLTEngineImpl.cpp XSLTEngineImpl.hpp
dbertoni 01/01/26 14:02:41
Modified: c/src/XSLT XSLTEngineImpl.cpp XSLTEngineImpl.hpp
Log:
Cleaned up some unused stuff and separated a function into two different ones.
Revision Changes Path
1.82 +47 -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.81
retrieving revision 1.82
diff -u -r1.81 -r1.82
--- XSLTEngineImpl.cpp 2001/01/25 17:06:37 1.81
+++ XSLTEngineImpl.cpp 2001/01/26 22:02:34 1.82
@@ -1402,10 +1402,10 @@
assert(getFormatterListener() != 0);
assert(m_executionContext != 0);
- m_resultNamespacesStack.pushContext();
-
if (getHasPendingStartDocument() == false)
{
+ m_resultNamespacesStack.pushContext();
+
setHasPendingStartDocument(true);
setMustFlushPendingStartDocument(false);
@@ -1449,6 +1449,8 @@
}
m_resultNamespacesStack.popContext();
+
+ assert(m_resultNamespacesStack.size() == 0);
}
@@ -1956,6 +1958,8 @@
case XalanNode::ELEMENT_NODE:
{
+ startElement(c_wstr(DOMServices::getNameOfNode(node)));
+
if(shouldCloneAttributes == true)
{
copyAttributesToAttList(&node,
@@ -1967,11 +1971,8 @@
#endif
getPendingAttributesImpl());
- copyNamespaceAttributes(node,
- false);
+ copyNamespaceAttributes(node);
}
-
- startElement(c_wstr(DOMServices::getNameOfNode(node)));
}
break;
@@ -2240,64 +2241,60 @@
void
-XSLTEngineImpl::copyNamespaceAttributes(
- const XalanNode& src,
- bool /* srcIsStylesheetTree */)
+XSLTEngineImpl::addResultNamespace(
+ const XalanNode& theNode,
+ AttributeListImpl& thePendingAttributes)
{
- int type;
+ assert(theNode.getNodeType() == XalanNode::ATTRIBUTE_NODE);
- const XalanNode* parent = &src;
+ const XalanDOMString& aname = theNode.getNodeName();
- while (parent != 0
- && ((type = parent->getNodeType()) == XalanNode::ELEMENT_NODE
- || type == XalanNode::ENTITY_REFERENCE_NODE))
+ const bool isPrefix = startsWith(aname, DOMServices::s_XMLNamespaceWithSeparator);
+
+ if (equals(aname, DOMServices::s_XMLNamespace) || isPrefix)
{
- if (type == XalanNode::ELEMENT_NODE)
+ const XalanDOMString prefix = isPrefix == true ?
+ substring(aname, DOMServices::s_XMLNamespaceWithSeparatorLength) : XalanDOMString();
+
+ const XalanDOMString& desturi = getResultNamespaceForPrefix(prefix);
+ const XalanDOMString& srcURI = theNode.getNodeValue();
+
+ if(equals(srcURI, desturi) == false)
{
- const XalanNamedNodeMap* const nnm =
- parent->getAttributes();
- assert(nnm != 0);
+ addResultAttribute(thePendingAttributes, aname, srcURI);
+ }
+ }
+}
- const unsigned int nAttrs = nnm->getLength();
- assert(m_outputContextStack.size() > 0);
- AttributeListImpl& thePendingAttributes =
- getPendingAttributesImpl();
+void
+XSLTEngineImpl::copyNamespaceAttributes(const XalanNode& src)
+{
+ int type;
- for (unsigned int i = 0; i < nAttrs; i++)
- {
- const XalanNode* const attr = nnm->item(i);
+ const XalanNode* parent = &src;
- const XalanDOMString& aname = attr->getNodeName();
+ while (parent != 0 &&
+ (type = parent->getNodeType()) == XalanNode::ELEMENT_NODE)
+ {
+ const XalanNamedNodeMap* const nnm =
+ parent->getAttributes();
+ assert(nnm != 0);
- const bool isPrefix = startsWith(aname, DOMServices::s_XMLNamespaceWithSeparator);
+ const unsigned int nAttrs = nnm->getLength();
- if (equals(aname, DOMServices::s_XMLNamespace) || isPrefix)
- {
- const XalanDOMString prefix = isPrefix ? substring(aname, 6) : XalanDOMString();
- const XalanDOMString& desturi = getResultNamespaceForPrefix(prefix);
- const XalanDOMString& srcURI = attr->getNodeValue();
- /*
- @@ JMD: Not used anymore in java ...
- const bool isXSLNS =
- srcIsStylesheetTree && equalsIgnoreCase(srcURI, s_XSLNameSpaceURL)
- || 0 != m_stylesheetRoot->lookupExtensionNSHandler(srcURI)
- || srcIsStylesheetTree && equalsIgnoreCase(srcURI, s_XSLT4JNameSpaceURL);
+ assert(m_outputContextStack.size() > 0);
- if(startsWith(srcURI, XALAN_STATIC_UCODE_STRING("quote:")))
- {
- srcURI = substring(srcURI, 6);
- }
+ AttributeListImpl& thePendingAttributes =
+ getPendingAttributesImpl();
- if(!equalsIgnoreCase(srcURI, desturi) && !isXSLNS)
- */
- if(!equalsIgnoreCase(srcURI, desturi))
- {
- addResultAttribute(thePendingAttributes, aname, srcURI);
- }
- }
- }
+ for (unsigned int i = 0; i < nAttrs; i++)
+ {
+ const XalanNode* const attr = nnm->item(i);
+ assert(attr != 0);
+
+ addResultNamespace(*attr, thePendingAttributes);
}
parent = parent->getParentNode();
1.59 +6 -10 xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp
Index: XSLTEngineImpl.hpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XSLT/XSLTEngineImpl.hpp,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- XSLTEngineImpl.hpp 2001/01/16 02:50:03 1.58
+++ XSLTEngineImpl.hpp 2001/01/26 22:02:36 1.59
@@ -899,12 +899,9 @@
* Copy XMLNS: attributes in if not already in scope.
*
* @param src source node
- * @param srcIsStylesheetTree true if source node is a stylesheet tree
*/
void
- copyNamespaceAttributes(
- const XalanNode& src,
- bool srcIsStylesheetTree);
+ copyNamespaceAttributes(const XalanNode& src);
/**
* Evaluate an xpath string and return the result.
@@ -1473,6 +1470,11 @@
bool
pendingAttributesHasDefaultNS() const;
+ void
+ addResultNamespace(
+ const XalanNode& theNode,
+ AttributeListImpl& thePendingAttributes);
+
/**
* The top of this stack should contain the currently processed
* stylesheet SAX locator object.
@@ -1572,12 +1574,6 @@
*/
mutable unsigned long m_uniqueNSValue; // 0
- /**
- * Translate CSS attributes and put them in a style tag.
- * @deprecated
- */
- void
- translateCSSAttrsToStyleAttr(AttributeListImpl& attList);
/**
* Get an XLocator provider keyed by node. This gets the association