2012-05-28 5 views
0

복잡한 유형이 포함 된 List 개의 객체를 반환하는 우리 클라이언트의 asp.net 웹 서비스를 만들었습니다. 클라이언트는 데이터를 정상적으로 수신하고 있습니다.null 요소가 응답 XML (SOAP 웹 서비스)에 표시되지 않습니다.

그는 모든 태그가 항상 존재하는 것은 아니지만 주목했습니다. 예를 들어, 내 목록에 3 개의 객체를 반환하면 객체 A B와 C와 C는 반환 할 때 null입니다. 이 표시됩니다 :

<A>data</A> 
<B>data</B> 

내가하고자하는 경우 다음과 같은 보여주기 :

<A>data</A> 
<B>data</B> 
<C/> 

또는 적어도 : 기본적으로

<A>data</A> 
<B>data</B> 
<C></C> 

, 나는 유지하기 위해 XML의 구조를 원하는 어떤 데이터가 사용 가능하고 어떤 데이터가 널 (null)인지에 관계없이 동일합니다.

제안 사항?

감사합니다.

+0

이 게시물 : http://stackoverflow.com/questions/9639312/can-you-add-additional-properties-to-net-serialized-null-values ​​네임 스페이스에 대해 이야기하지만 동일한 속성을 사용해야합니다. –

+0

스키마의 C 요소에 minOccurs = "0"속성이 있습니까? – Ritesh

답변

1

Soap spec. 상태 :

NULL 값 또는 기본값이 접근 요소의 생략에 의해 표현 될 수있다. NULL 값은 속성 'xsi : null'(값이 '1') 또는 다른 응용 프로그램 종속 속성 및 값을 포함하는 접근 자 요소에 의해 표시 될 수도 있습니다 (MAY).

불행히도 당신을 위해 불행히도 MS는이 상황에 대한 첫 번째 옵션을 선택했습니다. 어떻게 당신은 빈 문자열 및 널 (null) 사이의 차이 때문에

<C></C> 

: 한편

이 같은 NULL 값을 만들 수 없습니다?

이 옵션

<C/> 

유망 보인다. 귀하의 서비스가 XMLSerializer를 사용하여 데이터를 직렬화한다고 생각합니다. this post을 확인하십시오. 어쩌면 개체에 IXMLSerializable을 구현하고 데이터에 사용자 지정 xml을 제공 할 수 있습니다.

관련 문제