From: Loren C. <lor...@gm...> - 2011-05-03 18:34:41
|
I am trying a task where I create an empty memtree document and then try to update the dom document. It is hanging on line 145 Node newNode = doc.createElement(columnNames[index]); Can someone take a look at the attached source? Thank you, Loren 03 May 2011 13:08:07,042 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:107) - context: org.exist.xquery.XQueryContext@36633b88 03 May 2011 13:08:07,042 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:110) - builder: org.exist.memtree.MemTreeBuilder@2cd9799d 03 May 2011 13:08:07,042 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:122) - Storing memtree document /db/test-update.xml 03 May 2011 13:08:07,042 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:177) - =========================================================================== 03 May 2011 13:08:07,042 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:178) - =========================================================================== 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:179) - =========================================================================== 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:180) - =========================================================================== 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:181) - =========================================================================== 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:182) - Attempting to create document: /db/test-update.xml 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:200) - collectionURI: /db 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:202) - docURI: test-update.xml 03 May 2011 13:08:07,043 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:210) - collection: /db[test-update.xml] 03 May 2011 13:08:07,050 [DefaultQuartzScheduler_Worker-2] INFO (TestMemtreeJob.java [storeMemtreeDocument]:220) - INFO: org.exist.collections.IndexInfo@68ffab0a 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:252) - =========================================================================== 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:253) - =========================================================================== 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:254) - =========================================================================== 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:255) - =========================================================================== 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [storeMemtreeDocument]:256) - =========================================================================== 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:124) - stored 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:130) - End waiting 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:133) - Found element result : <result xmlns="..." timestamp="2011-05-03T13:08:07-0500"></result> 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:136) - node names: [Ljava.lang.String;@6d9bf996 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [getChildNode]:162) - Looking for node a 03 May 2011 13:08:07,051 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [getChildNode]:165) - Testing [timestamp] [a] 03 May 2011 13:08:07,052 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [getChildNode]:171) - did not find it 03 May 2011 13:08:07,052 [DefaultQuartzScheduler_Worker-2] DEBUG (TestMemtreeJob.java [execute]:144) - Creating node a for result On May 2, 2011, at 3:25 PM, Loren Cahlander wrote: > I am in the process of building a document in memory that I am not in control of the order that the nodes to be added are coming, but want to create the document as simply as possible. > > The following is an example of the steps that would be received: > > Create document with root node 'item' > Add node /item/one > Add node /item/two/alpha > Add node /item/three > Add node /item/two/beta > Add complex node /item/four/a > Add another complex node /item/four/a > > Below are the steps as they should be in the document: > > <?xml version="1.0" encoding="UTF-8"?> > <item/> > > <?xml version="1.0" encoding="UTF-8"?> > <item> > <one>foo</one> > </item> > > <?xml version="1.0" encoding="UTF-8"?> > <item> > <one>foo</one> > <two> > <alpha>bar</alpha> > </two> > </item> > > <?xml version="1.0" encoding="UTF-8"?> > <item> > <one>foo</one> > <two> > <alpha>bar</alpha> > </two> > <three>qwerty</three> > </item> > > <?xml version="1.0" encoding="UTF-8"?> > <item> > <one>foo</one> > <two> > <alpha>bar</alpha> > <beta>1234</beta> > </two> > <three>qwerty</three> > </item> > > <?xml version="1.0" encoding="UTF-8"?> > <item> > <one>foo</one> > <two> > <alpha>bar</alpha> > <beta>1234</beta> > </two> > <three>qwerty</three> > <four> > <a> > <p1>11</p1> > <p2>12</p2> > <p3>13</p3> > <p4>14</p4> > <p5>15</p5> > <p6>16</p6> > <p7>17</p7> > <p8>18</p8> > </a> > <a> > <p1>21</p1> > <p2>22</p2> > <p3>23</p3> > <p4>24</p4> > <p5>25</p5> > <p6>26</p6> > <p7>27</p7> > <p8>28</p8> > </a> > </four> > </item> > > > > I figure that I need to create a memtree document with the following: > > MemTreeBuilder builder = null; > XQuery xquery = broker.getXQueryService(); > > if (xquery == null) { > LOG.error("broker unable to retrieve XQueryService"); > return null; > } > XQueryContext context = xquery.newContext(AccessContext.REST); > > builder = new MemTreeBuilder( context ); > > builder.startDocument(); > builder.startElement( new QName( "item", null, null ), null ); > builder.endElement(); > builder.endDocument(); > DocumentImpl document = builder.getDocument(); > > I would then use XUpdate to build the node structures in the steps as I showed above. How would I best implement the XUpdate? > > Thanks, > Loren > |