Avatar billede fredand Forsker
26. april 2005 - 11:34 Der er 14 kommentarer og
1 løsning

How to create XML-document with KXML and J2ME?

Hello!

I'm trying to create a chatclient in J2ME. The server that will receive the message only accept it in this form:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE message PUBLIC "foo" "http://atlas.dsv.su.se/~pierre/i/05_ass/ip4/a_1_
3_3/message.dtd">

<message>
  <header>
    <protocol>
      <type>CTTP</type>
      <version>1.0</version>
      <command>MESS</command>
    </protocol>
    <id>
      <name>Fredrik Andersson</name>
      <email>fredand44@hotmail.com</email>
      <homepage>http://www.nu</homepage>
      <host>Frean</host>
    </id>
  </header>
  <body>Hello! How are you!</body>
</message>

Of course I can build this like a String but I guess I can do it more nice with KXML like I do with JDOM like:

Element type = new Element("type");
type.addContent("CTTP");
Element version = new Element("version");
version.addContent("1.0");
Element command = new Element("command");
command.addContent("MESS");

But I have not found any examples that describe this with KXML.

So if you got any idea or examples please let me know!

Best regards
Fredrik
Avatar billede simonvalter Praktikant
26. april 2005 - 12:38 #1
It's not made for that (it's just a parser) and I haven&#8217;t seen any projects that is so I'm pretty sure you need to build it like a String. Since the memory is limited on mobile devices unnecessary convenience features like that is usually removed.

Another note is ... if you don't need access to namespaces and a few other things you can reduce the size of the code by using this

http://cvs.sourceforge.net/viewcvs.py/kobjects/kobjects/src/org/kobjects/xml/XmlReader.java?rev=HEAD&content-type=text/vnd.viewcvs-markupXmlReader.java?rev=HEAD&content-type=text/vnd.viewcvs-markup

It's similar to kxml but without a lot of features and if you just need to parse that piece of xml it should do just fine.

I used it myself in a project once - here is an example:

package main;

import java.io.*;
import javax.microedition.io.*;

import org.kobjects.base64.*;

public class Parser {
    protected XmlListener mXmlListener;

    public void setXmlListener(XmlListener listener)
    {
        mXmlListener = listener;
    }

    public void parse(final String url)
    {

        Thread t = new Thread() {
            public void run()
            {
                HttpConnection hc = null;
                try
                {
                    hc = (HttpConnection) Connector.open(url);
                    parse(hc.openInputStream());

                }
                catch (Exception ioe)
                {
                    // Ignored
                }
                finally
                {
                    try
                    {
                        if (hc != null)
                        {
                            hc.close();
                        }
                    }
                    catch (IOException ignored)
                    {}
                }
            }
        };
        t.start();
    }

    public void parse(InputStream in) throws IOException
    {
        String navn = null;
        String personnummer = null;
        byte[] image = null;
        XmlReader xmlreader = new XmlReader(new InputStreamReader(in));
        boolean run = true;
        while (run)
        {
            int type = xmlreader.next();

            switch (type)
            {

                case XmlReader.START_TAG:

                    if (xmlreader.getName().equals("navn"))
                    {
                        xmlreader.next();
                        navn = xmlreader.readText();
                    }
                    if (xmlreader.getName().equals("personnummber"))
                    {
                        xmlreader.next();
                        personnummer = xmlreader.readText();
                    }
                    if (xmlreader.getName().equals("image"))
                    {
                        xmlreader.next();
                        image = Base64.decode(xmlreader.readText());
                    }

                    break;
                case XmlReader.END_TAG:
                    if (xmlreader.getName().equals("efterlyst"))
                    {
                        if (image != null)
                        {
                            mXmlListener.imageParsed(image);
                        }
                        else
                        {
                            mXmlListener.personParsed(navn, personnummer);
                        }
                    }
                    break;
                case XmlReader.END_DOCUMENT:
                    run = false;
                    break;
            }

        }

    }

}
Avatar billede fredand Forsker
26. april 2005 - 12:38 #2
Hello!

