1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Transformation vom XML zu XML

Dieses Thema im Forum "XML Technologien" wurde erstellt von oraclin25, 16. Januar 2014.

  1. oraclin25

    oraclin25 Erfahrenes Mitglied

    Hallo zusammen,

    ich bekomme ein XML-File in einer beliebiger Struktur. Dieses XML-File möchte ich in ein XML-File mit einer fest definierten XML-Schema:

    Code (Text):
    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    3.            xmlns="http://meinnamespace.meinefirma.de"
    4.            targetNamespace="http://meinnamespace.meinefirma.de"
    5.            elementFormDefault="qualified">
    6.    <xs:element name="adressen">
    7.    <xs:complexType>
    8.       <xs:sequence>
    9.          <xs:element name="adresse" minOccurs="0" maxOccurs="unbounded">
    10.          <xs:complexType>
    11.             <xs:sequence>
    12.                <xs:element name="firma" minOccurs="0"> <xs:complexType /> </xs:element>
    13.                <xs:element name="name"  type="xs:string" />
    14.                <xs:choice>
    15.                   <xs:element name="strasse"  type="xs:string" minOccurs="0" />
    16.                   <xs:element name="postfach" type="xs:positiveInteger" minOccurs="0" />
    17.                </xs:choice>
    18.                <xs:element name="plz" type="xs:positiveInteger" minOccurs="0" />
    19.                <xs:element name="ort" type="xs:string" minOccurs="0" />
    20.             </xs:sequence>
    21.             <xs:attribute name="datum" type="xs:date" />
    22.          </xs:complexType>
    23.          </xs:element>
    24.       </xs:sequence>
    25.    </xs:complexType>
    26.    </xs:element>
    27. </xs:schema>
    Ein gültiges XML-Dokument zu dem obigen Schema sieht beispielsweise so aus:
    Code (Text):
    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <adressen xmlns="http://meinnamespace.meinefirma.de"
    3.           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4.           xsi:schemaLocation="http://meinnamespace.meinefirma.de AdrSchema.xsd">
    5. <adresse datum="2009-11-11">
    6.       <firma />
    7.       <name>Ich AG</name>
    8.       <postfach>4711</postfach>
    9.    </adresse>
    10. </adressen>
    Ich kriege nun ein XML-File in einer BELIEBIGEN Struktur(es können auch völlig im Schema vorgegebene Elemente/Tags enthalten). Ich würde gerne dieses beliebige XML-File in ein XML-File, konformiert nach dem obigen Schema. Nicht vorhandene Tags werden einfach weggelassen.

    Nun stehen dazu einige Tutorials im Netz, aber alle um XML --> Java-Objekt oder umgekehrt. Ich konnte leider kein Tutorial finden, wie ich XML --> XML programmiere. Da bei Java ja alles Objekte ist, werde ich wohl nicht drum herum kommen, eine Klasse basierend auf dem obigen Schema zu schreiben:

    Code (Text):
    1. import java.util.List;
    2. import javax.xml.bind.annotation.*;
    3.  
    4. @XmlAccessorType(XmlAccessType.FIELD)
    5. public class Adresse {
    6.  
    7.     private String firma;
    8.     private String name;
    9.     private String strasse;
    10.     private String postfach;
    11.     private String plz;
    12.     private String ort;
    13.     private date datum;
    14.  
    15. }
    Meine Idee wäre: ich binde das beliebige XML-File mit der Klasse, und schreibe dann die Objekte daraus in das "richtige" XML-File. Jetzt weiss ich aber nicht, wie ich die lediglich betroffenen Tags aus dem beliebigen XML-File rausfische.

    Hat jemand eine Idee, was dazu der Best-Practise ist? Vielen Dank.

    Viele Grüße aus Rheinland,

    Eure Ratna
     
Die Seite wird geladen...