2011-02-03 44 views
29

Bất cứ khi nào tôi cần tạo tệp lớp từ lược đồ XML XSD, tôi sử dụng công cụ .NET xsd.exe và các sự kiện dựng sẵn, trong VS, để đảm bảo rằng các lớp và lược đồ được đồng bộ với nhau tại thời gian xây dựng. Điều này tất nhiên hoạt động tốt, tuy nhiên ...Visual Studio 2010: Lược đồ XML XSD cho các lớp trong IDE

Tôi đã nhận thấy rằng nếu XSD và lớp dẫn xuất nằm trong cùng một dự án, VS hiểu mối quan hệ và hiển thị trực quan CS dưới dạng con của tệp XSD trong trình khám phá giải pháp. Vì vậy, tôi đã tự hỏi nếu có bất kỳ chức năng trong Visual Studio 2010 để thực hiện tạo lớp cho tôi trong IDE hơn là dựa vào kịch bản prebuild?

Ví dụ, tôi sẽ thêm XSD vào dự án đặt một số tùy chọn ở đâu đó và VS tiếp quản và tạo các lớp của tôi cho tôi.

VS 2010 có hỗ trợ bất kỳ điều gì như thế này không? Hoặc tôi nên dừng lại tự hỏi và tiếp tục sử dụng xsd.exe và prebuild.

EDIT Tôi cũng đã nhận thấy rằng dưới các thuộc tính của tập tin XSD Tôi có tùy chọn để thiết lập một Custom Tool, đọc các mô tả này có vẻ gần với những gì tôi đang nhắm đến nhưng tôi không chắc chắn về việc sử dụng chính xác cho tài sản này.

EDIT Ngoài ra, nếu có giải pháp, tôi cần điều này dựa trên các tính năng/chức năng như tiêu chuẩn với VS2010. Tôi không muốn sử dụng addon của bên thứ ba, vv

+1

Nó xuất hiện trong VS2012 bạn có thể thêm tệp xsd vào dự án của bạn và nó sẽ tự động tạo các lớp – msmucker0527

Trả lời

13

Visual Studio 2010 không chứa bất kỳ chức năng nào như vậy để sử dụng chung.

Visual Studio có một số hỗ trợ hạn chế cho việc chuyển đổi XSD sang mã này trong ngữ cảnh của tập dữ liệu đã nhập trong ADO.NET - nhưng không phải là giải pháp chung, chúng được nhắm mục tiêu chính xác đến một kịch bản sử dụng.

Nhưng làm kiểm tra các XSD2Code add-in mà không chính xác điều đó

enter image description here

+0

Tôi muốn tránh addons bên thứ ba nếu addon phải được cài đặt trên mọi máy sử dụng giải pháp. Trong trường hợp của Xsd2Code nó sẽ là khả thi để có addon trên một máy chỉ? – MrEyes

+1

@MrEyes: bạn ** chỉ ** cần addin trên máy được cho là chuyển đổi từ XSD sang C# - phần còn lại của lập trình viên chỉ đơn giản có thể sử dụng C# được tạo ra - không cần addin trên mọi máy ... Và như tôi đã nói: có ** không có gì ** mục đích chung trong VS để làm điều này - vì vậy nó hoặc là bổ trợ hoặc không có gì .... –

+0

Tôi đã cài đặt phiên bản Xsd2Code 3.4 và tôi không thấy "chạy Thế hệ Xsd2Code "tùy chọn trình đơn khi tôi nhấp chuột phải vào tệp xsd trong giải pháp của tôi. Tôi cũng kiểm tra để xem nếu điều này làm việc trong cài đặt VS2008 của tôi, không có may mắn. Sau đó tôi đã cài đặt phiên bản 3.4 và đã thử phiên bản beta. Đưa cái gì? Tôi có làm điều gì sai? – ChadD

3

Đã từng có một phương tiện để làm điều đó trong Visual Studio. Bạn có thể nhấp chuột phải vào một lược đồ xml và có một sự lựa chọn trong trình đơn ngữ cảnh mà nói một cái gì đó như "tạo ra tập dữ liệu." Tôi thường sử dụng nó thường xuyên và nó hoạt động rất tốt. Đối với một số lý do bí ẩn, Microsoft đã loại bỏ chức năng đó - có thể sau VS 2003? Tôi không chắc chắn tại sao nó ok để sử dụng một tiện ích dòng lệnh và rằng nó không ok để thực thi cùng một mã từ một trình đơn, nhưng có nó được.

56

Bạn có thể sử dụng XSD.exe nằm trong số C:\program files\Microsoft\SDKs\Windows\v7.0A\Bin\xsd.exe. làm theo các bước sau để thêm XSD là một mục trình đơn trong VS công cụ đơn

  1. Thêm tập tin XSD cho dự án VS của bạn
  2. Tới cụ visual studio đơn
  3. Đến công cụ bên ngoài
  4. Thêm
  5. Nhập tiêu đề như XSD
  6. lệnh dưới dạng đường dẫn đến xsd trong hệ thống của bạn (normaly C:\program files\Microsoft SDKs\Windows\v7.0A\Bin\xsd.exe. )
  7. luận cứ như $(ItemPath) /c /l:cs
  8. thư mục ban đầu như $(ItemDir)
  9. kiểm tra việc sử dụng cửa sổ đầu ra thats nó nhấn ok

Sau đó nhấp vào file XSD trong dung dịch thám hiểm của bạn và sau đó công cụ - XSD nhấp chuột , điều này sẽ tạo lớp trên cùng thư mục với tệp .XSD. Nếu bạn đã không thêm tệp ở bước 1, bạn sẽ phải thêm tệp .cs kết quả vào dự án bằng cách bấm chuột phải vào dự án trong Solution Explorer, chọn Thêm>> Mục hiện có và sau đó là tệp .CS được tạo từ .XSD phải có mặt và có thể được bao gồm.

+0

câu trả lời của bạn giảm xuống ... "cùng một f", phần còn lại của câu trả lời là gì? –

+3

Cảm ơn nhưng để thiết lập không gian tên của lớp được tạo ra, tôi phải tạo một mod nhỏ. Nối/n: "Không gian tên tại đây" vào Đối số và nhấp vào "Nhắc cho các tác phẩm". Bây giờ bạn chỉ cần thay đổi Không gian tên tại đây thành không gian tên của bạn khi nhắc đến. Ban đầu tôi đã cố gắng sử dụng không gian tên mặc định nhưng không thể nhìn thấy một cách để làm điều này. Nếu có ai biết cách tốt hơn thì hãy cho tôi biết. Cảm ơn – nfplee

+1

Tuyệt vời. Không bao giờ biết những gì mà các công cụ bên ngoài tùy chọn được cho. SO NHIỀU HOẠT ĐỘNG MỚI –

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