2016-06-21 1 views
0

im 프로젝트에서 작업 중입니다. A 일부 속성을 가진 Java Bean이 있습니다. 나는이 같은 태그 @XmlElement와 각 속성 표시 :이 널 (null)에 해당하는 경우에도, 나에게 태그를 보여줍니다 Java에서 XML, @XmlElement를 표시하는 방법 Empty Valuein XML로 공평 Java Bean Null을 표시하는 방법 (솔루션 찾음)

@XmlElement(name="id", nillable = true) 
private String test; 

내가이 "nillable로"넣어하지만 null의 경우는 XML로 나에게 메시지를 표시

이 널 때
<id xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> 

는하지만 난이

<id></id> 

처럼 만 태그와 빈 값을 보여주고 싶은 그리고 난이 작업을 수행하는 방법을 모르겠어요. 나는 수색했다. 그러나 나는 찾지 않았다. 그래서 내가 묻고있는 thats.

기타 1 왜, 속성이없는 XML을 생성 할 수 있습니까? 왜냐하면 내 XML 때문에 아무 것도 안쪽에 빈 태그를 생성해야하기 때문에 그냥 태그를 보여주기 위해이 태그를 사용하지 않을 경우 태그와 태그를 사용하지 않아도됩니다.

감사합니다! 내가

--------- 솔루션 ----------

안녕, 얘들 아, 난이 발견

import javax.xml.bind.annotation.XmlAccessType; 
import javax.xml.bind.annotation.XmlAccessorType; 
import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlRootElement(name="test") 
사용

수입품과 일부 설정 해결책. 누군가가 같은 문제에 빠지면 공유하고 싶습니다. 클래스의 속성을 비어있는 것으로 선언합니다. String personName = "";

이 값을 변경하지 않고 태그가 XML로되어 있지만 비어있는 경우에만 Getters and Setters를 만들 필요가 없습니다.

참고 :이 작업을 수행하려면 클래스에 @XmlAccessorType (XmlAccessType.FIELD)을 사용해야합니다. 감사합니다. Bye

+0

'@XmlElement'주석에 'required = true'를 추가하려고 했습니까? –

답변

1

XML에 null 값을 나타내는 데는 두 가지 방법이 있습니다.

하나의 옵션은 설명 된 xsi:nil입니다. 속성에 빈 태그를 추가하기 만하면 은 null 값을 유지하는 것으로에 주석을 추가합니다. 이 양식은 nillable = true으로 속성에 주석을 추가하면 JAXB에 의해 생성됩니다.

en 빈 태그는 빈 문자열이있는 태그와 같지 않습니다. 나중에 더 자세히 설명합니다.

또 다른 옵션은 그 속성을 전혀 나타내지 않습니다. XML의 속성에 대한 태그가 없습니다. JAXB은 Java 코드에 nillable = true이라는 주석을 달지 않지만 속성에 여전히 null 값이있는 경우이 접근법을 기본적으로 사용합니다.

그리고 그게 전부입니다.

이제 원하는대로.렌더링 <id></id>은 기본적으로 빈 문자열을 보유하는 id 특성이 있음을 의미합니다. 이 값이 null 값 (예 : Oracle의 PL/SQL)과 같을 때 아마 언어를 찾을 수 있지만 분명히 Java에서는 null 값과 동일하지 않습니다. id이 자바 빈에 long 또는 int (또는 비 문자열 형)로 모델링하면

또한, 파서는 다시 빈 인스턴스에 같은 XML을 해제 직렬화되지 않습니다.