OK、明らかに私はここで何か間違ったことをしています。Webサービスを作成しようとしていますが、「dateShipped」をオプションにしたいのですが、WSDLではminOccurs="0"が必要です。
[Serializable]
[XmlType]
public class CTShipment
{
[XmlElement(Order = 0, IsNullable=false)] public CTDeliveryMethod DeliveryMethod;
[XmlElement(Order = 1, IsNullable=false)] public CTShipmentAddress ShipmentAddress;
[XmlIgnore] public bool dateShippedSpecified;
[XmlElement(Order = 2, IsNullable=false)] public DateTime dateShipped;
}
次のようにWSDLを生成したいと思います。
<xs:complexType name="CTShipment">
<xs:annotation>
<xs:documentation>All details for the shipment of a suborder.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="DeliveryMethod" type="CTDeliveryMethod" nillable="false"/>
<xs:element name="ShipmentAddress" type="CTShipmentAddress" nillable="false"/>
<xs:element name="dateShipped" type="xs:dateTime" nillable="false" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
代わりに、私が実際に得ているのはこれです:
<xs:complexType name="CTShipment">
<xs:sequence>
<xs:element name="DeliveryMethod" nillable="true" type="tns:CTDeliveryMethod"/>
<xs:element name="ShipmentAddress" nillable="true" type="tns:CTShipmentAddress"/>
<xs:element name="dateShipped" type="xs:dateTime"/>
<xs:element name="dateShippedSpecified" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
私が読んだいくつかのことによると(http://msdn.microsoft.com/en-us/library/zds0b35c%28v=vs.90%29.aspxを含む)、パブリックブール「dateShippedSpecified」を含めて「dateShipped」にする必要がありますオプション(minOccurs = 0)。ご覧のとおり、これが発生していないだけでなく、「[XmlIgnore]」でマークされていても「dateShippedSpecified」がWSDLに表示されています。別の問題もあることに気付いたかもしれません。「IsNullable=false」を指定していても、WSDLでnillable="true"が返されます。
それは4つ以上の問題です。同じことに関するすべてを説明することはできません。
WSDLでminOccursを0に設定するにはどうすればよいですか?
[fieldName]指定のパターンで[fieldName]がオプションにならないのはなぜですか(minOccurs = 0)?
___指定されたパターンに従わなかった場合でも、XmlIgnoreでマークされている場合、dateShippedSpecifiedがWSDLに表示されるのはなぜですか?
「IsNullable=false」を指定しているのに、すべてがnillable = "true"としてマークされているのはなぜですか?
そしてボーナス質問として、誰かが知っているなら...
注釈(以下に示す)を含めるにはどうすればよいですか?
<xs:annotation> <xs:documentation>All details for the shipment of a suborder.</xs:documentation> </xs:annotation>