2009-10-19 7 views
6

Mam klienta, który jest nakazującą że moi required elementy strunowe mieć nillable="false", obecnie wszystkie sznurki w WSDL wyjdzie będzie nillable="true", tj:WCF: Ciąg Elementów nillable = „false”

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

jak mogę zmień nillable="false"?!? Podam wszelkie sugestie, jak to zrobić? Czy jestem pierwszą osobą, która do tego doszła?

+0

Powiązane: http://stackoverflow.com/questions/9039850/wcf-wsdl-nillable-attributes/21266714#21266714. – Steven

Odpowiedz

1

Jak ten element jest zdefiniowany w umowie o dane?

Jeśli nie jest już zrobione, spróbuj dodać IsRequired=true klauzuli do atrybutu zarejestrował dane:

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

    [DataMember(IsRequired=True)] 
    string username; 

    ..... 
} 

Poza tym, nie jestem świadomy jakikolwiek sposób wpływać na XSD są renderowane z danych WCF umowy, bez pisania własnego rozszerzenia WsdlExporter (co jest całkowicie możliwe - po prostu wydaje się nieco przesadzone tutaj).

+0

Cześć Marc. Dzieki za sugestie. Próbowałem IsRequired = True, który usuwa tylko minOccurs = "0". – stevenrosscampbell

+0

@Steven: Bałem się tego :-( –

+0

Witaj Marc, Dobre wieści, już miałem WsdlExporter w mojej usłudze wcf do spłaszczenia wsdl, więc było całkiem łatwe zaimplementowanie tego w rozszerzeniu WsdlExporter. Dzięki za sugestię, bez tego nie sądzę, bym poszedł w dół tej ulicy. (Uwaga: użyłem http://blogs.msdn.com/stan_kitsis/archive/2005/08/06/448572.aspx dla Zwiedzanie XmlSchema, a gdy znaleziono odpowiedni element, udało mi się przejść na el.IsNillable = false i zadziałało Jeszcze raz dziękuję Steven – stevenrosscampbell

Powiązane problemy