Jersey를 사용하여 직접 정렬 및 비 정렬화된 여러 JAXB bean이 있습니다.JAXB Collections (List <T>) 요소 이름에 대해 Camel Case 대신 Pascal Case 사용
예.
@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;
...
...
...
}
하나의 이슈 개체를 반환하는 GET 메서드를 만드는 경우. 여기
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
내가 성공적으로 처음에 대문자 "A"를 가지고 이슈 요소의 이름을 제어 할 수 있었다 : 그것은 제대로 XML을 생성합니다. 당신이 컬렉션이 낮은 경우 "A"가에 대한 외부 요소를 볼 수 있듯이
<artifacts>
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
</artifacts>
:
는 그러나, 나는 유물 개체의 컬렉션을 반환 get 메소드를 작성, 내가 끝낼. 우리 자신의 내부 표준을 준수하기 위해 저는 이것을 자본 "A"가되기를 바랍니다 - 인공물.
JAXB 내에서 정의 할 수있는 위치를 확인할 수 없습니다. 실제로 이것을 제어하는 Jersey 프레임 워크입니까?
컬렉션을 위해 생성 된 요소 이름을 제어 할 수 있습니까?
많은 감사,
제임스
1. AFAIK JAXB 마샬에 같은 (' 예를 들어,'ArrayList를) 컬렉션을 당신을 허용하지 않습니다. 하지만 컬렉션으로 속성을 가진 객체를 직렬화 할 수 있습니다. 2.나는 Jersey에 익숙하지 않지만 각각의 이슈를 개별적으로 직렬화하는 JAXB와 그 청크의 전체 문서를 구성하는 다른 레이어 (Jersey)가 있는지 또는 컬렉션을 위해 XML을 처리하는 JAXB인지 여부를 알아야한다고 생각한다. 3. 일부 코드를 게시하거나 (어딘가에 게시 할 수 있습니까?) 어떻게 호출 할 수 있습니까? 나는 간단한 JAXB로 시도했지만 이것은 당신의 설정을 모방하지 않는다. –
나는 당신이 옳다고 생각한다. 저지는 JAXB 빈 컬렉션을 마샬링/언 마샬링 할 수있게 해준다. (저지 사용자 그룹에서도 이것을 제기했다.) 따라서 컬렉션을위한 XML 요소 이름 뒤에 이름이나 규칙을 설정할 수있는 몇 가지 구성이 필요합니다. 우리는 기다려 볼 것입니다. 예를 들어, 새로운 JAXB bean을 생성하는 방법이 있습니다. 하나의 컬렉션 멤버가있는 "Artifacts"를 예로 들어 보겠습니다. List 인공물 - 많은 가치를 추가하지 않는 클래스를 소개하지만 느낀다. 도와 주셔서 감사합니다. James –
jallch