2017-02-05 12 views
3

XmlProviderが型を推測しようとしていることに驚いていました。しかし、私は問題に遭遇しました。値が5.25.2のxml要素があります。私はそれが文字列であることをタイプと思います。しかし、XmlProviderはそれをDateTimeに推論しているようです。Fsharp.Data XmlProvider DateTimeの型推論が正しくありません

特定のxml要素の型をオーバーライドする方法はありますか?

今のところ、私はInferTypesFromValues = falseを設定することで回避しています。

> sample.Scan.ScannerVersion.Value;; 
val it : System.DateTime = 
    5/25/2002 12:00:00 AM {Date = 5/25/2002 12:00:00 AM; 
         Day = 25; 
         DayOfWeek = Saturday; 
         DayOfYear = 145; 
         Hour = 0; 
         Kind = Local; 
         Millisecond = 0; 
         Minute = 0; 
         Month = 5; 
         Second = 0; 
         Ticks = 631578816000000000L; 
         TimeOfDay = 00:00:00; 
         Year = 2002;} 
+1

多少の事情によって、私はいくつかの点で "騙され"て、その推論の例に明確に曖昧でないものが含まれていることを確かめました。この場合、このXMLファイルにいくつかのデータを追加して、このspesificフィールドの日付には使用できません。 –

答えて

1

あなたのオプションは、どちらかにしている私には思える:あなたはより良い推測されたタイプに影響を与えることができるように、スペックとなって独自のXMLスニペットを提供

  • XmlProviderInferTypesFromValues=falseパラメータを使用すると、すべてのプロパティがタイプstringになります。第2のケースで

、これは私がこのことができます願ってい

type Things = XmlProvider<MySample, InferTypesFromValues=false> 

のように見えるかもしれません。