2014-04-07 18 views
5

Utilizzando il provider di tipo XML in FSharp.Data (versione 2.0.5) i nomi degli elementi non corrispondono ai nomi nello schema.F # provider di tipo XML cambia nome

Per esempio i miei file XML inizia con:

<?xml version="1.0" encoding="utf-8"?> 
<WebQuery><Results><Result><PrimaryID>105882365</PrimaryID><CONTACT_ADDRESS_LINE_1 /><CONTACT_ADDRESS_LINE_2 /> 

ma in F # Ho bisogno di fare riferimento CONTACT_ADDRESS_LINE_1 con

.ContactAddressLine1 

C'è qualcosa sui provider di tipo non capisco? Perché il nome in F # è diverso dal nome dell'elemento nello schema?

+0

'CONTACT_ADDRESS_LINE_1' sembra così stridente considerando il formato gli altri elementi seguono . – ChaosPandion

+0

ChaosPandoin - Forse sì, ma non controllo lo schema, è ciò che viene fornito da un'azienda esterna. – JonnyBoats

+0

Dovrò fare un po 'di lettura sul provider del tipo XML. Non posso fare a meno di chiedermi se mantengono i metadati interni sull'elemento che rappresenta la forma originale. Sembra possibile che possano formattare i nomi in una convenzione .NET. – ChaosPandion

risposta

3

F # dati rende nomi di proprietà PascalCased per migliorare la leggibilità, ma che non ha impatto zero sulla funzionalità, utilizzando ContactAddressLine1 sarete comunque accedendo l'elemento CONTACT_ADDRESS_LINE_1

+0

In realtà ciò influisce sulla funzionalità poiché i nomi dell'elemento XML (e degli attributi) fanno distinzione tra maiuscole e minuscole, quindi "posizione" e "Posizione" si riferiscono a diversi elementi e sarebbe possibile avere entrambi nello stesso schema. – JonnyBoats

+0

In tal caso una proprietà si chiamerebbe Location e l'altra Location2. Non preoccuparti, l'attuale attributo e il nome dell'elemento non devono necessariamente corrispondere alle proprietà generate. Se vuoi puoi decompilare l'eseguibile generato per vedere che sta usando i nomi corretti –

+2

Gustavo - Accetto la tua risposta che questo è di progettazione. Non mi piace il design ma questo non è il posto giusto per quella discussione. Grazie. – JonnyBoats

Problemi correlati