You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2016/06/10 15:24:36 UTC
svn commit: r1747734 - in
/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource:
TreeWordList.java XMLEventHandler.java
Author: pkluegl
Date: Fri Jun 10 15:24:36 2016
New Revision: 1747734
URL: http://svn.apache.org/viewvc?rev=1747734&view=rev
Log:
UIMA-4784
- escape char for twl
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/XMLEventHandler.java
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java?rev=1747734&r1=1747733&r2=1747734&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/TreeWordList.java Fri Jun 10 15:24:36 2016
@@ -40,6 +40,7 @@ import javax.xml.parsers.ParserConfigura
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
+import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.uima.cas.FSIterator;
import org.apache.uima.cas.text.AnnotationFS;
import org.apache.uima.jcas.tcas.Annotation;
@@ -444,7 +445,8 @@ public class TreeWordList implements Rut
}
public void writeNode(Writer writer, TextNode node) throws IOException {
- String output = "<node char=\"" + node.getValue() + "\" isWordEnd=\""
+ String value = StringEscapeUtils.escapeXml11(String.valueOf(node.getValue()));
+ String output = "<node char=\"" + value + "\" isWordEnd=\""
+ Boolean.toString(node.isWordEnd()) + "\">";
writer.write(output);
for (TextNode child : node.getChildren().values()) {
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/XMLEventHandler.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/XMLEventHandler.java?rev=1747734&r1=1747733&r2=1747734&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/XMLEventHandler.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/resource/XMLEventHandler.java Fri Jun 10 15:24:36 2016
@@ -21,6 +21,7 @@ package org.apache.uima.ruta.resource;
import java.util.Stack;
+import org.apache.commons.lang3.StringEscapeUtils;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
@@ -46,7 +47,10 @@ public class XMLEventHandler extends Def
public void startElement(String namespaceURI, String localName, String qualifiedName,
Attributes atts) {
if ("node".equals(localName) || "node".equals(qualifiedName)) {
- char c = atts.getValue("char").charAt(0);
+ String value = atts.getValue("char");
+ // unescaping should and is be done by the parser
+ String unescapeXml = StringEscapeUtils.unescapeXml(value);
+ char c = unescapeXml.charAt(0);
boolean isWordEnd = Boolean.valueOf(atts.getValue("isWordEnd"));
TextNode newNode = new TextNode(c, isWordEnd);
stack.peek().addChild(newNode);