2011-11-03 3 views
2

xsd의 정수 요소가 문자열 필드에서 변환되는 이유는 누구에게 말해 줄 수 있습니까? 모든 필드는 문자열이 실제 데이터 형식에 의해 기인Visual Studio : 정수가있는 xsd 문제에 대한 코드 생성

[System.Xml.Serialization.XmlElementAttribute(DataType = "integer")] 
public string OwnerID 
{ 
    get 
    { 
     return this.ownerIDField; 
    } 
    set 
    { 
     this.ownerIDField = value; 
    } 
} 

내 첫 번째 가정에

<xs:element name="OwnerID" type="xs:integer"/> 

오른쪽 아니었다 - 날짜가 bools 같은 날짜, bools로 interpretered된다 - 정수 뭐가 잘못?

미리 감사드립니다.

답변

4

당신이 뭔가를해야

<xs:element name="OwnerID" > 
    <xs:simpleType> 
     <xs:restriction base="xs:int" /> 
    </xs:simpleType> 
</xs:element> 
+0

우리는 거의 동시에 해결책을 가졌습니다 -) –

+0

xs : integer를 xs : int로 대체하는 것으로 충분합니다. – isHuman

2

sq33G의 대답은 정확하지만 나는

<xs:element name="OwnerID" type="xs:integer"/> 

가 문자열로 변환하는 이유 원래 XSD 요소 때문에 W3C Numeric DataTypes을 당입니다 추가 할 , xs : 정수는 모든 정수 값을 나타냅니다. 32 또는 64 비트 숫자로 제한되지 않고 무한 정수를 처리 할 수있는 C#의 숫자 데이터 유형이 없기 때문에 Deserializer는이 값을 안전하게 처리 할 수있는 유일한 유형이므로 문자열 유형을 선택합니다.

+0

자신을 바로 잡아야합니다 - 나는 행동을 잘못 기억했습니다. xs : 정수는 System.Decimal 유형에 매핑되지 않습니다. – psubsee2003