2

Webサービスで使用されるオブジェクトの一部として「accountNumber」という名前の文字列フィールドがあります。このフィールドが必要ですがminOccurs="1"なし nillable="true"です。そのフィールドを次のように定義すると<XmlElement(IsNullable:=True)>、とが得られminOccurs="1"ますnillable="true"。定義する<XmlElement(IsNullable:=False)>と、は得られませんがnillable="true"、代わりに得られminOccurs="0"ます。

それで、XSDでこれを取得するためにオブジェクトを定義するにはどうすればよいですか?

<s:element minOccurs="1" maxOccurs="1" name="accountNumber" type="s:string" />

私のクラス定義は非常に単純です:

<Serializable()> _
<XmlType(Namespace:="http://mysite.org")> _
Public Class MyServiceWS
    'some other definitions
    <XmlElement(IsNullable:=True)> <VBFixedString(64)> Public accountNumber As String
End Class

助けてくれてありがとう。


2012年10月16日編集:リバースエンジニアリングXSD


次のフィールドを使用してXSDをリバースエンジニアリングしました。

<xs:element name="TEST1" minOccurs="1" maxOccurs="1" type="xs:string"/>
<xs:element name="TEST2" minOccurs="0" maxOccurs="1" type="xs:string"/>
<xs:element name="TEST3" minOccurs="1" maxOccurs="1" nillable="true" type="xs:string"/>
<xs:element name="TEST4" minOccurs="0" maxOccurs="1" nillable="false" type="xs:string"/>

次のコマンドを使用しました:xsd.exe MyClass.xsd / classes / language:vb / f

次の結果が得られました。

'''<remarks/>
Public TEST1 As String

'''<remarks/>
Public TEST2 As String

'''<remarks/>
<System.Xml.Serialization.XmlElementAttribute(IsNullable:=true)>  _
Public TEST3 As String

'''<remarks/>
Public TEST4 As String

この結果から判断すると、私がやりたいことはできないようです。


2012年10月17日編集:同様の問題の投稿が見つかりました


この問題に関心のあるすべての人のために、私は同様の問題のある投稿を見つけました。提供された解決策はありませんでした。

文字列値にdotnetwebserviceset minOccurs =“ 1”を作成する方法

4

2 に答える 2

0

私の知る限り、私が求めていることは .NET で自動化することはできません。WSDL を手動で変更する必要があります。

于 2013-01-04T17:36:46.120 に答える