This does NOT seems to do the trick how ever or am I doing it wrong?
/Fredrik

            Element type = new Element();
            type.setValue("type", "CTTP");
            Element version = new Element();
            version.setValue("version", "1.0");
            Element command = new Element();
            command.setValue("command", "MESS");

            Element nameElement = new Element();
            nameElement.setValue("name", name);
            Element emailElement = new Element();
            emailElement.setValue("email", email);
            Element homepageElement = new Element();
            homepageElement.setValue("homepage", homepage);
            Element host = new Element();
            host.setValue("host", System.getProperty("user.name"));

            Element protocol = new Element();
            protocol.setName("protocol");
            protocol.addChild(Xml.ELEMENT, type);
            protocol.addChild(Xml.ELEMENT, version);
            protocol.addChild(Xml.ELEMENT, command);


            Element id = new Element();
            id.setName("id");
            id.addChild(Xml.ELEMENT, nameElement);
            id.addChild(Xml.ELEMENT, emailElement);
            id.addChild(Xml.ELEMENT, homepageElement);
            id.addChild(Xml.ELEMENT, host);

            Element header = new Element();
            header.setName("header");
            header.addChild(Xml.ELEMENT, protocol);
            header.addChild(Xml.ELEMENT, id);

            Element body = new Element();
            body.setValue("body", message);

            Element messageElement = new Element();
            messageElement.setName("message");
            messageElement.addChild(Xml.ELEMENT, header);
            messageElement.addChild(Xml.ELEMENT, body);

            Document document = new Document();
            document.addChild(0, Xml.ELEMENT, messageElement);
                        System.out.println(document.toString());
Avatar billede simonvalter Praktikant
26. april 2005 - 12:42 #3
ahh its been extended with kdom.. then you might be able to get it to work.
Avatar billede simonvalter Praktikant
26. april 2005 - 12:47 #4
Element type = new Element();
            type.setValue("type", "CTTP");
            Element version = new Element();
            version.setValue("version", "1.0");
            Element command = new Element();
            command.setValue("command", "MESS");

            Element nameElement = new Element();
            nameElement.setValue("name", name);
            Element emailElement = new Element();
            emailElement.setValue("email", email);
            Element homepageElement = new Element();
            homepageElement.setValue("homepage", homepage);
            Element host = new Element();
            host.setValue("host", System.getProperty("user.name"));

            Element protocol = new Element();
            protocol.setName("protocol");
            protocol.addChild(Xml.ELEMENT, type);
            protocol.addChild(Xml.ELEMENT, version);
            protocol.addChild(Xml.ELEMENT, command);


            Element id = new Element();
            id.setName("id");
            id.addChild(Xml.ELEMENT, nameElement);
            id.addChild(Xml.ELEMENT, emailElement);
            id.addChild(Xml.ELEMENT, homepageElement);
            id.addChild(Xml.ELEMENT, host);

            Element header = new Element();
            header.setName("header");
            header.addChild(Xml.ELEMENT, protocol);
            header.addChild(Xml.ELEMENT, id);

            Element body = new Element();
            body.setValue("body", message);

            Element messageElement = new Element();
            messageElement.setName("message");
            messageElement.addChild(Xml.ELEMENT, header);
            messageElement.addChild(Xml.ELEMENT, body);

            Document document = new Document();
            document.addChild(0, Xml.ELEMENT, messageElement);

KXmlSerializer serializer = new KXmlSerializer ();
            serializer.setOutput (System.out, null);
           
            document.write (serializer);
            serializer.flush ();


what about this
Avatar billede fredand Forsker
26. april 2005 - 13:03 #5
Oh!

This looks interesting, will try it very soon, got to do some work first ;-)

I'll be back!!
/Fredrik
Avatar billede fredand Forsker
26. april 2005 - 20:20 #6
Hello!
Unfortunately I'm just supposed to use the kxml.jar (It is an assignment), correct me if I'm wrong but the KXmlSerializer is not included in that api?

How ever when I do it with the XmlWriter I just get the follwoing error that I do not understand way?

So if you got any ideas please tell me!!!

java.lang.NullPointerException
    at java.io.Writer.write(+4)
    at org.kxml.io.XmlWriter.startTag(+63)
    at org.kxml.io.AbstractXmlWriter.startTag(+101)
    at org.kxml.kdom.Element.write(+16)
    at org.kxml.kdom.Node.writeChildren(+85)
    at org.kxml.kdom.Element.write(+65)
    at org.kxml.kdom.Node.writeChildren(+85)
    at org.kxml.kdom.Element.write(+65)
    at org.kxml.kdom.Node.writeChildren(+85)
    at org.kxml.kdom.Element.write(+65)
    at org.kxml.kdom.Node.writeChildren(+85)
    at org.kxml.kdom.Node.write(+5)
    at ChatSender.sendMessage(+346)
    at ChatSender.run(+11)
   
The code looks like:

