2015-01-02 3 views
2

XML 파일 집합을 구문 분석하기 위해 F # XML 형식 공급자를 사용하고 있으며 "no"로 설정된 부울로 국가 코드가 포함 된 요소를 해석하는 것이 혼란 스럽습니다. 물론 다른 값으로 내 자신의 XML 샘플을 롤업 할 수 있지만 특정 유형 정의를 조정하기 위해 XML 유형 제공자를 조정할 수 있는지 궁금합니다.F # Xml 유형 공급자 생성 유형 정의를 재정의 할 수 있습니까?

또 다른 옵션은 XSD 스키마에서 유형을로드하는 것이지만 XML 유형 제공자가이를 지원하지 않는 것처럼 보입니까?

답변

3

InferTypesFromValues 매개 변수를 사용하여 형식 공급자에게 샘플의 실제 값에서 기본 형식을 유추해야하는지 (또는 나타내지 않아야하는지) 알릴 수 있습니다. 예 :

type T1 = XmlProvider<""" <sample code="no" /> """, InferTypesFromValues=true> 
T1.GetSample().Code // When enabled, 'Code' is Boolean 

type T2 = XmlProvider<""" <sample code="no" /> """, InferTypesFromValues=false> 
T2.GetSample().Code // When disabled, 'Code' is just a string 

기본값은 true입니다. XML 공급자에 대해이 기능을 비활성화하면 기본적으로 모든 값이 문자열로 반환됩니다. JSON의 경우 이것은 다소 덜 드라마틱합니다. JSON이 123 (숫자) 및 "123" (문자열)과 같은 값을 구별하기 때문입니다.

언급 한대로 XSD는 현재 지원되지 않지만 우리가 확실히 추가하고 싶은 기능 중 하나입니다. (물론 풀 요청은 환영 할만한 것이 아닙니다 :-)) .

+0

빠른 응답을 위해 @TomasPetricek에게 감사드립니다. InferTypesFromValues에 대한 참조를 보았지만이를 사용하는 방법을 알아 내지 못했습니다. 이제는 명확합니다. 또한 XSD Git 브랜치를 확인 했으므로 작업을 완료해야합니다. 나는 그것을 조사하고 제가 기여할 수있는 것이 있는지 봅니다. –