2009-04-19 43 views
14

Sử dụng JAXB trong Java dễ dàng tạo ra từ tệp lược đồ xml một tập hợp các lớp Java mà xml phù hợp với lược đồ đó có thể được deserialized.Tương đương Jaxb trong C#

Có một số tương đương C# của JAXB không? Tôi biết rằng Linq có thể tuần tự hóa và deserialize các lớp học đến/từ các tập tin xml. Nhưng làm thế nào tôi có thể tạo ra các lớp C# từ tệp lược đồ xml và sau đó sử dụng các lớp này với LINQ?

Trả lời

15

Nếu bạn đang sử dụng Visual Studio, hãy thử XML Schema Definition Tool. Nó lấy các định nghĩa lược đồ của bạn và tạo ra các lớp C# - hoặc nó có thể đi theo cách khác và tạo các định nghĩa lược đồ từ các lớp. Nó cũng có một số biến đổi liên quan đến XML khác.

+0

Thực ra, XSD có thể tạo các lớp trong C#, VB.NET, JScript hoặc C++. Xem chuyển đổi/ngôn ngữ. –

+0

Xin lỗi, tôi không ngụ ý rằng nó không thể. Câu hỏi của ông chỉ liên quan đến các lớp C#. Nhưng có, chuyển đổi ngôn ngữ/là tiện dụng. –

+3

Bạn không cần phải có Visual Studio. XSD.EXE là một phần của .NET SDK. –

4

Có một công cụ tốt hơn từ Microsoft được gọi là XsdObjectGen, Trình tạo mã đối tượng XSD. Nó giống như xsd.exe, nhưng tốt hơn. Cũng miễn phí, nó không phải là một phần của .NET SDK, nhưng là một phần tải xuống riêng biệt.

Đồng thời xem câu hỏi SO: XSDObjectGen vs Xsd.exe

1

Xem xét sử dụng DataSet. Đó là một khái niệm khác với việc sử dụng "Hạt Java". Toàn bộ tài liệu XML được xử lý tập hợp các bảng phân cấp tất cả trong một lớp duy nhất. Phần tốt là lý thuyết đóng gói cho OOP thực sự được thực thi. Wow, Microsoft đã có một cái gì đó đúng mà Sun pooched.

Dù sao đi nữa. Bạn cũng có thể nhìn vào DataSet được đánh máy nếu bạn muốn làm cho mọi thứ thú vị hơn. Tôi đã sử dụng điều này trên các dự án lớn với thành công lớn.

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