Tworzenie klasy do deserializacji pliku XML

![]() |
Image via Wikipedia |
Jak zdeserializować plik XML jeżeli nie posiadamy klasy, która została zserializowana.
Do zdeserializowania pliku XML potrzebujemy odpowiedną klasę, która przyjmę dane z pliku.
Za pomocą narzędzia znajdującego się w Windows SDK możemy potrzebne klasy wygenerować. Owym narzędziem rozwiązującym problem jest xsd.exe znajdujący się domyślnie w katalogu:
(Windows 7 x64)
C:Program Files (x86)Microsoft SDKsWindowsv7.0ABin
Aby wygenerować potrzebną mam klasę uruchamiamy Visual Studio Command Prompt znajdujący się w:
Start->Wszystkie programy -> Microsoft Visual Studio 2010 -> Visual Studio Tools
Odtworzy się nam okno wiersza poleceń przechodzimy w nim do katalogu z naszym plikiem .xml i wykonujemy następujące czynności:
- xsd filename.xml – tworzony jest plik XSD dla naszego pliku XML. Jeżeli takowy plik już istnieje pomijamy ten krok.
- Plik XSD posiada opis schematu pliku XML (jakie pola występują w pliku)
- Warto przejrzeć wygenerowany plik ponieważ to narzędzie przyjmuje że każda dana jest stringiem, warto zamienić odpowiednie wpisy w pliku na inny typ
- Typ pola w XSD jest definiowany za pomocą atrybutu type, oprócz xs:string może zawierać następujące typy
- xs:dateTime
- xs:time
- xs:date
- xs:integer
- xs: float
- xs:double
- resztę typów możliwych do wprowadzenie można znaleźć na stronach W3C
- xsd filename.xsd /c – tworzone są klasy w języku C#
- Można również utworzyć klasę w innym języku korzystając z przełącznika /language.
- Przykłady:
- /language:VB – Visual Basic
- /language:CPP – C++/CLI
- Zdeserializować przy użyciu klasy XmlSerializer