2012-03-23 21 views
8

Czy to narzędzie svcutil jest zalecane w stosunku do narzędzia xsd? Nie widziałem tego jako potwierdzonego oświadczenia, ale tak się wydawało. Powodem, dla którego jestem zdezorientowany, jest to, że wygenerowałem klasę używając obu narzędzi. Ale mam lepszą klasę przy użyciu xsd. Schemat XSD składa się wyłącznie z DataContracts.Xsd.exe lub Svcutil.exe do konwersji schematu XSD do klasy

że stosuje następujące polecenie svcutil:

svcutil path-to\xyz.xsd /language:C# /dataContractOnly /importxmltypes /out:path-to\class.cs 

to generowane odpowiednich klas. Ale zawierał tylko obiekty XmlNode [] dla pól.

Następnie użyłem następującego polecenia dla xsd:

xsd.exe /c path-to\xyz.xsd /out:path-to\class.cs 

generowany znacznie lepsze zajęcia niż svcutil zrobił. Większość pól została przekształcona według potrzeb.

Czy powinienem mieć jakiś powód, aby sądzić, że powinienem użyć svcutil over xsd?

Odpowiedz

5

O ile mi wiadomo, istnieją pewne ograniczenia związane z XSD.exe; na przykład, gdy istnieje klasa Dictionary<,> w klasie, XSD.exe nie może wygenerować prawidłowego XSD; jako Dictionary nie implementuje IXmlSerializable.

+0

ok. Mam kilka innych schematów, które można przekonwertować za pomocą narzędzi i zobaczyć, co jest lepsze dla mojego użytkowania. Wyboru odpowiedniego narzędzia odpowiednio. –

2

svcutil nie obsługuje atrybutów xml. Jeśli chcesz użyć ich w swoim schemacie, prawdopodobnie lepiej będzie, jeśli użyjesz xsd.exe.

Osobiście wolę używać svcutil przez xsd i nauczyłem się tworzyć schematy, aby uzyskać pożądaną strukturę klas, ale przede wszystkim pracuję nad schematami, które rozwijam od podstaw, w przeciwieństwie do schematów predefiniowane.

Powiązane problemy