Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[JAXB] Reihenfolge bei mehrfach auftretenden Elementen

51 views
Skip to first unread message

Peter Schütt

unread,
Jun 18, 2012, 3:23:35 AM6/18/12
to
Hallo,

gegeben ist eine XML-Schema-Definitionen (Ausschnitt):

<xsd:element name="validlongs" type="xsd:long" minOccurs="1"
maxOccurs="unbounded">

Eine mögliche zugehörige XML-Datei (Ausschnitt) sieht so aus:

<validlongs>1</validlongs>
<validlongs>10</validlongs>
<validlongs>100</validlongs>
<validlongs>1000</validlongs>
<validlongs>10000</validlongs>
<validlongs>100000</validlongs>
<validlongs>1000000</validlongs>
<validlongs>10000000</validlongs>
<validlongs>100000000</validlongs>
<validlongs>1000000000</validlongs>

Kann ich davon ausgehen, daß die Reihenfolge der XML-Knoten nicht
verloren geht?

Also, ich verwende JAXB (Java), um diese XML-Dateien einzulesen und
JAX erzeugt aus dem Schema folgendes:

@XmlElement(type = Long.class)
protected List<Long> validlongs;

Kann ich davon ausgehen, daß in dieser Liste die Long-Werte in der
selben Reihenfolge wie in der XML-Datei vorliegen?

Wenn nein, wie könnte ich das gewährleisten?

Danke für alle Hinweise und Tips.

Ciao
Peter Schütt

Martin Honnen

unread,
Jun 18, 2012, 5:25:17 AM6/18/12
to
Peter Schütt wrote:

> gegeben ist eine XML-Schema-Definitionen (Ausschnitt):
>
> <xsd:element name="validlongs" type="xsd:long" minOccurs="1"
> maxOccurs="unbounded">
>
> Eine mögliche zugehörige XML-Datei (Ausschnitt) sieht so aus:
>
> <validlongs>1</validlongs>
> <validlongs>10</validlongs>
> <validlongs>100</validlongs>
> <validlongs>1000</validlongs>
> <validlongs>10000</validlongs>
> <validlongs>100000</validlongs>
> <validlongs>1000000</validlongs>
> <validlongs>10000000</validlongs>
> <validlongs>100000000</validlongs>
> <validlongs>1000000000</validlongs>
>
> Kann ich davon ausgehen, daß die Reihenfolge der XML-Knoten nicht
> verloren geht?

Mit XML ist (im Gegensatz zu Attributen) bei Elementen die Reihenfolge
wichtig, daher kann ich mir nicht vorstellen, dass diese bei der
Benutzung von Objektserialisierung oder Deserialisierung nicht gewahrt wird.

Aber mit JAXB-Details kenne ich mich nicht aus.

--

Martin Honnen --- MVP Data Platform Development
http://msmvps.com/blogs/martin_honnen/


Daniel Urban

unread,
Jun 18, 2012, 1:31:50 PM6/18/12
to
"Peter Schütt"
[Beispiel]
> @XmlElement(type = Long.class)
> protected List<Long> validlongs;
>
> Kann ich davon ausgehen, daß in dieser Liste die Long-Werte in der
> selben Reihenfolge wie in der XML-Datei vorliegen?

Sinnvoll wäre, wenn Du dazu die Spezifikation lesen würdest. Das wird sicher
irgendwo dokumentiert sein. Noch sinnvoller wäre es, wenn Du es einfach kurz
ausprobierst, so schwierig sollte das nicht sein.

Mir ist bei der Verwendung von JAXB indirekt über JAXWS noch kein Problem
aufgefallen.

Gruß,

Daniel

FUP: de.com.lang.java da es nur eine Java-Frage ist.

Wolfgang May

unread,
Jun 19, 2012, 6:37:14 AM6/19/12
to
In de.comp.text.xml Daniel Urban <urba...@cs.tu-berlin.de> wrote:
> "Peter Schütt"
> [Beispiel]
>> @XmlElement(type = Long.class)
>> protected List<Long> validlongs;
>>
>> Kann ich davon ausgehen, daß in dieser Liste die Long-Werte in der
>> selben Reihenfolge wie in der XML-Datei vorliegen?
>
> Sinnvoll wäre, wenn Du dazu die Spezifikation lesen würdest. Das wird sicher
> irgendwo dokumentiert sein.

Es sollte, ja.
Nach meiner Erfahrung sind solch Dokumentationen aber oft nicht
so vollstaendig und explizit, wie man es erwarten wuerde.

> Noch sinnvoller wäre es, wenn Du es einfach kurz
> ausprobierst, so schwierig sollte das nicht sein.

Das halte ich fuer eine ganz schlechte Idee. Daraus koennte man
nur schliessen, dass es mit der aktuellen Version der verwendeten
Software fuer den aktuellen Fall geht.

Falls eine einzige Erfahrung genuegen soll: in den Beispielen,
die ich im Kurs verwende ist es so.

> Mir ist bei der Verwendung von JAXB indirekt über JAXWS noch kein Problem
> aufgefallen.

In der Regel sollte es so sein. Fuer einfache Java-Tools, die XML aus
einem File einlesen, direkt z.B. per SAX/StAX verarbeiten (oder von
mir aus auch das DOM erzeugen), und das Ergebnis erzeugen, wird es aus
Einfachheitsgruenden auch immer zutreffen.

Aber ... was spricht dagagen, JAXB auf einer XML-Datenbank anzuwenden,
bei der XML in einem Column-Store abgelegt und indiziert ist? Da
ergibt es sich nicht auf natuerliche Weise, dass die Ordnung auch erhalten
bleibt.

Da kann man ggf sein blaues Wunder erleben.

Wolfgang
0 new messages