You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlbeans-user@xml.apache.org by Arek Stryjski <de...@krzyzowki.net.pl> on 2004/07/29 14:39:38 UTC
newDomNode(XmlOptions) (was: binding XML fragment from DOM Node)
Hi,
Sorry if I put too much frustration in my last letter. I still think XmlBeans is
the best binding framework. If you think that using DOM is stupid, I agree, but
unfortunately I need to combine DOM and XmlBeans in my project, as other
packages use DOM.
I read documentation for org.apache.xmlbeans.XmlTokenSource.newDomNode() and now
I understand that you use only Document and DocumentFragment, but as you need
one return type you must use Node. The same principle is used in parse(Node)
method I believe.
I still think there should be some assertion error thrown if I pass Element to
this method, but... it is not something you will call bug.
However now I come across other behavior which is strange for me.
Then I use code like this:
1 XmlOptions op = new XmlOptions();
2 op.setSaveAggresiveNamespaces();
3 op.setSaveOuter();
4
5 SimpleTableModelDocument doc = impleTableModelDocument.Factory.newInstance();
6 SimpleTableModelBean bean = doc.addNewSimpleTableModel();
7 Node n = bean.newDomNode(op);
8
9 System.out.println("bean="+bean.xmlText());
10 System.out.println("node="+n.getFirstChild());
the system output as expected is:
bean=<xml-fragment/>
node=<sim:simple-table-model xmlns:sim="http://xmlbeans/table/simple" />
But if I replace lines 5-7 with:
SimpleTableModelBean bean = SimpleTableModelBean.Factory.newInstance();
Node n = bean.newDomNode(op);
I get in output:
bean=<xml-fragment></xml-fragment>
node=null
I looks like now DocumentFragment is empty. But why? It should contain one
element in my opinion. Or I'm wrong again?
The most inexplicable behavior I got then on line 7 I place:
Node n = bean.newDomNode();
it case:
Exception in thread "main" java.lang.NullPointerException
at org.apache.xmlbeans.impl.store.Saver$DomSaver.emitContainer(Saver.java:4514)
at org.apache.xmlbeans.impl.store.Saver.processContainer(Saver.java:775)
at org.apache.xmlbeans.impl.store.Saver.process(Saver.java:518)
at org.apache.xmlbeans.impl.store.Saver$DomSaver.exportDom(Saver.java:4461)
at org.apache.xmlbeans.impl.store.Cursor.newDomNode(Cursor.java:2954)
at org.apache.xmlbeans.impl.values.XmlObjectBase.newDomNode(XmlObjectBase.java:154)
at org.apache.xmlbeans.impl.values.XmlObjectBase.newDomNode(XmlObjectBase.java:151)
...
on this line.
So it looks like my problems come from wrong settings in XmlOptions passed to
newDomNode(); There I could read more about usage of XmlOptions in context of
DOM import/export.
Thanks for any help.
Arek
- ---------------------------------------------------------------------
To unsubscribe, e-mail: xmlbeans-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xmlbeans-user-help@xml.apache.org
Apache XMLBeans Project -- URL: http://xml.apache.org/xmlbeans/