2014-04-07 16 views
5

Sử dụng nhà cung cấp loại XML trong FSharp.Data (Phiên bản 2.0.5) các tên phần tử không khớp với tên trong lược đồ.F # Thay đổi nhà cung cấp loại XML tên

Ví dụ file XML của tôi bắt đầu với:

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

nhưng trong F # Tôi cần phải tham khảo CONTACT_ADDRESS_LINE_1 với

.ContactAddressLine1 

Có điều gì đó về các nhà cung cấp loại I không hiểu? Tại sao tên trong F # khác với tên phần tử trong lược đồ?

+0

'CONTACT_ADDRESS_LINE_1' dường như rất chói tai xem xét các định dạng các yếu tố khác làm theo . – ChaosPandion

+0

ChaosPandoin - Có lẽ vậy, nhưng tôi không kiểm soát được lược đồ, đó là những gì được cung cấp bởi một công ty bên ngoài. – JonnyBoats

+0

Tôi sẽ phải thực hiện một số việc đọc trên nhà cung cấp loại XML. Tôi không thể không tự hỏi liệu họ có giữ siêu dữ liệu nội bộ trên phần tử đại diện cho biểu mẫu gốc hay không. Có vẻ như họ có thể định dạng tên thành một quy ước .NET. – ChaosPandion

Trả lời

3

F # dữ liệu làm cho tên thuộc tính PascalCased cho dễ đọc, nhưng điều đó có không ảnh hưởng đến các chức năng, bằng cách sử dụng ContactAddressLine1 bạn vẫn sẽ được tiếp cận các yếu tố CONTACT_ADDRESS_LINE_1

+0

Thực ra điều này ảnh hưởng đến chức năng vì tên phần tử XML (và thuộc tính) phân biệt chữ hoa chữ thường, vì vậy “vị trí” và “Vị trí” tham chiếu đến các phần tử khác nhau và có thể có cả hai trong cùng một lược đồ. – JonnyBoats

+0

Trong trường hợp đó, một thuộc tính sẽ được gọi là Vị trí và Vị trí2 khác. Đừng lo lắng, tên thuộc tính và phần tử thực sự không cần phải khớp với các thuộc tính được tạo. Nếu bạn muốn bạn có thể dịch ngược tập tin thực thi được tạo ra để thấy rằng nó đang sử dụng đúng tên –

+2

Gustavo - Tôi chấp nhận câu trả lời của bạn rằng đây là do thiết kế. Tôi không thích thiết kế nhưng đây không phải là nơi dành cho cuộc thảo luận đó. Cảm ơn bạn. – JonnyBoats

Các vấn đề liên quan