dbertoni 01/10/29 20:09:52
Modified: c/src/XSLT XSLTEngineImpl.cpp
Log:
Fixed problems with stylesheet PI and type pseudo-attribute.
Revision Changes Path
1.124 +19 -13 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.123
retrieving revision 1.124
diff -u -r1.123 -r1.124
--- XSLTEngineImpl.cpp 2001/10/19 18:42:23 1.123
+++ XSLTEngineImpl.cpp 2001/10/30 04:09:52 1.124
@@ -110,7 +110,7 @@
#include <XPath/ElementPrefixResolverProxy.hpp>
#include <XPath/XalanQNameByReference.hpp>
-#include <XPath/ResultTreeFrag.hpp>
+#include <XPath/ResultTreeFragBase.hpp>
#include <XPath/XObject.hpp>
#include <XPath/XObjectFactory.hpp>
#include <XPath/XPathEnvSupport.hpp>
@@ -291,9 +291,12 @@
vector<XalanDOMString> hrefs;
- // $$$ ToDo: is this first one style valid?
- const XalanDOMString
stylesheetNodeName1(XALAN_STATIC_UCODE_STRING("xml-stylesheet"));
- const XalanDOMString
stylesheetNodeName2(XALAN_STATIC_UCODE_STRING("xml:stylesheet"));
+ const XalanDOMString
stylesheetNodeName(XALAN_STATIC_UCODE_STRING("xml-stylesheet"));
+ const XalanDOMString
typeString(XALAN_STATIC_UCODE_STRING("type"));
+ const XalanDOMString
typeValueString1(XALAN_STATIC_UCODE_STRING("text/xml"));
+ const XalanDOMString
typeValueString2(XALAN_STATIC_UCODE_STRING("text/xsl"));
+ const XalanDOMString
typeValueString3(XALAN_STATIC_UCODE_STRING("application/xml"));
+ const XalanDOMString
typeValueString4(XALAN_STATIC_UCODE_STRING("application/xml+xslt"));
// $$$ ToDo: This code is much like that in
getStyleSheetURIFromDoc().
// Why is it repeated???
@@ -307,28 +310,30 @@
{
const XalanDOMString
nodeName(child->getNodeName());
- if(equals(nodeName, stylesheetNodeName1) ||
- equals(nodeName, stylesheetNodeName2))
+ if(equals(nodeName, stylesheetNodeName))
{
- bool isOK = true;
+ bool isOK = false;
StringTokenizer
tokenizer(child->getNodeValue(), XALAN_STATIC_UCODE_STRING(" \t="));
while(tokenizer.hasMoreTokens())
{
-
if(equals(tokenizer.nextToken(), XALAN_STATIC_UCODE_STRING("type")))
+
if(equals(tokenizer.nextToken(), typeString)) // "type"
{
XalanDOMString typeVal
= tokenizer.nextToken();
typeVal =
substring(typeVal, 1, length(typeVal) - 1);
- if(!equals(typeVal,
XALAN_STATIC_UCODE_STRING("text/xsl")))
+ if(equals(typeVal,
typeValueString1) ||
+ equals(typeVal,
typeValueString2) ||
+ equals(typeVal,
typeValueString3) ||
+ equals(typeVal,
typeValueString4))
{
- isOK = false;
+ isOK = true;
}
}
- }
-
+ }
+
if(isOK)
{
StringTokenizer
tokenizer(child->getNodeValue(), XALAN_STATIC_UCODE_STRING(" \t="));
@@ -2267,6 +2272,7 @@
bool
shouldCloneAttributes)
{
assert(nodeType == node.getNodeType());
+ assert(m_executionContext != 0);
switch(nodeType)
{
@@ -2279,7 +2285,7 @@
if(!overrideStrip)
{
stripWhiteSpace = isLiteral ? true : false;
- // was: stripWhiteSpace = isLiteral ? true :
shouldStripSourceNode(node);
+ // stripWhiteSpace = isLiteral ? true :
shouldStripSourceNode(*m_executionContext, node);
}
const XalanText& tx =
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]