You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2011/10/20 16:17:39 UTC
svn commit: r1186824 - in
/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl:
SaxDeserializer_impl.java XMLParser_impl.java
Author: schor
Date: Thu Oct 20 14:17:39 2011
New Revision: 1186824
URL: http://svn.apache.org/viewvc?rev=1186824&view=rev
Log:
[UIMA-239] Prepare for enabling XML comment preservation in XML parsing.
Modified:
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/SaxDeserializer_impl.java
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/SaxDeserializer_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/SaxDeserializer_impl.java?rev=1186824&r1=1186823&r2=1186824&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/SaxDeserializer_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/SaxDeserializer_impl.java Thu Oct 20 14:17:39 2011
@@ -37,13 +37,14 @@ import org.w3c.dom.Node;
import org.xml.sax.Attributes;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
+import org.xml.sax.ext.LexicalHandler;
/**
* Reference implementation of {@link SaxDeserializer}.
*
*
*/
-public class SaxDeserializer_impl implements SaxDeserializer {
+public class SaxDeserializer_impl implements SaxDeserializer, LexicalHandler {
static final String JAXP_SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage";
static final String W3C_XML_SCHEMA = "http://www.w3.org/2001/XMLSchema";
@@ -109,6 +110,7 @@ public class SaxDeserializer_impl implem
* @see org.apache.uima.util.SaxDeserializer#getObject()
*/
public XMLizable getObject() throws InvalidXMLException {
+ // COMMENT NODEs may be present, and getDocumentElement would skip it...
Node rootDomNode = ((Document) mDOMResult.getNode()).getDocumentElement();
// build the object
@@ -209,4 +211,22 @@ public class SaxDeserializer_impl implem
// System.out.println("SaxDeserializer_impl::startPrefixMapping("+prefix+","+uri+")");
mTransformerHandler.startPrefixMapping(prefix, uri);
}
+
+ //==============================================
+ // Methods for LexicalHandler interface
+ public void comment(char[] arg0, int arg1, int arg2) throws SAXException {
+ mTransformerHandler.comment(arg0, arg1, arg2);
+ }
+
+ public void endCDATA() throws SAXException {}
+
+ public void endDTD() throws SAXException {}
+
+ public void endEntity(String name) throws SAXException {}
+
+ public void startCDATA() throws SAXException {}
+
+ public void startDTD(String name, String publicId, String systemId) throws SAXException {}
+
+ public void startEntity(String name) throws SAXException {}
}
Modified: uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java?rev=1186824&r1=1186823&r2=1186824&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/util/impl/XMLParser_impl.java Thu Oct 20 14:17:39 2011
@@ -136,10 +136,9 @@ public class XMLParser_impl implements X
SAXParserFactory factory = SAXParserFactory.newInstance();
// Turn on namespace support
- factory.setNamespaceAware(true);
-
- SAXParser parser = factory.newSAXParser();
-
+ factory.setNamespaceAware(true);
+ SAXParser parser = factory.newSAXParser(); // in the future, if performance issue, can save this , and reuse with reset()
+
XMLReader reader = parser.getXMLReader();
reader.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
@@ -174,6 +173,7 @@ public class XMLParser_impl implements X
// Parse with SaxDeserializer
SaxDeserializer deser = new SaxDeserializer_impl(this, aOptions);
reader.setContentHandler(deser);
+ reader.setProperty ("http://xml.org/sax/properties/lexical-handler", deser);
reader.parse(input);
// if there was an exception, throw it