skip to Main Content
Tworzenie Klasy Do Deserializacji Pliku XML

Tworzenie klasy do deserializacji pliku XML

Español: fotoXML
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
Enhanced by Zemanta

Paweł Sołtysiak

Programista, domowy kucharz i „amator amerykańskiej polityki”.
Zbieram informacje z całej sieci, po odrzuceniu chwastów i dodaniu swojej opinii publikuje na blogu.

  • eM

    Wszystko fajnie, ale mało elastycznie. Jeśli w pliku zamiast int pojawi się tekst „Niedostępne” – leżymy 🙂 Powyższe podejście wymaga dużego zaufania do autora xml 🙂 To tak bardziej w kontekście xml udostępnianego przez http.

  • @eM
    Oczywiście to rozwiązanie nie jest genialne i nie wprowadził bym go do kodu produkcyjnego.

    Jednak dla mnie osoby która chciała jednorazowo wrzucić dane do mojego programu, rozwiązanie jest wręcz genialne.

Back To Top