If I understand you right, the first message published has to contain all markup possibly used in a XPath expression.
What I do is the following:
message = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
"<message><type>configuration</type><origin>subsystem</origin><time>1154588557390</time><destination>NE0001</destination><data><name>change-state</name><jobID>0</jobID><sleep-time>10</sleep-time></data></message>";
I_XmlBlasterAccess con=null;
con = glob.getXmlBlasterAccess();
ConnectQos qos;
try {
qos = new ConnectQos(glob);
con.connect(qos, this);
//TODO Define Keys for the NEs
con.subscribe("<key oid='config'/>", "<qos></qos>");
// TODO process list not single value
con.publish(
new MsgUnit(glob,"<key oid='config'/>",message.getBytes(),"<qos/>"));