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