Jersey kullanarak doğrudan marshalled ve unmarshalled bir dizi JAXB fasulye var.JAXB Koleksiyonlar (Liste <T>) Element Adları için Camel Case yerine Pascal Case kullanın
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;
...
...
...
}
Tek bir nesne nesnesini döndüren bir GET yöntemi oluşturursam. İşte
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
başarıyla başında büyük harf "A" olması Artifakt elemanın adını kontrol etmek mümkün olmuştur: O XML doğru üretir. Eğer koleksiyonu küçük harf "A" vardır için dış eleman görebileceğiniz gibi
<artifacts>
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
</artifacts>
:
Ancak, yapay nesnelerin koleksiyonunu döndüren bir GET yöntemini oluşturmak, ben ile bitirmek. Kendi iç standartlarımıza uymak için bunun bir "A" - Artefaktlar olmasını istiyorum.
JAXB içinde tanımlamanın nerede mümkün olduğunu göremiyorum, aslında bunu kontrol eden Jersey çerçevesi mi?
Koleksiyonlar için oluşturulan öğe adını kontrol edebilir miyiz?
Çok teşekkürler,
James
1. AFAIK JAXB marshall'a gibi (' örneğin' ArrayList) bir koleksiyon sizi izin vermez. Ancak, bir koleksiyon olarak bir mülk olan bir nesneyi serileştirmenize izin verir. 2.Jersey'le aşina değilim, ama sanırım her bir nesneyi ayrı ayrı serileştiren JAXB olup olmadığını ve diğer bazı katmanların (Jersey) parçaların tüm belgesini oluşturduğunu ya da koleksiyon için XML'yi sağlayan JAXB olduğunu bilmeniz gerekir. 3. Bazı kodları gönderebilir misiniz (veya bir yerde yayınlayabilirsiniz) - nasıl adlandırılır? Basit JAXB ile çalışıyordum ama bu sizin kurulumunuzu taklit etmiyor. –
Haklı olduğunuzu sanıyorum - bu JAXB fasulyelerinin koleksiyonunu marshall/unmarshall'e izin veren Jersey'tir (bunu Jersey kullanıcı grubuyla da geliştirdim). Bu yüzden koleksiyonlar için XML element isminin arkasındaki ismi veya kuralları belirlememe izin veren bir yapılandırma olduğunu umuyorum ... Bekleyelim ve göreceğiz. İşaret ettiğin gibi, yeni bir JAXB fasulyesi yaratmak için bir geçici çözüm var. Tek bir koleksiyon üyesi olan "Artifacts" diyelim. eserlerinin listesi - bu, çok fazla değer eklemeyen bir sürü sınıf tanıttığını düşünüyorum. Yardım için teşekkürler. James –
jallch