XML Darstellung mit Java

Von: , Frage gestellt am Mi, 13. Mai 2009

Hallo Leute,

ich implementiere grad eine XML Applikation. Ein Server erwartet folgende XML-Datei:

<body xmlns="http://www.Alcatel-Lucent.fr/IPT/v1.1" >
<register>
<url id="config" value=” ” param=” ”/>
<prop id="rights" value=" " />
<prop id="key" value=" " />
<timer id="SessionInactivity" value=" " />
<timer id="TermStateDeltaPeriod" value=" " />
<timer id="TermStateSynchroAllPeriod" value=" " />
<timer id="NotifyScanPeriod" value=" " />
<timer id="HTTPTimeout" value=" " />
<http> </http>
</register>
</body>

Leider bin ich mich grad erst am rein friemeln in XML-erstellung mit Java und weiß bis jetzt nur, wie man die ausführlichere Variante von XML erstellt.
Könnt Ihr mir sagen, wie das "ausführlich", also mit öffnendem und schließenden Tag, aussieht? Oder wie ich das mit Java implementieren kann.

Danke im voraus

6 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: XML Darstellung mit Java

    ich implementiere grad eine XML Applikation. Ein Server
    erwartet folgende XML-Datei:
    Das ist undruchsichtig. Du schreibst also eine Applikation, die sich in irgendeiner Form mit XML auseinandersetzen muß. Geht das irgendwie genauer? <body xmlns="http://www.Alcatel-Lucent.fr/IPT/v1.1" >
    <register>
    <url id="config" value=” ” param=” ”/>
    <prop id="rights" value=" " />
    <prop id="key" value=" " />
    <timer id="SessionInactivity" value=" " />
    <timer id="TermStateDeltaPeriod" value=" " />
    <timer id="TermStateSynchroAllPeriod" value=" " />
    <timer id="NotifyScanPeriod" value=" " />
    <timer id="HTTPTimeout" value=" " />
    <http> </http>
    </register>
    </body>

    Leider bin ich mich grad erst am rein friemeln in
    XML-erstellung mit Java und weiß bis jetzt nur, wie man die
    ausführlichere Variante von XML erstellt.
    Kannst Du mal erklären was Du mit 'ausführlichem XML' meinst? Könnt Ihr mir sagen, wie das "ausführlich", also mit öffnendem
    und schließenden Tag, aussieht? Oder wie ich das mit Java
    implementieren kann.
    XML Dateien schreiben kannst Du zur Not, indem Du Stings in ne Textdatei schreibst und das Porgramm sicherstellen läßt, daß da XML Konforme Dinge bei rauskommen. Als ich das das letzte Mal vor 6 Jahren machen mußte, war das die einzige brauchbare Möglichkeit, das mag sich geändert haben. XML Datein zu öffnen, Durch nen Parser zu hauen und den daraus endstehenden DOM-Tree (Wenn Du das mit nem DOM Parser machen willst) auszulesen / zu durchsuchen ist alles in der standard API mit drin und es gibt zig Tutorials dafür.

    • Antwort von nach einer Stunde 0 hilfreich
      Re^2: XML Darstellung mit Java

      ich implementiere grad eine XML Applikation. Ein Server
      erwartet folgende XML-Datei:
      Das ist undruchsichtig. Du schreibst also eine Applikation,
      die sich in irgendeiner Form mit XML auseinandersetzen muß.
      Geht das irgendwie genauer?
      Ich Implementiere einen WebServer, der auf HTTP-Anfragen reagiert, diese auswertet, und verschiedene XML-Dokumente zurück sendet. Dazu gehört auch dieses. <body xmlns="http://www.Alcatel-Lucent.fr/IPT/v1.1" >
      <register>
      <url id="config" value=” ” param=” ”/>
      <prop id="rights" value=" " />
      <prop id="key" value=" " />
      <timer id="SessionInactivity" value=" " />
      <timer id="TermStateDeltaPeriod" value=" " />
      <timer id="TermStateSynchroAllPeriod" value=" " />
      <timer id="NotifyScanPeriod" value=" " />
      <timer id="HTTPTimeout" value=" " />
      <http> </http>
      </register>
      </body>

      Leider bin ich mich grad erst am rein friemeln in
      XML-erstellung mit Java und weiß bis jetzt nur, wie man die
      ausführlichere Variante von XML erstellt.
      Kannst Du mal erklären was Du mit 'ausführlichem XML' meinst?
      Ausführlich heißt:
      <root>
      <element1> wert1 </element1>
      <element2>
      <element2.1> wert 2.1 </element2.1>
      <element2.2> wert 2.2 </element2.2>
      </element2>
      <element3> wert3 </element3>
      </root>

      Das meine ich damit. Also eindeutig zuweisbare Tag, welches geöffnet und wieder "ordentlich" geschlossen werden.


      Könnt Ihr mir sagen, wie das "ausführlich", also mit öffnendem
      und schließenden Tag, aussieht? Oder wie ich das mit Java
      implementieren kann.
      XML Dateien schreiben kannst Du zur Not, indem Du Stings in ne
      Textdatei schreibst und das Porgramm sicherstellen läßt, daß
      da XML Konforme Dinge bei rauskommen. Als ich das das letzte
      Mal vor 6 Jahren machen mußte, war das die einzige brauchbare
      Möglichkeit, das mag sich geändert haben. XML Datein zu
      öffnen, Durch nen Parser zu hauen und den daraus endstehenden
      DOM-Tree (Wenn Du das mit nem DOM Parser machen willst)
      auszulesen / zu durchsuchen ist alles in der standard API mit
      drin und es gibt zig Tutorials dafür.
      Ich wollte für Java nur die Befehle wissen, die Methoden, wie ich XML in verkürzter Form schreibe.

      mfg

      • Antwort von nach 7 Stunden 0 hilfreich
        Re^3: XML Darstellung mit Java

        Ich wollte für Java nur die Befehle wissen, die Methoden, wie
        ich XML in verkürzter Form schreibe.
        Dazu brauchst du doch im einfachsten Fall nur einen String zusammenbasteln, in den du die entsprechenden Werte einfügst...

        Beispiel:

        String xml = 
        "<body xmlns=\"http://www.Alcatel-Lucent.fr/IPT/v1.1\">"
        + "  <register>"
        + "    <url id=\"config\" "  
        +  "value=\"" + meinValue + "\" "
        +  "param=\"" + meinParam + "\"/>"
        + " .....";
        



        Alternativ kannst du natürlich auch den Weg über die Java DOM-API gehen:

        DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document doc = docBuilder.newDocument();
        Element root = doc.createElement("mein-root-element");
        Element otherElement = doc.createElement("anderes-element");
        otherElement.setAttribute("mein-attribut", "mein Wert");
        root.appendChild(otherElement);
        doc.appendChild(root);
        

        http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/pa...
        http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/pa...
        http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/...


        Falls du von dem XML-Dokument ein XML-Schema hast, kannst du auch den Weg über JAXB gehen und dir einfach Java-Objekte von dem XML erstellen lassen die du ganz normal befüllen kannst.
        http://de.wikipedia.org/wiki/Java_API_for_XML_Proces...

  2. Antwort von nach 12 Stunden 0 hilfreich
    Re: XML Darstellung mit Java

    Mit 'wie das "ausführlich" aussieht' nehme ich an meinst du:

    <body xmlns="http://www.Alcatel-Lucent.fr/IPT/v1.1" >
    <register>
    <url id="config" value=" " param=" "></url>
    <prop id="rights" value=" "></prop>
    <prop id="key" value=" "></prop>
    <timer id="SessionInactivity" value=" "></timer>
    <timer id="TermStateDeltaPeriod" value=" "></timer>
    <timer id="TermStateSynchroAllPeriod" value=" "></timer>
    <timer id="NotifyScanPeriod" value=" "></timer>
    <timer id="HTTPTimeout" value=" "></timer>
    <http></http>
    </register>
    </body>
    


    Oder hast du gedacht dass die Attribute dann plötzlich zu sub-tags werden? Attribute sind Attribute und Tags sind Tags. Es gibt keine kurzversion und langversion wo eines in das andere umgewandelt werden kann. Dabei würden komplett andere XML Dokumente entstehen die auch ganz unterschiedliche Schemas oder DTDs hätten, außer man hat eins das beide Formate drin hat, was eher unwahrscheinlich ist. Btw. ist die "Kurzversion" die du geschrieben hattest und die "Langversion" die ich oben geschrieben habe identisch. Wenn jemand das eine als valides XML Dokument akzeptiert, muss er auch das andere als valides XML Dokument akzeptieren, oder auch jede beliebige Mischform. Auch in der Schreibweise wie du sie gepostet hast ist jedes Tag "eindeutig zuweisbar" und und alle sind "geöffnet und wieder "ordentlich" geschlossen". Wäre das nicht der Fall, wäre es kein XML Dokument, denn das muss immer korrekt und wohlgeformt sein.

    Gruß
    Vampire

    • Antwort von nach 12 Stunden 0 hilfreich
      Re^2: XML Darstellung mit Java

      Argh, jetzt hats mir den Code zerlegt, sollte natürlich so aussehen:

      <body xmlns="http://www.Alcatel-Lucent.fr/IPT/v1.1" >
      <register>
      <url id="config" value=" " param=" "></url>
      <prop id="rights" value=" "></prop>
      <prop id="key" value=" "></prop>
      <timer id="SessionInactivity" value=" "></timer>
      <timer id="TermStateDeltaPeriod" value=" "></timer>
      <timer id="TermStateSynchroAllPeriod" value=" "></timer>
      <timer id="NotifyScanPeriod" value=" "></timer>
      <timer id="HTTPTimeout" value=" "></timer>
      <http></http>
      </register>
      </body>
      

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: XML Darstellung mit Java

      Der Vollständigkeit halber sollte noch erwähnt werden dass du auch eine Template Engine wie FreeMarker nutzen kannst um dein XML zu erzeugen. Dabei kannst du ganz genau definieren wie das Ergebnis aussehen soll, anhand eines Templates in dem du variable Teile hast die dann zur Laufzeit mit den konkreten werten ersetzt werden.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!