public synchronized void sendMessage()
{
    if(message != null)
    {
        Element type = new Element();
        type.setValue("type", "CTTP");
        Element version = new Element();
        version.setValue("version", "1.0");
        Element command = new Element();
        command.setValue("command", "MESS");

        Element nameElement = new Element();
        //nameElement.setValue("name", name);
        nameElement.setValue("name", "Fredrik Andersson");
        Element emailElement = new Element();
        //emailElement.setValue("email", email);
        emailElement.setValue("email", "fr-ander@dsv.su.se");
        Element homepageElement = new Element();
        //homepageElement.setValue("homepage", homepage);
        homepageElement.setValue("homepage", "http://www.nu");
        Element host = new Element();
        //host.setValue("host", System.getProperty("user.name"));
        host.setValue("host", "Administrator");

        Element protocol = new Element();
        protocol.setName("protocol");
        protocol.addChild(Xml.ELEMENT, type);
        protocol.addChild(Xml.ELEMENT, version);
        protocol.addChild(Xml.ELEMENT, command);

        Element id = new Element();
        id.setName("id");
        id.addChild(Xml.ELEMENT, nameElement);
        id.addChild(Xml.ELEMENT, emailElement);
        id.addChild(Xml.ELEMENT, homepageElement);
        id.addChild(Xml.ELEMENT, host);

        Element header = new Element();
        header.setName("header");
        header.addChild(Xml.ELEMENT, protocol);
        header.addChild(Xml.ELEMENT, id);

        Element body = new Element();
        //body.setValue("body", message);
        body.setValue("body", "Hello!!");

        Element messageElement = new Element();
        messageElement.setName("message");
        messageElement.addChild(Xml.ELEMENT, header);
        messageElement.addChild(Xml.ELEMENT, body);

        Document document = new Document();
        document.addChild(0, Xml.ELEMENT, messageElement);

        try
        {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        XmlWriter xmlWriter = new XmlWriter( new OutputStreamWriter( byteArrayOutputStream ) );

            document.write(xmlWriter);

            xmlWriter.flush();

            String xmlString = new String( byteArrayOutputStream.toByteArray() );

            xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE message PUBLIC \"foo\" \"http://atlas.dsv.su.se/~pierre/i/05_ass/ip4/a_1_3_3/message.dtd\">\n" + xmlString;

            System.out.println(xmlString);

            outputStream.write(xmlString.getBytes());
            outputStream.write("\r\n".getBytes());
        }
        catch (Exception ex)
        {
        ex.printStackTrace();
        }

        message = null;

    }
}
Avatar billede fredand Forsker
26. april 2005 - 20:21 #7
Hello!

I have also tried to do it like this:

public synchronized void sendMessage()
{
    if(message != null)
    {
        try
        {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        XmlWriter xmlWriter = new XmlWriter( new OutputStreamWriter( byteArrayOutputStream ) );

            writeXML(xmlWriter);

            xmlWriter.flush();

            String xmlString = new String( byteArrayOutputStream.toByteArray() );

            xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE message PUBLIC \"foo\" \"http://atlas.dsv.su.se/~pierre/i/05_ass/ip4/a_1_3_3/message.dtd\">\n" + xmlString;

            System.out.println(xmlString);

            outputStream.write(xmlString.getBytes());
            outputStream.write("\r\n".getBytes());
        }
        catch (Exception ex)
        {
        ex.printStackTrace();
        }

        message = null;

    }
}

private void writeXML(AbstractXmlWriter writer) throws IOException
{

    writer.startTag("message");
    writer.startTag("header");
    writer.startTag("protocol");
    writer.startTag("type");
    writer.write("CTTP");
    writer.endTag();
    writer.startTag("version");
    writer.write("1.0");
    writer.endTag();
    writer.startTag("command");
    writer.write("MESS");
    writer.endTag();
    writer.endTag();
    writer.startTag("id");
    writer.startTag("name");
    writer.write(name);

    writer.endTag();
    writer.startTag("email");
    writer.write(email);
    writer.endTag();
    writer.startTag("homepage");
    writer.write(homepage);

    writer.endTag();
    writer.startTag("host");
    writer.write("Administrator");
    writer.endTag();
    writer.endTag();
    writer.endTag();
    System.out.println("MUPP");
    writer.startTag("body");
    writer.write(message);
    writer.endTag();
    writer.endTag();
}

But then I get errors saying that the document is not wellformed when i recive the message.

The dtd looks like:

