- PR -

WSDLの属性値変更方法について

1
投稿者投稿内容
一歩
会議室デビュー日: 2005/01/06
投稿数: 3
投稿日時: 2005-01-07 00:35
初めて投稿させて頂きます。一歩です、よろしくお願い致します。

VB.NETでWebサービスを作ってます。
(といってもあらかた他の方が作って、私はちょっとした修正しかしていませんが)
今、はまっているところがありまして・・・。
自動生成されるWSDLファイルのある項目のminOccursを
変更する仕方をご存知の方いらっしゃいましたら教えてください。

サービス名?WSDLと実行したWSDLの結果は
サービス名の引数に構造体を設定している為
構造体に宣言している変数分elementタグが生成されています。
string型の項目はminOccursが「0」、int型の項目minOccursが「1」と
設定されています。(初期値と思われます。)
変更したいのはある項目−
例えば、
項目A(string型) minOccursを1に
項目B(int型) minOccursを0に
といったように個別に設定することは可能でしょうか?
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-01-07 12:49
一歩さん、こんにちは。

引用:

項目A(string型) minOccursを1に
項目B(int型) minOccursを0に


数値型や日付時刻型などのメンバに対しては、DefaultValueAttribute で既定値を指定する事で、省略可能となります。
しかし、文字列型のメンバを逆に必須指定する方法は判りませんでした…。

コード:
Public Structure Struct1
    <System.ComponentModel.DefaultValue(0)> _
    Public var2 As Integer
    <System.ComponentModel.DefaultValue(GetType(DateTime), "12:00:00 AM")> _
    Public var3 As DateTime
End Structure

一歩
会議室デビュー日: 2005/01/06
投稿数: 3
投稿日時: 2005-01-07 14:25
きくちゃんさん、返信ありがとうございます。

きくちゃんさんに教えて頂いた通りコードを追加して
実行したところ、int型の項目はminOccursを「0」になりました。
歓声をあげてしまう程嬉しかったです!
本当にありがとうございます。

引用:

コード:
Public Structure Struct1
    <System.ComponentModel.DefaultValue(0)> _
    Public var2 As Integer
End Structure





string型の項目はDefaultValue()内の値を変更してもdefault値に反映される
だけなんですね。

また何かわかりましたらご返答ください。
よろしくお願い致します。
一歩
会議室デビュー日: 2005/01/06
投稿数: 3
投稿日時: 2005-01-14 00:47
一歩です。
ようやくstringの項目のminOccursの値変更の仕方がわかりました。
コード:

Public Structure Struct1
<System.ComponentModel.DefaultValue(0)> _
Public var1 As Integer

<System.Xml.Serialization.XmlElementAttribute(IsNullable:=True)> _
Public var2 As String

End Structure



<url>
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemXmlSerializationXmlElementAttributeClassIsNullableTopic.asp
</url>

私と同じ問題(WSDLのminOccursの値変更)を抱えている方、
試してみてください。

知識をくださったきくちゃんさん、ありがとうございます。

[ メッセージ編集済み 編集者: 一歩 編集日時 2005-01-14 00:56 ]
1

スキルアップ/キャリアアップ(JOB@IT)