Baalzamon
2010-06-20, 19:53:00
Hallo,
ich möchte gerne meine XML-Laderoutine verallgemeinern. Dazu wäre es mir sehr genehm wenn ich mit JAXB einfach aus einem übergeordneten XML-File nur eine bestimmte Sequenz von Elementen ziehen könnte (die in jeder XML-Datei vorhanden ist) ohne das ich die darüberliegende XML-Struktur kennen muss.
Sagen wir mal ich hätte ein generisches Attribut-Tupel
<element name="GenericAttribute" type="des:GenericAttribute"></element>
<complexType name="GenericAttribute">
<attribute name="value" type="string"></attribute>
<attribute name="name" type="string"></attribute>
</complexType>
und zwei XML-Typen die diese benutzen
<include schemaLocation="Exchange.xsd"></include>
<include schemaLocation="GenericAttribute.xsd"></include>
<element name="ElementA">
<complexType>
<sequence>
<sequence>
<element name="attribute" type="des:GenericAttribute" maxOccurs="unbounded" minOccurs="0"></element>
</sequence>
<element name="incoming" type="des:Exchange" maxOccurs="1" minOccurs="0"></element>
</sequence>
</complexType>
</element>
und
<include schemaLocation="Exchange.xsd"></include>
<include schemaLocation="GenericAttribute.xsd"></include>
<element name="ElementB">
<complexType>
<sequence>
<sequence>
<element name="attribute" type="des:GenericAttribute" maxOccurs="unbounded" minOccurs="0"></element>
</sequence>
<element name="outgoing" type="des:Exchange" maxOccurs="1" minOccurs="0"></element>
</sequence>
</complexType>
</element>
Ich habe per XJC die entsprechenden Klassen erstellen lassen (GenericAttribute, ElementA und ElementB) und Objekte ElementA und ElemntB kann ich auch schön einzeln per Unmarshaller erstellen und dann auf die Attribute zugreifen.
Nun würde ich aber gerne zB nur die Attribute auslesen, ohne das ich weiss, ob es sich dabei um Klasse A oder B handelt.
Ist das möglich und wenn ja wie?
ich möchte gerne meine XML-Laderoutine verallgemeinern. Dazu wäre es mir sehr genehm wenn ich mit JAXB einfach aus einem übergeordneten XML-File nur eine bestimmte Sequenz von Elementen ziehen könnte (die in jeder XML-Datei vorhanden ist) ohne das ich die darüberliegende XML-Struktur kennen muss.
Sagen wir mal ich hätte ein generisches Attribut-Tupel
<element name="GenericAttribute" type="des:GenericAttribute"></element>
<complexType name="GenericAttribute">
<attribute name="value" type="string"></attribute>
<attribute name="name" type="string"></attribute>
</complexType>
und zwei XML-Typen die diese benutzen
<include schemaLocation="Exchange.xsd"></include>
<include schemaLocation="GenericAttribute.xsd"></include>
<element name="ElementA">
<complexType>
<sequence>
<sequence>
<element name="attribute" type="des:GenericAttribute" maxOccurs="unbounded" minOccurs="0"></element>
</sequence>
<element name="incoming" type="des:Exchange" maxOccurs="1" minOccurs="0"></element>
</sequence>
</complexType>
</element>
und
<include schemaLocation="Exchange.xsd"></include>
<include schemaLocation="GenericAttribute.xsd"></include>
<element name="ElementB">
<complexType>
<sequence>
<sequence>
<element name="attribute" type="des:GenericAttribute" maxOccurs="unbounded" minOccurs="0"></element>
</sequence>
<element name="outgoing" type="des:Exchange" maxOccurs="1" minOccurs="0"></element>
</sequence>
</complexType>
</element>
Ich habe per XJC die entsprechenden Klassen erstellen lassen (GenericAttribute, ElementA und ElementB) und Objekte ElementA und ElemntB kann ich auch schön einzeln per Unmarshaller erstellen und dann auf die Attribute zugreifen.
Nun würde ich aber gerne zB nur die Attribute auslesen, ohne das ich weiss, ob es sich dabei um Klasse A oder B handelt.
Ist das möglich und wenn ja wie?