Hi, your solution works fine. I would like to use the generated xbeans but the schema is not like that. The item only has the methode "set( XmlObject )" and I can not change the schema.
Thanks for you help, Philipp -------- Original-Nachricht -------- > Datum: Thu, 12 Mar 2009 11:47:28 -0500 > Von: "Cezar Andrei" <[email protected]> > An: "[email protected]" <[email protected]> > Betreff: RE: Problems with generating XML > Philipp, > > In order to have a valid XML document you need to have some namespace > declarations. XMLBeans always tries to create valid documents, that's why you > see the xmlns:xsi namespace declaration. > > If you want valid documents try using the methods that have uri as > parameter. For example instead of using: > > cursor.insertAttributeWithValue( "xsi:type", "xsd:short" ); > (where the first parameter represents the localName of the attribute) use > cursor.insertAttributeWithValue( "type", > "http://www.w3.org/2001/XMLSchema-instance", "xsd:short" ); > > Also, depending on your schema it might be easier to use the generated > xbeans directly instead of using xmlcursor which is intended for lower level > manipulation. > > Cezar > > > -----Original Message----- > > From: [email protected] [mailto:[email protected]] > > Sent: Thursday, March 12, 2009 2:47 AM > > To: [email protected] > > Subject: Problems with generating XML > > > > Hello, > > > > I have some problems to generate XML. I generated the classes from my > WSDL > > and it works quite fine. But I have a small problem. My XML-File should > > look like this: > > <Write xmlns="web-adress1" xmlns:xsi="web-adress2" xmlns:xsd="web- > > adress3"> > > <Options/> > > <ItemList> > > <Items ItemName=\"S7:[DEMO]TestIntZwei\"> > > <Value xsi:type=\"xsd:short\">87</Value> > > </Items> > > </ItemList> > > </Write> > > > > My code to generate this file: > > WriteDocument doc = WriteDocument.Factory.newInstance(); > > org.opcfoundation.webservices.xmlda._1_0.WriteDocument.Write write = > > doc.addNewWrite(); > > XmlCursor cursor = write.newCursor(); > > cursor.toEndToken(); > > cursor.insertNamespace( "xsi", "web-adress2" ); > > cursor.insertNamespace( "xsd", "web-adress3" ); > > ItemValue item = ItemValue.Factory.newInstance(); > > item.setItemName( "S7:[DEMO]TestVar" ); > > // some code to create the value > > > > That code creates the following XML: > > <Write xmlns:xsi="web-adress2" xmlns:xsd="web-adress3" xmlns="web- > > adress1"> > > <Options/> > > <ItemList> > > <Items ItemName="S7:[DEMO]TestVar"/> > > </ItemList> > > </Write> > > > > I have tried a lot to create a "correct" value-entry, but it was not > > possible for me. For example: > > XmlObject value = XmlObject.Factory.parse( "<Value > > xsi:type=\"xsd:short\">87</Value>" ); > > > > // or > > XmlCursor cursor = value.newCursor(); > > cursor.beginElement( "Value" ); > > cursor.toNextToken(); > > cursor.insertAttributeWithValue( "xsi:type", "xsd:short" ); > > > > The first solution returns: > > <Value xsi:type="xsd:short" xmlns:xsi="xsi">87</Value> > > > > Second solution throws an error that the name is not valid. Do you have > > any ideas about it? Thanks a lot. > > > > Philipp > > -- > > Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit > allen: > > http://www.gmx.net/de/go/multimessenger01 > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] -- Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger01 --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

