Frage

Ich habe eine Super abstrakte Klasse:

@XmlSeeAlso({AndQuery.class, OrQuery.class, NotQuery.class, PropertyQuery.class, MultiQuery.class})
@XmlRootElement
public abstract class Query {

Diese Klasse hat eine Unterklasse:

public abstract class MultiQuery extends Query {

und diese letzte Super-Klasse hat auch zwei Unterklassen:. AndQuery und OrQuery mit @XmlRootNode kommentierten

ich auch eine PropertyQuery Klasse haben, die Abfrage Super-Klasse erweitert.

Alles, was es ist in Ordnung, wenn ich einen Beitrag wie folgt tun:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                        <orQuery>
                            <query xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="propertyQuery">
                                <propertyName>SenderContractNumber</propertyName>
                                <propertyValue>D*</propertyValue>
                            </query>
                           <query xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="propertyQuery">
                                <propertyName>SenderContractNumber</propertyName>
                                <propertyValue>A*</propertyValue>
                            </query>
   <query xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="andQuery">
                            <query xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="propertyQuery">
                                <propertyName>documentNumber</propertyName>
                                <propertyValue>222</propertyValue>
                            </query>
                            <query xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="propertyQuery">
                                <propertyName>documentNumber</propertyName>
                                <propertyValue>222</propertyValue>
                            </query>

</query>
</orQuery>

Was ich will, ist eine XML so POST:

<orQuyery>
     <query>...</query>
     <andQuery>
         <query>...</query>
     </andQuery>
</orQuery>

insteand von dem, was ich oben setzen.

Können Sie mir bitte sagen, was ich zu annotieren, weil meine OrQuery Klasse erwartet nur um zu sehen, Abfrage-Knoten nicht und!

Bitte helfen ...

Vielen Dank

War es hilfreich?

Lösung

Es klingt wie Sie viele Ihrer Fragen enthalten weitere Fragen zu haben, versuchen. Sagen wir einfach, Sie jede MultiQuery wollen eine Liste von anderen Abfragen enthalten.

Wenn Sie nur eine Liste der Typ-Abfrage haben, JAXB in der Lage zu bestimmen nicht, welche Arten von Fragen, die Sie in die Liste setzen wollen. Sie können alle Optionen angeben, für welche die Liste enthält. Auf diese Weise das Schema, das erzeugt wird, eine der Arten spezifizierter zu ermöglichen.

Beispiel:

@XmlElements({
    @XmlElement(type=AndQuery.class),
    @XmlElement(type=OrQuery.class),
    @XmlElement(type=NotQuery.class),
    @XmlElement(type=PropertyQuery.class),
    @XmlElement(type=MultiQuery.class)
})
List<Query> queries;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top