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


Reply via email to