hi ... I noticed that if I say this in XUpdate: <text>Tom & Jerry</text>
and then use XPath to query the text, it comes back as this: "Tom " (in other words it is truncated where I tried to get an ampersand.) Is this a bug or is there some reason for handling entities this way? Attached is a Java program which demonstrates this. When I run this program I get the following output (after adding line breaks): <?xml version="1.0"?> <newelement xmlns:src="http://xml.apache.org/xindice/Query" src:col="/db/pim" src:key="0200a7c066658d72000000ed95df4fd5">tom </newelement> It also happens while using the XML/RPC interface. thanks, Jonathan
import org.xmldb.api.base.*; import org.xmldb.api.modules.*; import org.xmldb.api.*; import java.io.FileReader; import java.io.StringWriter; // The database contents should initially look something like this: // // <?xml version="1.0" encoding="utf-8" ?> // <user name="jhmark"> // </user> public class testjava { public static void main(String[] args) throws Exception { Collection col = null; String driver = "org.apache.xindice.client.xmldb.DatabaseImpl"; Class c = Class.forName(driver); Database database = (Database) c.newInstance(); DatabaseManager.registerDatabase(database); col = DatabaseManager.getCollection("xmldb:xindice:///db/pim"); FileReader fileReader = new FileReader("update.xml"); StringWriter w = new StringWriter(); XUpdateQueryService update_service = (XUpdateQueryService)col.getService("XUpdateQueryService", "1.0"); XPathQueryService query_service = (XPathQueryService) col.getService("XPathQueryService", "1.0"); update_service.update( "<X:modifications version=\"1.0\" xmlns:X=\"http://www.xmldb.org/xupdate\">" + " <X:remove select=\"/[EMAIL PROTECTED]'jhmark']/newelement\" />" + "</X:modifications>" ); update_service.update( "<X:modifications version=\"1.0\" xmlns:X=\"http://www.xmldb.org/xupdate\">" + "<X:append select=\"/[EMAIL PROTECTED]'jhmark']\">" + "<X:element name=\"newelement\">" + "<X:text>tom & jerry</X:text>" + "</X:element>" + "</X:append>" + "</X:modifications>" ); ResourceSet resultSet = query_service.query("/[EMAIL PROTECTED]'jhmark']/newelement"); ResourceIterator results = resultSet.getIterator(); while (results.hasMoreResources()) { Resource res = results.nextResource(); System.out.println((String) res.getContent()); } } }