2011-07-11 33 views
12

Tôi có thể đang thử một thứ không thể thực hiện được với công cụ XSD nhưng tôi muốn hỏi trước khi chuyển sang một giải pháp đơn giản hơn.Tạo các tệp lớp MULTIPLE dựa trên XSD

Tôi có tệp XSD có nhiều phần tử (và nhiều loại phức tạp) sẽ tạo nhiều lớp trong một tệp mã (Tôi không thích điều này). Để có được các tệp lớp sạch và dễ đọc được tạo ra từ công cụ XSD, tôi muốn cho mỗi phần tử được đặt trong một tệp mã riêng biệt, không phải tất cả được đặt trong một tệp mã như các lớp một phần.

Có ai biết cách thực hiện việc này không? Hoặc là giải pháp duy nhất của tôi cho việc này phá vỡ XSD thành một lược đồ cho mỗi phần tử xml trong lược đồ?

Bài viết MSDN http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=VS.100).aspx không cung cấp ngôn ngữ chỉ định xem việc này có thể được thực hiện hay không.

Cảm ơn bạn trước vì bất kỳ câu trả lời hoặc nhận xét nào.

+0

Tôi nghĩ bạn có thể được mời, nhưng nếu ai đó có giải pháp, tôi muốn xem nó. –

+0

Tôi không thể tìm thấy bất cứ điều gì, xin lỗi. –

Trả lời

12

Điều này không trả lời trực tiếp câu hỏi của bạn, nhưng tôi muốn đưa ra một vài điều sau:

Tôi thường thấy nó phản tác dụng để tách mã được tạo. Tôi luôn muốn thường tuân thủ quy tắc "một lớp cho mỗi tệp", nhưng tôi thực hiện một ngoại lệ ở đây, bởi vì tôi thường xử lý các lược đồ rất lớn. Ngay cả trong thư mục riêng của họ, tôi không muốn phải phân biệt hàng chục (đến hàng trăm) tập tin khi tôi tạo ra một phiên bản mới của mã. Tôi tìm thấy nó rất thuận tiện để có tất cả các mã được tạo ra khác nhau trong một tập tin.

Bây giờ, để cung cấp giải pháp có thể - Resharper có khả năng kéo tất cả các lớp ra khỏi tệp và đặt chúng vào tệp của riêng chúng. Nếu bạn nhấp chuột phải vào tệp trong trình khám phá giải pháp, bạn có thể nói Trình tái cấu trúc → Move types into matching files .... Tất nhiên, đây không phải là bất cứ nơi nào thuận tiện như chỉ tạo ra nó theo cách này, nhưng tôi không biết một công cụ sẽ làm điều đó.

+0

Cảm ơn thời gian và câu trả lời. Tôi sẽ sử dụng ý kiến ​​của bạn trong khi tôi làm việc xung quanh nhu cầu của tôi cho dự án của tôi. – AndHeCodedIt

+0

Chúc may mắn. Đăng lại nếu bạn thực sự tìm thấy một công cụ sẽ làm điều này :) – womp

3

Vấn đề tôi đang cố gắng giải quyết nằm trong các tệp lớp riêng biệt hoặc một lớp duy nhất, nhưng duy nhất thay vì cùng một không gian tên chứa nhiều lớp. Kết quả là, tôi đã tìm kiếm một câu trả lời tương tự và tìm thấy tham chiếu này để chia sẻ Getting xsd.exe To Not Create Duplicate Classes

Đây là một sửa chữa đơn giản, nhưng phải mất một thời gian dài để tìm ra. Bạn phải sử dụng xsd.exe để biên dịch tất cả các lớp của bạn cùng một lúc, vì vậy thay vì chạy hai lệnh riêng biệt, bạn chỉ cần chạy một: C: \ Solution \ Project> xsd.exe Types.xsd Request.xsd Response. xsd/c Bây giờ bạn có một tệp, Response.xsd, với tất cả ba lớp trong đó.

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