2011-11-04 7 views
22

Tôi có tệp ở định dạng XSD. Làm thế nào tôi có thể chuyển nó sang một lớp C#?Làm cách nào để chuyển đổi tệp XSD thành C# Class

Tôi cần tham chiếu lớp trong các ứng dụng web khác mà tôi cần phải làm bài gọi theo dưới đây:

var res = client.Post<Customer>("/customers", c); 
+0

có thể trùng lặp của [Làm thế nào để tạo ra các lớp học .NET 4.0 từ xsd?] (http://stackoverflow.com/questions/5217665/how-to-generate-net-4-0-classes-from-xsd) –

Trả lời

52

Sử dụng XML Schema Definition Toolxsd.exe tìm thấy trong các công cụ khuôn khổ của bạn để chuyển đổi sơ đồ của bạn thành một lớp serializable hoặc tập dữ liệu.

xsd file.xsd {/classes | /dataset} [/element:element] 
     [/language:language] [/namespace:namespace] 
     [/outputdir:directory] [URI:uri] 

Và trong ví dụ, trong khi # lớp C sẽ được tạo trong thư mục tương tự như công cụ xsd:

xsd /c YourFile.xsd 
+0

trong trường hợp này , cung cấp http://pastie.org/2809845 (chỉ để hoàn thành) –

+1

bạn cần một '/ c' hoặc'/classes' trong lệnh của bạn, lưu ý - và bạn * không * cần ngôn ngữ, vì C# là mặc định –

+0

@George Tôi cần mã C# để tạo điều này bằng cách sử dụng liên kết ở trên trực tiếp , là nó có thể hoặc tôi cần phải làm điều đó sau khi tải về XSD đầu tiên? –

2

bạn có thể làm như thế này ...

<xsd xmlns='http://microsoft.com/dotnet/tools/xsd/'> 
<generateClasses language='CS' namespace='Namespace.subnamespace'> 
    <schema>FirstSchema.xsd</schema> 
    <schema>AnotherSchema.xsd</schema> 
    <schema>LastSchema.xsd</schema> 
</generateClasses> 
</xsd> 
+0

Tôi thích vị trí này đi, nhưng bạn có thể giải thích những gì đang đọc tập tin này, hoặc làm thế nào nó tạo ra các tập tin C# kết quả? – QueueHammer

+0

để biết chi tiết về cách sử dụng tệp tham số nâng cao, hãy xem tại đây https://msdn.microsoft.com/en-us/library/x6c1kb0s(v=vs.110).aspx –