import javax.xml.transform.dom.DOMSource;\r
import javax.xml.transform.stream.StreamResult;\r
\r
+import org.apache.commons.lang.StringEscapeUtils;\r
import org.apache.commons.logging.Log;\r
import org.apache.commons.logging.LogFactory;\r
import org.w3c.dom.DOMException;\r
\r
public FormattedText marshal(String string) throws Exception {\r
if(string != null) {\r
- String documentString = "<?xml version=\"1.0\"?><text>" + string + "</text>";\r
+ \r
+ string = StringEscapeUtils.escapeXml(string);\r
+ String documentString = "<?xml version=\"1.0\"?><Text>" + string + "</Text>";\r
log.debug("Parsing " + documentString);\r
+ \r
FormattedText text = new FormattedText();\r
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\r
DocumentBuilder parser = factory.newDocumentBuilder();\r
+ //\r
+ // System.err.println(documentString);\r
Document document = parser.parse(new InputSource(new StringReader(documentString)));\r
+ \r
NodeList childNodes = document.getDocumentElement().getChildNodes();\r
+ \r
for(int i = 0; i < childNodes.getLength(); i++) {\r
Node node = childNodes.item(i);\r
if(node instanceof org.w3c.dom.Text ) {\r
org.w3c.dom.Text textNode = (org.w3c.dom.Text) node;\r
- \r
+ //if (documentString.contains("United Kingdom")){\r
+ // System.err.println("w3c..." + textNode.getData());\r
+ //}\r
+ \r
text.getContent().add(textNode.getTextContent());\r
} else {\r
text.getContent().add(node);\r
+ //System.err.println("no w3c..." + text.toString());\r
}\r
}\r
return text;\r
attributes.removeNamedItem(prefix);\r
} catch(DOMException de){\r
if(de.code != DOMException.NOT_FOUND_ERR) {\r
+ System.err.println("no such prefix: " + prefix);\r
throw de;\r
}\r
}\r
public class PartialAdapter extends XmlAdapter<String, Partial> {\r
\r
protected static Pattern PATTERN;\r
- private static String REGEX = "^(\\d{4})(?:\\-(\\d{2})(?:\\-(\\d{2})(?:T(\\d{2})(?:\\:(\\d{2})(?:\\:(\\d{2})(?:\\.(\\d+))?)?)?)?)?)?$";\r
+ private static String REGEX = "^(\\d{4})(?:\\-(\\d{1,2})(?:\\-(\\d{1,2})(?:T(\\d{2})(?:\\:(\\d{2})(?:\\:(\\d{2})(?:\\.(\\d+))?)?)?)?)?)?$";\r
\r
static {\r
PATTERN = Pattern.compile(REGEX);\r