[.Net webservice / WDSL] min/maxOccurs=1voor strings*

Pagina: 1
Acties:

Onderwerpen


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Ik heb nu al de truc met "Specified" ontdekt om bepaalde parameters zoals bools en datums optioneel te maken. Hoe kan ik nu er voor zorgen dat zonder isnullable=true te gebruiken ik toch de aanvrager dwing een bepaalde string parameter in te vullen?

iOS developer


  • whoami
  • Registratie: December 2000
  • Laatst online: 12-09 23:07
Ehm, ik versta eigenlijk maar de helft van je vraag (Ik weet wat je met die Specified - truuk bedoeld, nl. ervoor zorgen of een bepaalde property al dan niet geserializeert wordt).
Echter, je topic start is nogal karig. Ik ben er zeker van dat je op de hoogte bent van onze Quickstart en van ons beleid hier mbt topistarts , dus ik zou zeggen: doe er wat aan en verduidelijk je TS.

Eerst en vooral door je vraag / probleem duidelijker te specifieren: wie is de aanvrager ? Op welk niveau wil je dwingen dat een bepaalde string parameter ingevuld moet worden ?
Wat heb je al geprobeerd , etc .... you know the drill.

https://fgheysels.github.io/


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Je vult normaliter een WSDL automatisch vanuit een klasse waarbij alle public properties terugkomen in de WSDL. Datums, booleans en numerieke waardes (even uit mijn blote hoofd) zijn standaard verplicht, een string standaard niet. Ook kun je bij de meeste properties niet null meesturen.

Dus er zijn specifieke hints die je in zo'n klasse kunt toevoegen om dat soort dingen te beinvloeden, bijvoorbeeld *Specified toevoegen als je toch een datetime optioneel wilt hebben, of [xmlelement(isnullable=true)] als het en nullable moet zijn en minoccurs op 1 moet staan.

Nu wil ik een string waarde verplicht meegestuurd zien. minoccurs op 1 dus. En niet door hem nullable te maken.

------

Als het enigszins wazig over komt is omdat het ook vrij onlogisch in elkaar lijkt te zitten......maar waarschijnlijk zal eenieder die vaker met dit bijltje gekapt heeft de situatie wat makkelijker herkennen.

[ Voor 13% gewijzigd door BikkelZ op 04-09-2008 14:27 ]

iOS developer


Verwijderd

Ik snap ook vrij weinig van je vraag.
Bedoel je dat ze verplicht een waarde moeten invullen?
Is daar juist niet de parameter isnillable voor?

Anders kun je ook restricties gebruiken.
code:
1
2
3
4
<xs:restriction base="xs:string">
 <xs:length value="10" fixed="true"/>
 <xs:pattern value="NL[0-9]{9}B[0-9]{2}"/>
</xs:restriction>

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Het ligt eraan hoe je het precies doet. In WCF zou je het zoiets doen
C#:
1
2
3
4
5
6
[DataContract]
class MyClass
{
    [DataMember(IsRequired=true)]
    public string ThisIsRequired { get; set; }
}

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Ow, nu snap ik wat je wilt :D

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Ja zonder custom WSDL dus ;)

iOS developer


  • whoami
  • Registratie: December 2000
  • Laatst online: 12-09 23:07
Hmm, wat je eens kunt doen is zelf een xsd maken waarin je minOccurs=1 gebruikt, en dan met de xsd utility de class laten genereren, en dan eens zien hoe die gegenereerde class er uit ziet ?

https://fgheysels.github.io/

Pagina: 1