2009-03-08 15 views
7

Wygenerowałem niektóre klasy C# z XSD za pomocą narzędzia Visual Studio XSD i wygenerowałem tablice do przechowywania kolekcji elementów, zamiast jednej z wbudowanej ogólnej kolekcji <T> (lub pokrewne) zajęcia.Narzędzie Visual Studio XSD: Generowanie kolekcji zamiast tablic

Brak parametrów wiersza polecenia wymienionych w xsd /? wspomnieć cokolwiek o generowaniu kolekcji zamiast tablic, ale wiem, że można to zrobić za pomocą klas proxy usług sieciowych generowanych przez program Visual Studio, więc uznałem, że musi to być możliwe.

Czy ktoś wie, jak narzędzie XSD generuje klasy kolekcji zamiast tablic?

+0

Możesz znaleźć moją odpowiedź tutaj -> http://stackoverflow.com/a/24557248/1125467 – vivekp

Odpowiedz

1

Problem polega na tym, że XSD jest agnostykiem języka XML. Nie może używać niczego z języka Java lub C#, którego nie obsługuje. Tablice są najniższym wspólnym mianownikiem.

Twórcy Javy używają bibliotek OXM, takich jak XStream, do marszczenia obiektów na format XML iz powrotem. Umożliwia określenie typów niestandardowych podczas przechodzenia z obiektów do formatu XML. Wygląda na to, że będziesz musiał znaleźć coś podobnego w przyborniku .NET.

To nie jest odpowiedź na twoje pytanie, ale to jest powód, dla którego myślę, że XSD nie wykona zadania. Podobnie jak programista Java, który dociera do XStream, będziesz musiał szukać gdzie indziej.

1

Widziałeś możliwość korzystania z kolekcji z Odniesieniem do usługi, a nie z Odniesienia do stron internetowych. Zamiast tego spójrz na narzędzie svcutil.exe. Wygląda jak svcutil/t: kod file.xsd może zrobić to za Ciebie.

1

Nie jestem świadomy żadnych narzędzi w tym czasie, które wykonują to niezawodnie, niestety.

Wystąpił XSDObjectGen (czy coś takiego), ale wydaje się, że narzędzie znikły z powierzchni cyberprzestrzeni :-(

Widziałem jedno podejście używać XSDTidy zastosować coś w rodzaju wymiany wszystkich int [] do listy na wyjściu narzędzie XSD - wydaje się, że pracował, ale wydawało się nieco przylegający

Oto CodeProject article on XSDTidy

rzecz Próbowałem ponownie znaleźć się na blogu o.. dżentelmena, który w zasadzie przeanalizował wewnętrzne działanie XSD w Reflectorze, a następnie wykorzystał zdobytą wiedzę do zbuduj własne narzędzie, używając wielu klas rdzeniowych .NET. Jeśli dobrze pamiętam, był to this blog post here ("writing your own xsd.exe"). Mike nie dokładnie robi to, czego szukasz (tworzenie listy zamiast tablic), ale może to być punkt wyjścia.

Marc

Powiązane problemy