<!ELEMENT message (header, body)>
<!ELEMENT header (protocol, id)>
<!ELEMENT protocol (type, version, command)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!ELEMENT command (#PCDATA)>
<!ELEMENT id (name, email, homepage, host)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT homepage (#PCDATA)>
<!ELEMENT host (#PCDATA)>
<!ELEMENT body (#PCDATA)>

My send xml looks like, and I do think it match the dtd:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE message PUBLIC "foo" "http://atlas.dsv.su.se/~pierre/i/05_ass/ip4/a_1_3_3/message.dtd">
<message>
<header>
  <protocol>
  <type>CTTP</type>
  <version>1.0</version>
  <command>MESS</command>
  </protocol>
  <id>
  <name>Fredrik Andersson</name>
  <email>fr-ander@dsv.su.se</email>
  <homepage>http://www.nu</homepage>
  <host>Administrator</host>
  </id>
</header>
<body>Hello!</body>
</message>

The error looks like below, first I get a couple of:

Fatalerror:
Premature end of file.
org.jdom.input.JDOMParseException: Error on line -1: Premature end of file.
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:468)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:851)
        at MyXMLChatClient.receive(MyXMLChatClient.java:149)
        at ChatClient.run(ChatClient.java:28)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1269)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
        ... 3 more
Caused by: org.xml.sax.SAXParseException: Premature end of file.
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1269)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:851)
        at MyXMLChatClient.receive(MyXMLChatClient.java:149)
        at ChatClient.run(ChatClient.java:28)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1269)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:851)
        at MyXMLChatClient.receive(MyXMLChatClient.java:149)
        at ChatClient.run(ChatClient.java:28)
       
After that I get a hole bunch of these errors for every element I guess:

Error:
Document is invalid: no grammar found.
Error:
Document root element "message", must match DOCTYPE root "null".
Fatalerror:
XML document structures must start and end within the same entity.
org.jdom.input.JDOMParseException: Error on line 1: XML document structures must
start and end within the same entity.
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:468)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:851)
        at MyXMLChatClient.receive(MyXMLChatClient.java:149)
        at ChatClient.run(ChatClient.java:28)
Caused by: org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1269)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
        ... 3 more
Caused by: org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1269)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:851)
        at MyXMLChatClient.receive(MyXMLChatClient.java:149)
        at ChatClient.run(ChatClient.java:28)
Caused by: org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1269)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:851)
        at MyXMLChatClient.receive(MyXMLChatClient.java:149)
        at ChatClient.run(ChatClient.java:28)
       
My receive method in the other chat client looks like:

