2014-04-07 7 views
5

Mit dem XML-Typ-Provider in FSharp.Data (Version 2.0.5) stimmen die Elementnamen nicht mit den Namen im Schema überein.F # XML-Typ-Provider ändert den Namen

Zum Beispiel beginnt meine XML-Dateien mit:

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

aber in F # Ich brauche CONTACT_ADDRESS_LINE_1 mit

.ContactAddressLine1 

Gibt es etwas über Typ-Anbieter verweisen verstehe ich nicht? Warum unterscheidet sich der Name in F # vom Elementnamen im Schema?

+0

'CONTACT_ADDRESS_LINE_1' jarring scheint so werden den Zugriff auf das Format die anderen Elemente unter Berücksichtigung folgen . – ChaosPandion

+0

ChaosPandoin - Vielleicht, aber ich kontrolliere nicht das Schema, es ist, was von einer externen Firma zur Verfügung gestellt wird. – JonnyBoats

+0

Ich muss etwas über den XML-Typ-Anbieter lesen. Ich kann nicht anders, als mich zu fragen, ob sie interne Metadaten für das Element behalten, das die ursprüngliche Form darstellt. Es scheint möglich, dass sie Namen in einer .NET-Konvention formatieren. – ChaosPandion

Antwort

3

F # Daten macht Eigenschaftsnamen zur besseren Lesbarkeit PascalCased, aber das hat keinerlei Auswirkungen auf die Funktionalität, die von ContactAddressLine1 immer noch mit Sie das CONTACT_ADDRESS_LINE_1 Element

+0

Tatsächlich wirkt sich dies auf die Funktionalität aus, da XML-Element- (und -Attribut-) Namen die Groß-/Kleinschreibung beachten. Daher beziehen sich "Standort" und "Standort" auf verschiedene Elemente und es wäre möglich, beide im selben Schema zu haben. – JonnyBoats

+0

In diesem Fall würde eine Eigenschaft Location und die andere Location2 heißen. Keine Sorge, die tatsächlichen Attribut- und Elementnamen müssen nicht mit den generierten Eigenschaften übereinstimmen. Wenn Sie möchten, können Sie die generierte ausführbare Datei dekompilieren, um zu sehen, dass sie die richtigen Namen verwendet. –

+2

Gustavo - Ich akzeptiere Ihre Antwort, dass dies beabsichtigt ist. Ich mag das Design nicht, aber das ist nicht der richtige Ort für diese Diskussion. Vielen Dank. – JonnyBoats

Verwandte Themen