diff options
| author | Chris Burdess <dog@bluezoo.org> | 2006-01-12 16:35:51 +0000 |
|---|---|---|
| committer | Chris Burdess <dog@bluezoo.org> | 2006-01-12 16:35:51 +0000 |
| commit | 27affa71c21beb8d5c7c9e981bf5fce0576c08f5 (patch) | |
| tree | 0aa3d799f88964ac3fe3f6f53663ae16fc33cde9 /gnu/xml/stream/XMLParser.java | |
| parent | 7b8e31bd1ed72a57e58388dfcd59ce3ae85d4c99 (diff) | |
| download | classpath-27affa71c21beb8d5c7c9e981bf5fce0576c08f5.tar.gz | |
2006-01-12 Chris Burdess <dog@gnu.org>
* gnu/xml/dom/DomDocument.java,
gnu/xml/dom/DomElement.java,
gnu/xml/dom/DomNode.java,
gnu/xml/stream/XMLParser.java,
gnu/xml/transform/Bindings.java,
gnu/xml/transform/ElementAvailableFunction.java,
gnu/xml/transform/ElementNode.java,
gnu/xml/transform/FunctionAvailableFunction.java,
gnu/xml/transform/NamespaceProxy.java,
gnu/xml/transform/StreamSerializer.java,
gnu/xml/transform/Stylesheet.java,
gnu/xml/transform/TransformerImpl.java,
gnu/xml/xpath/Selector.java: Implement isEqualNode correctly for
document and element nodes; correct coalescing semantics when parsing;
attribute-sets can only refer to top-level variables and parameters;
fix namespace retrieval during element-available and
function-available functions; implement xsl:fallback for extension
elements; tokenize whitespace correctly during whitespace stripping;
correct following and previous node axes selectors.
Diffstat (limited to 'gnu/xml/stream/XMLParser.java')
| -rw-r--r-- | gnu/xml/stream/XMLParser.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/gnu/xml/stream/XMLParser.java b/gnu/xml/stream/XMLParser.java index f856f9372..4240d8590 100644 --- a/gnu/xml/stream/XMLParser.java +++ b/gnu/xml/stream/XMLParser.java @@ -282,8 +282,8 @@ public class XMLParser private final boolean stringInterning; /** - * If true, adjacent text will always be reported as one event. - * Otherwise multiple text events (chunks) may be reported. + * If true, CDATA sections will be merged with adjacent text nodes into a + * single event. */ private final boolean coalescing; @@ -366,8 +366,8 @@ public class XMLParser * (necessary if there are external entities to be resolved) * @param validating if the parser is to be a validating parser * @param namespaceAware if the parser should support XML Namespaces - * @param coalescing if text should be reported as a single event instead - * of a series of events + * @param coalescing if CDATA sections should be merged into adjacent text + * nodes * @param replaceERefs if entity references should be automatically * replaced by their replacement text (otherwise they will be reported as * entity-reference events) @@ -423,8 +423,8 @@ public class XMLParser * (necessary if there are external entities to be resolved) * @param validating if the parser is to be a validating parser * @param namespaceAware if the parser should support XML Namespaces - * @param coalescing if text should be reported as a single event instead - * of a series of events + * @param coalescing if CDATA sections should be merged into adjacent text + * nodes * @param replaceERefs if entity references should be automatically * replaced by their replacement text (otherwise they will be reported as * entity-reference events) @@ -3088,8 +3088,12 @@ public class XMLParser case 0x3c: // '<' reset(); read(tmpBuf, 0, i); - done = true; - break; // end of text sequence + i = len; + if (coalescing && tryRead(TEST_CDATA)) + readUntil(TEST_END_CDATA); // read CDATA section into buf + else + done = true; // end of text sequence + break; default: if (input.xml11) { @@ -3106,7 +3110,7 @@ public class XMLParser } // if text buffer >= 2MB, return it as a chunk // to avoid excessive memory use - if (!coalescing && buf.length() >= 2097152) + if (buf.length() >= 2097152) done = true; } if (entities) |
