2010-06-08 32 views
5

Hãy nói rằng tôi có lớp sau đây:chuyển đổi xml tự động trong scala

lớp Person (val firstName: String, val lastName: String)

Có một cách tự động để tạo ra xml từ lớp này mà không cần phải thế nào để tạo một phương thức toXml()? Lý tưởng nhất là đầu ra sẽ có dạng như sau:

 
    <Person> 
     <firstName>John</firstName> 
     <lastName>Smith</lastName> 
    </Person> 

Có vẻ như cần phải có cách để làm điều này mà không cần phải viết tất cả bằng tay. Có lẽ có một đặc điểm mà tôi chưa tìm thấy?

Trả lời

3

Thật không may, tôi không nghĩ có một đặc điểm kỳ diệu như vậy. Bạn có thể sử dụng một cái gì đó như XStream để thực hiện việc này. Tuy nhiên, nó không có vẻ in tất cả các lớp Scala khá tự động, vì vậy bạn có thể cần phải viết trình chuyển đổi của riêng bạn. Someone else đã làm như vậy trong trường hợp Danh sách, tôi đoán cho ví dụ của bạn, bạn có thể cần một cái gì đó tương tự.

5

Đối case lớp (hoặc lớp con khác của Product), đây là một lần rất dễ dàng để viết quát: tên có thể được lấy ra với productPrefix, tất cả các giá trị là iterable qua productIterator và tên của các trường này qua productElementName.

Thật không may, productElementName đã chỉ có một cuộc sống rất ngắn: nó đã được bổ sung trong revision 20958 và loại bỏ trong revision 21223, rõ ràng bởi vì nó thêm quá nhiều trọng lượng cho trường hợp lớp (có cũng là một open ticket cho nó).

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