2012-02-16 1 views
0

Ниже представлена ​​схема сервиса.Вывод схемы WCF

<xs:element name="StartDate" type="tns:DateType"> 
    <xs:annotation> 
    <xs:documentation>The start date of the planning item in question</xs:documentation> 
    </xs:annotation> 
</xs:element> 
<xs:complexType name="DateType"> 
    <xs:annotation> 
    <xs:documentation> 
     0 - Hard Date (Use the date defined by the year, month and day attributes 
     2 - Retirement 
     3 - Death 
     4 - Disability 
     5 - Long Term Care 
    </xs:documentation> 
    </xs:annotation> 
    <xs:sequence> 
    <xs:element name="Date"> 
     <xs:complexType> 
     <xs:attribute name="date_type" use="optional" default="0"> 
      <xs:simpleType> 
      <xs:restriction base="xs:int"> 
       <xs:enumeration value="0"> 
       <xs:annotation> 
        <xs:documentation>Hard Date (Use the date defined by the year, month and day attributes</xs:documentation> 
       </xs:annotation> 
       </xs:enumeration> 
       <xs:enumeration value="2"> 
       <xs:annotation> 
        <xs:documentation>Retirement</xs:documentation> 
       </xs:annotation> 
       </xs:enumeration> 
       <xs:enumeration value="3"> 
       <xs:annotation> 
        <xs:documentation>Death</xs:documentation> 
       </xs:annotation> 
       </xs:enumeration> 
       <xs:enumeration value="4"> 
       <xs:annotation> 
        <xs:documentation>Disability</xs:documentation> 
       </xs:annotation> 
       </xs:enumeration> 
       <xs:enumeration value="5"> 
       <xs:annotation> 
        <xs:documentation>Long Term Care</xs:documentation> 
       </xs:annotation> 
       </xs:enumeration> 
      </xs:restriction> 
      </xs:simpleType> 
     </xs:attribute> 
     </xs:complexType> 
    </xs:element> 
    </xs:sequence> 
</xs:complexType> 

Это прокси-класс

общественный частичный класс DateTypeDate {

private int date_typeField; 


    public DateTypeDate() 
    { 
     this.date_typeField = 0; 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlAttributeAttribute()] 
    [System.ComponentModel.DefaultValueAttribute(0)] 
    public int date_type 
    { 
     get 
     { 
      return this.date_typeField; 
     } 
     set 
     { 
      this.date_typeField = value; 
     } 
    } 


} 

У меня есть требование, где нам нужно отправить значение 0 в date_type.

1- Я попробовал следующее, предположив, что по умолчанию ему следует присвоить значение «0».

StartDate = new DateType(); 
    DateTypeDate date = new DateTypeDate(); 

2- Тогда я явно присвоить «date_type» значение 0

StartDate = new DateType(); 
    DateTypeDate date = new DateTypeDate(); 
    date.date_type = 0; 
    StartDate.Date = date; 

В обоих случаях «date_type» узел не получает появляться в реальных запросов XML, передаваемых по обслуживанию. Это запрос xml, который генерируется.

<StartDate> 
    <Date></Date> 
    </StartDate> 

But if i assign a different value than 0 then i can see the date_type node. for example 

    <StartDate> 
    <Date date_type="2"></Date> 
    </StartDate> 


Would you able to help what could be the reason that node doesn't appear in request xml id i assign it to "0" also is there any way the node can appear without making chnages in schema. Thanks in advance 

ответ

0

Я не эксперт XML Schema, но мне кажется, проблема почти наверняка из следующей строки в схеме:

<xs:attribute name="date_type" use="optional" default="0"> 

Если атрибут является необязательным, что означает, клиенту не нужно его отправлять. Попробуйте сделать это вместо этого.