2012-03-08 1 views
1

WCF/REST 웹 서비스에서 데이터를 사용하는 .NET Webforms 응용 프로그램이 있습니다. 대부분의 경우, 공유 클래스를 사용하여 데이터를 앞뒤로주고받으며 잘 작동합니다.XML을 데이터 집합으로 변환

그러나 때때로이 데이터를 Datagrid 또는 유사한 .NET 컨트롤에 표시해야하며이를 수행하는 가장 편리한 방법은 데이터 집합을 사용하는 것입니다. Dataset.ReadXML (myXML, XmlReadMode.InferTypedSchema) 메서드를 사용하여 XML을 데이터 집합으로 읽을 수 있다는 것은 알고 있으며 정상적으로 작동하고 있습니다.

가끔 InferTypedSchema가 잘못된 데이터 형식을 유추합니다. 예를 들어 우편 번호가 문자열이 아니라 정수라고 판단합니다.

내 옵션에는 어떤 것이 있습니까? 나는 데이터 셋 스키마를 수동으로 정의 할 수 있다는 것을 알고 있지만 가능한 경우이를 피하고 싶습니다. 웹 서비스는 자동으로 .xsd를 생성합니다 (즉, 자동 생성 된 응답/스키마 URL). Dataset.ReadXML에이를 사용하도록 알리는 방법이 있습니까? 아니면 더 좋은 방법이 있습니까?

답변

0

XSD를 미리 알고 있다면 해당 파일에서 클래스 파일을 생성 한 다음 조정하여 올바른 데이터 유형 (우편 번호 문자열)을 갖출 수 있습니다. 클래스 파일을 만들 때이 클래스에 XML을 변환 XmlSerializer.Deserialize를 사용하여 한 번

XML Schema Definition Tool (Xsd.exe)

.

+0

수업이 있는데 문제가되지 않습니다. 필요한 것은 데이터 셋입니다. – BDW

1

나는 당신이 XSD 괜찮을있는 경우에 당신이 그렇게

dataSet.ReadXmlSchema(new System.IO.StreamReader("schema.xsd")); 

같은 데이터뿐만 아니라 스키마하지 뭔가를 당신의 데이터 집합을 공급할 수 알고있다.

+0

파일에서 파일을 읽는 대신 온라인 XSD를 가리키는 방법이 있습니까? 인터페이스가 변경된 경우 스키마를 다시 생성하지 않아도됩니다. – BDW