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:
Ein gültiges XML-Dokument zu dem obigen Schema sieht beispielsweise so aus:
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:
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
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:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://meinnamespace.meinefirma.de"
targetNamespace="http://meinnamespace.meinefirma.de"
elementFormDefault="qualified">
<xs:element name="adressen">
<xs:complexType>
<xs:sequence>
<xs:element name="adresse" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="firma" minOccurs="0"> <xs:complexType /> </xs:element>
<xs:element name="name" type="xs:string" />
<xs:choice>
<xs:element name="strasse" type="xs:string" minOccurs="0" />
<xs:element name="postfach" type="xs:positiveInteger" minOccurs="0" />
</xs:choice>
<xs:element name="plz" type="xs:positiveInteger" minOccurs="0" />
<xs:element name="ort" type="xs:string" minOccurs="0" />
</xs:sequence>
<xs:attribute name="datum" type="xs:date" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Ein gültiges XML-Dokument zu dem obigen Schema sieht beispielsweise so aus:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<adressen xmlns="http://meinnamespace.meinefirma.de"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://meinnamespace.meinefirma.de AdrSchema.xsd">
<adresse datum="2009-11-11">
<firma />
<name>Ich AG</name>
<postfach>4711</postfach>
</adresse>
</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:
import java.util.List;
import javax.xml.bind.annotation.*;
@XmlAccessorType(XmlAccessType.FIELD)
public class Adresse {
private String firma;
private String name;
private String strasse;
private String postfach;
private String plz;
private String ort;
private date datum;
}
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