public void receive(String message)
{
    try
    {
        StringReader stringReader = new StringReader(message);
        SAXBuilder saxBuilder = new SAXBuilder(true);
        saxBuilder.setErrorHandler(this);
        Document document = saxBuilder.build(stringReader);

        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append(getXmlValue(document, "message/header/id/name"));
        stringBuffer.append(" (");
        stringBuffer.append(getXmlValue(document, "message/header/id/email"));
        stringBuffer.append("): ");
        stringBuffer.append(getXmlValue(document, "message/body"));

        jEditorPane.setText(jEditorPane.getText() + stringBuffer.toString() + "\n");

        System.out.println("\nInput:");
        writeOutDocument(document);
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

...and...

public String getXmlValue(Document document, String tagPath) throws JDOMException
{
    Element element = (Element) XPath.selectSingleNode(document, tagPath);
    return element.getText();
}

It uses:
import org.jdom.*;
import org.jdom.input.*;
import org.xml.sax.helpers.*;
import org.xml.sax.*;
import org.jdom.output.*;
import org.jdom.xpath.*;

So if ypou guys got any ideas please let me know!

Best regards
Fredrik
Avatar billede simonvalter Praktikant
26. april 2005 - 21:48 #8
>Unfortunately I'm just supposed to use the kxml.jar (It is an assignment), correct >me if I'm wrong but the KXmlSerializer is not included in that api?

The latest version i just looked at does.
http://heanet.dl.sourceforge.net/sourceforge/kxml/kxml2.jar

the kxml1 project have been closed.

I have no idea about the errors.
Avatar billede fredand Forsker
27. april 2005 - 08:16 #9
Hello!

That sounds great!

I found this api :http://kxml.objectweb.org/software/documentation/apidocs/

Perhaps that one is old, cause there is no KXmlSerializer what I can see.

Btw give a svar so a can reward you for the help!
/Fredrik
Avatar billede fredand Forsker
27. april 2005 - 10:49 #10
Hello!

There seems to be an error on the site for KXML

I can not download the latest kxml2.

Do you by any chance got it?

It would be great if you could email me the jar-file to:
fredand44@hotmail.com

Best regards
Fredrik
Avatar billede fredand Forsker
27. april 2005 - 10:52 #11
Oh sorry!

Now it works!

You do not need to email it to me!

But please give a svar so I can reward you!

Best regards
Fredrik
Avatar billede fredand Forsker
27. april 2005 - 11:48 #12
Hello!

This is the result, but there is one problem. How do I insert a DOCTYPE??:

public synchronized void sendMessage()
{

    if(message != null)
    {
        Element type = new Element();
        type.setName("type");
        type.addChild(Node.TEXT, "CTTP");
        Element version = new Element();
        version.setName("version");
        version.addChild(Node.TEXT, "1.0");
        Element command = new Element();
        command.setName("command");
        command.addChild(Node.TEXT, "MESS");

        Element nameElement = new Element();
        nameElement.setName("name");
        nameElement.addChild(Node.TEXT, name);
        Element emailElement = new Element();
        emailElement.setName("email");
        emailElement.addChild(Node.TEXT, email);
        Element homepageElement = new Element();
        homepageElement.setName("homepage");
        homepageElement.addChild(Node.TEXT, homepage);
        Element host = new Element();
        host.setName("host");
        host.addChild(Node.TEXT, "Administrator");

        Element protocol = new Element();
        protocol.setName("protocol");
        protocol.addChild(Node.ELEMENT, type);
        protocol.addChild(Node.ELEMENT, version);
        protocol.addChild(Node.ELEMENT, command);

        Element id = new Element();
        id.setName("id");
        id.addChild(Node.ELEMENT, nameElement);
        id.addChild(Node.ELEMENT, emailElement);
        id.addChild(Node.ELEMENT, homepageElement);
        id.addChild(Node.ELEMENT, host);

        Element header = new Element();
        header.setName("header");
        header.addChild(Node.ELEMENT, protocol);
        header.addChild(Node.ELEMENT, id);

        Element body = new Element();
        body.setName("body");
        body.addChild(Node.TEXT, message);

        Element messageElement = new Element();
        messageElement.setName("message");
        messageElement.addChild(Node.ELEMENT, header);
        messageElement.addChild(Node.ELEMENT, body);


        Document document = new Document();
        document.addChild(0, Node.ELEMENT, messageElement);

        try
        {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

            KXmlSerializer kxmlSerializer = new KXmlSerializer ();
            kxmlSerializer.setOutput (byteArrayOutputStream, null);

            document.write (kxmlSerializer);
            kxmlSerializer.flush();

            String xmlString = new String( byteArrayOutputStream.toByteArray() );

            System.out.println(xmlString);

            outputStream.write(xmlString.getBytes());
            outputStream.write("\r\n".getBytes());
        }
        catch (Exception ex)
        {
        ex.printStackTrace();
        }

        message = null;

    }
}

The output looks like:
Error:
Document is invalid: no grammar found.
Error:
Document root element "message", must match DOCTYPE root "null".

Input:
<?xml version="1.0" encoding="UTF-8"?>
<message>
  <header>
    <protocol>
      <type>CTTP</type>
      <version>1.0</version>
      <command>MESS</command>
    </protocol>
    <id>
      <name>Fredrik Andersson</name>
      <email>fr-ander@dsv.su.se</email>
      <homepage>http://www.nu</homepage>
      <host>Administrator</host>
    </id>
  </header>
  <body>Fridens sjõv!!</body>
</message>

It should have:
<!DOCTYPE message PUBLIC "foo" "http://atlas.dsv.su.se/~pierre/i/05_ass/ip4/a_1_3_3/message.dtd">

So if you got any ideas please let me know!

Fredrik
Avatar billede fredand Forsker
27. april 2005 - 12:50 #13
The final solution including the doctype looks like:
...bla bla bla...
Element messageElement = new Element();
messageElement.setName("message");
messageElement.addChild(Node.ELEMENT, header);
messageElement.addChild(Node.ELEMENT, body);


//Document document = new Document();
//document.addChild(0, Node.ELEMENT, messageElement);

try
{
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

    KXmlSerializer kxmlSerializer = new KXmlSerializer ();
    kxmlSerializer.setOutput (byteArrayOutputStream, null);
    //document.write (kxmlSerializer);
    kxmlSerializer.startDocument("UTF-8", new Boolean(false));
    kxmlSerializer.docdecl(" message PUBLIC \"foo\" \"http://atlas.dsv.su.se/~pierre/i/05_ass/ip4/a_1_3_3/message.dtd\"");
    messageElement.write(kxmlSerializer);
    kxmlSerializer.flush();
...bla bla bla

Do not forget the answer so I can reward you Simon Valter!
Avatar billede simonvalter Praktikant
27. april 2005 - 14:10 #14
hehe ok .. you have been busy i see ;)
Avatar billede fredand Forsker
27. april 2005 - 14:25 #15
Thanks mate!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB