2017-01-25 6 views
2

다음과 같은 정의가있는 xsd 파일이 있습니다. xsd.exe을 사용하여 xsd 파일에서 클래스를 생성 할 때 열거 형 attrs는 아래에 표시된대로 FieldSpecified 속성을 추가로 가져옵니다. FieldSpecified 속성이 설정되어 있지 않으면이 값은 특성 값으로 serialize되지 않습니다. xsd에 추가 할 수있는 추가 속성이 있습니까? 아니면 xsd.exe과 함께 사용할 수있는 플래그가 항상 값을 직렬화하게할까요? xsd에서XSD에서 XSD.exe를 방지 할 수있는 특성 FieldSpecified flags

예 : 생성 된 코드에서

<xs:simpleType name="adrLn"> 
    <xs:restriction base="xs:string"> 
    <xs:enumeration value="ST" /> 
    <xs:enumeration value="APTN" /> 
    </xs:restriction> 
</xs:simpleType> 

... 

<xs:element name="AddressLine" minOccurs="0" maxOccurs="unbounded"> 
    <xs:complexType> 
    <xs:attribute name="AddrLineTypCd" type="adrLn" /> 
    </xs:complexType> 
</xs:element> 

예 :

/// <remarks/> 
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.6.1055.0")] 
[System.SerializableAttribute()] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)] 
public partial class RequestCheckIssueAddressAddressLine { 

    private adrLn addrLineTypCdField; 

    private bool addrLineTypCdFieldSpecified; 

    /// <remarks/> 
    [System.Xml.Serialization.XmlAttributeAttribute()] 
    public adrLn AddrLineTypCd { 
     get { 
      return this.addrLineTypCdField; 
     } 
     set { 
      this.addrLineTypCdField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlIgnoreAttribute()] 
    public bool AddrLineTypCdSpecified { 
     get { 
      return this.addrLineTypCdFieldSpecified; 
     } 
     set { 
      this.addrLineTypCdFieldSpecified = value; 
     } 
    } 
} 

답변

0

동작을 변경할 수있는 플래그가 없습니다 - 그것은 모든 XSD에 의해 구동된다.

열거 형은 null을 사용할 수 없습니다. 귀하의 속성은 옵션 (기본 XSD에서 사용 속성의 값), 그래서 속성 (귀하의 케이스 addrLineTypCdField 필드에) 관련 분야의 직렬화를 제어하는 ​​데 필요한 xxxSpecified입니다.

당신이 당신의 문제를 해결해야 다음 다음 가능성으로 XSD를 변경 표시 한 이후 (필수 속성 만들기) : 나는 그것이 널 (NULL) 백업, 또는 플래그와 함께 필드를 구현하는 것이 소원

<xs:attribute name="AddrLineTypCd" type="adrLn" use="required" /> 
+0

을 setter가 사용되고있는 경우는 직렬화의 필드. 이것을 게시 한 후에 나는 숫자 값에 대해서도 그렇게 함을 알았다. – QueueHammer