2009-12-08 2 views
1

내 xsd에 허용되는 최소 길이가 0 인 시퀀스가 ​​있습니다. xsd.exe가 만든 DataSet에 시퀀스의 요소가없는 xml 파일을로드하려고하면 파일에서 DataSet의 제약 조건 중 하나를 위반했음을 나타내는 예외가 발생합니다. xml 파일은 스키마에 대해 유효성을 검사하므로 유효합니다. 도구가 유효한 데이터 세트를 생성하도록하기 위해 할 수있는 일이 있습니까?xsd 파일에서 xsd 파일의 데이터 세트에 유효하지 않은 제약 조건을 생성합니다.

편집 : 생성 한 코드를 올바르게 변경하면 스키마가 올바르게 작동합니다. 그것은 내게 틀린 것처럼 보입니다. 아무 것도하지 않는 시퀀스 항목을 아무것도 포함 할 수 없다는 것을 암시하는 것처럼 보입니다.

<xs:sequence minOccurs="0" maxOccurs="unbounded"> 
    <xs:element name="Numbers" type="xs:double" minOccurs="0"/> 
</xs:sequence> 

답변

2

이것은 마치 xsd.exe가 minOccurs 및 maxOccurs를 처리하는 방식 인 것 같습니다. This MSDN article은 xsd.exe가 minOccurs/maxOccurs를 처리하는 방식을 설명합니다. 그 기사의이 섹션에서는 초기 문제를 집계 보인다 다음 은 maxOccurs 값이 바인딩 배열을 지시 속성 때 Xsd.exe는 경우에는 minOccurs 속성을 무시하면

정의 정밀도의 손실이 을 발생합니다. 생성 된 배열에서 새로운 선언으로의 역변환 은 원래의 minOccurs 값이 아니라 값이 0이고, maxOccurs 값이 인 경우 무제한입니다.

+0

감사합니다. 그건 내 문제를 묘사하는 것처럼 보입니다. –