J'ai un XSD: que j'ai converti en une classe C # à l'aide de xsd.exe v2.0.50727.3615 qui génère le code comme suit p> Je retourne un objet AA dans mon service Web, qui produit cet extrait dans la description du service p> le changement de minoccrus = "1" dans le XSD à minoccurs = "0" sur la WSDL générée automatiquement provoque une douleur à la machine à la machine de l'autre extrémité du système. P> Je pouvais bien sûr fournir à la main WSDL édité à la main pour eux à utiliser, mais je voudrais Comme le généré automatiquement pour répondre à leurs besoins. P> Toute suggestion sur la manière de convaincre DotNet de produire des minocommuneurs = "1" pour un type de chaîne dans ses WSDLS autogénérés sans également ajouter NillABable = "vrai"? < / p> p>
3 Réponses :
Selon les réponses à Ce alors question, ce n'est pas possible. John Saunders dit: p>
Il s'avère que le WSDL n'est pas utilisé pour valider le XML entrant. Ce ne serait pas compte que vous puissiez ou non spécifier des minocommunis - ce ne serait pas utilisé pour valider l'entrée. P> blockQuote>
Je n'essaie pas d'utiliser le WSDL pour valider l'entrée, j'essaie de dire que la sortie peut être garantie de la chaîne.
Selon msdn minocurs Assistance de liaison d'attributs , il n'y a que de 2 façons d'obtenir Type de valeur sans valeur par défaut ou champ booléen accompagné. P>
Type de référence avec une propriété islamliable d'attribut XMLElement définie sur true. p>
une propriété de type donc il ne peut jamais avoir un < Strong> NULL STRAND> Valeur par défaut. Cela signifie que nous ne pouvons jamais satisfaire la première solution. Le seul moyen de générer un minocois = 1 fort> pour les chaînes est de rendre l'élément La seule solution réelle consiste à éditer le XSD manuellement ... BOO XSD.EXE. P > Même si c'était possible, Nick Devore lié à Réponse de John Sondeur dans un autre fil indiquant que le champ n'est pas utilisé pour les XML entrants. Il est donc toujours possible que l'utilisateur envoie XML non valide. P> h3>
C # h3>
vb h3>
solution h3>
Plus de mauvaises nouvelles h3>
Vous n'avez pas besoin de la propriété islamllabable? Qu'est-ce que vous obtenez avec le vrai, ou trop faux?
Dans mon cas, plus de nouvelles nouvelles n'étaient pas une question, car je n'essayais pas de compter sur le cadre pour valider cette partie de la XML, essayant simplement d'empêcher les humains en regardant la WSDL de me séparer de manière constante "pourquoi Est-ce que vos questions sont malamustes "questions.
SIMON - Je suis préoccupé par l'utilisateur final de voir la mauvaise information aussi. Ma seule solution entièrement automatisée consiste à post-traiter le XSD avec un fichier de commandes ou EXE pour corriger les valeurs des minocurs. J'ai mon propre attribut attaché aux propriétés de ma classe afin qu'un EXE puisse la clé de cela. @Johnsaunders - Je ne sais pas si vous demandez de clarifier ma réponse ou si vous proposez une solution. Le terme «islamoullable» dans l'attribut immobilier résout le problème des «minocurs», mais la cause en ajoutant une autre en ajoutant «islamulable»; Quel Simon souligne à la fin de la question initiale.
Je note la ligne suivante: p>
Pour les types complexes de schéma XML contraignants avec des classes non spécifiques à XML, le .NET Framework ne fournit pas de langage de programmation direct équivalent à l'attribut Minoccurs ou Maxim. P>
à partir d'ici: http://msdn.microsoft.com/ EN-US / Bibliothèque / ZD0B35C (v = vs.85) .aspx P>
... Quel genre de suce :(
Si vous trébuchez ici dans l'espoir de l'opposé (
minoc-himocs = 0 code>) Voir social.msdn.microsoft.com/forums/en-us/... - Vous ajoutez une propriété ignorée
[Xmlignore] public bool {{theproperty}} spécifié {obtenir; ensemble; } code> et le définir lorsque "TheProperty" est défini.