2009-10-19 3 views
6

required 문자열 요소가 nillable="false"을 가지고 강제하는 클라이언트가 현재 WSDL에있는 모든 문자열, 의지 nillable="true" IE 나올 :WCF : 문자열 요소 nillable로 = "false"를

<xs:element name="username" nillable="true" type="xs:string" /> 

을 내가 어떻게 할 수 nillable="false"을 변경 하시겠습니까?!? 이 작업을 수행하는 방법에 대한 제안은 언제든지 받겠습니까? 나는 이것에 빠진 최초의 사람인가?

+0

관련 항목 : http://stackoverflow.com/questions/9039850/wcf-wsdl-nillable-attributes/21266714#21266714. – Steven

답변

1

데이터 계약에서이 요소는 어떻게 정의됩니까?

아직하지 않다면, 데이터 멤버 속성에 IsRequired=true 절을 추가하십시오 :, 당신의 WCF 데이터에서 렌더링되는 XSD에 영향을 미칠 수있는 방법을 알고 아니에요보다

[DataContract] 
class YourDataStructure 
{ 
    ...... 

    [DataMember(IsRequired=True)] 
    string username; 

    ..... 
} 

기타 계약, 자신 만의 WsdlExporter 확장을 작성하는 것 (이것은 완전히 가능합니다 - 여기 조금 과장된 것 같습니다).

+0

안녕하세요. Marc. 제안 해 주셔서 감사합니다. IsRequired = True를 시도했지만 minOccurs = "0"만 제거합니다. – stevenrosscampbell

+0

@Steven : 나는 그것을 두려워했다 .--( –

+0

안녕하세요 Marc, 좋은 소식은 wsdl을 병합하기 위해 wcd 서비스에서 이미 WsdlExporter를 사용했기 때문에 실제로 WsdlExporter 확장에서 구현하기가 쉽습니다. 제안 해 주셔서 감사합니다. 그 애비뉴가 없으면 내가 그 길을 건너 갔을 것이라고 생각하지 않습니다. (참고 : http://blogs.msdn.com/stan_kitsis/archive/2005/08/06/448572.aspx에 XmlSchema를 걷고 적절한 요소가 발견되면 el.IsNillable = false로 갈 수 있었고 효과가있었습니다 Steven – stevenrosscampbell

관련 문제