Mam wiele fasoli JAXB, które są bezpośrednio rozmieszczane i odfiltrowywane za pomocą sieci Jersey.Kolekcje JAXB (lista <T>) Użyj przypadku Pascala zamiast wielbłądzich dla nazw elementów
E.g.
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Artifact", propOrder = {
"artifactId",
"artifactType",
"contentHash"
})
@XmlSeeAlso({
EmailArtifact.class,
ManagedDocArtifact.class
})
@XmlRootElement(name ="Artifact")
public class Artifact {
protected String artifactId;
protected String artifactType;
protected String contentHash;
...
...
...
}
Jeśli utworzę metodę GET, która zwróci pojedynczy obiekt artefaktu. To właściwie produkuje XML:
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
Tu udało mi się skutecznie kontrolować nazwę elementu Artifact mieć kapitałową „A” na początku.
jednak utworzyć metody GET, która zwraca kolekcję obiektów artefakt I skończyć z:
<artifacts>
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
</artifacts>
Jak widać zewnętrzną elementem kolekcja ma małe litery „A”. Aby dostosować się do naszego wewnętrznego standardu, chciałbym, aby było to wielkie "A" - Artefakty.
Nie widzę, gdzie można to zdefiniować w ramach JAXB, czy faktycznie to struktura Jersey kontroluje to?
Czy możemy kontrolować nazwę elementu wygenerowaną dla kolekcji?
Dziękujemy,
James
1. AFAIK JAXB nie pozwalają na Marshall zbiór (na przykład '' ArrayList) jako takie. Ale pozwala serializować obiekt, który ma kolekcję jako właściwość. 2.Nie znam Jersey, ale myślę, że musisz wiedzieć, czy to JAXB, który serializuje każdy artefakt osobno, a inna warstwa (Jersey) buduje cały dokument kawałków, czy to JAXB, który tworzy XML dla kolekcji. 3. Czy możesz napisać jakiś kod (lub opublikować go gdzieś) - jak go nazwać? Próbowałem z prostym JAXB, ale to nie naśladuje twojej konfiguracji. –
Podejrzewam, że masz rację - to jest Jersey, który pozwala mi organizować i usuwać kolekcję fasoli JAXB (podniosłem to również z grupą użytkowników z Jersey). Dlatego mam nadzieję, że istnieje pewna konfiguracja, która pozwala mi ustawić nazwę lub reguły kryjące się za nazwą elementu XML dla kolekcji ... Musimy poczekać i zobaczyć. Jak wskazujesz, rozwiązaniem jest utworzenie nowego komponentu bean JAXB - powiedzmy "Artefakty", który ma jednego elementu kolekcji, np. Lista artefaktów - to wydaje mi się, że wprowadzam całą masę zajęć, które nie dodają wiele wartości. Dzięki za pomoc. James –
jallch