Manual:XML Import file manipulation in CSharp/de

Überblick
Diese Seite zeigt, wie man das MediaWiki-Schema mit Visual Studio .NET C# nutzt, um eine MediaWiki-XML-Import-Datei im Code durch die Nutzung von objektorientierter Programmierung statt durch die direkte Arbeit an der rohen XML-Datei zu manipulieren.

Ein Anwendungsfall hierfür ist, dass du vielleicht eine Reihe von Seiten auf einer Wiki-Seite hast, die verändert werden müssen. Eine Möglichkeit, um dies zu tun, ist, sie in eine XML-Datei zu exportieren, dann die XML-Datei zu manipulieren und dann die XML-Datei wieder zu importieren. Natürlich solltest du dir sicher sein, dass andere Benutzer diese Dateien nicht in der Zeit zwischen Export und Import bearbeiten können. Für Seiten mit moderater Nutzung kann dieser Ansatz angemessen sein.

Schema
Wie in diesem abgekürzten Beispiel einer XML-Import-Datei unten gezeigt, befindet sich die schemaLocation der XML-Datei in https://www.mediawiki.org/xml/export-0.3.xsd:

Lade erstmal das MediaWiki-Schema unter https://www.mediawiki.org/xml/export-0.3.xsd herunter. Platziere die Datei in einem .NET-Projektordner und ziehe in Erwägung, die Datei in etwas intuitiveres wie MediaWikiExport.xsd umzubenennen. Mit dem Werkzeug xsd.exe von Visual Studio.NET kannst du eine .NET-Klassendatei basierend auf diesem Schema unter Verwendung dieses VS.NET-Kommandozeilenbefehls generieren:

 xsd c:/inetpub/wwwroot/MyProject/MediaWikiExport.xsd /c

Dieses Kommando erzeugt eine Klassendatei namens MediaWikiExport.cs.



Klassendiagramm
Die automatisch generierte Klassendatei wird wie diese aussehen: 

Schemendiagramm
Das Schema sieht dann so aus: 

.NET-Projekt
Füge die Datei zu deinem .NET-Projekt wie ein Konsolenanwendungsprojekt hinzu, nachdem du deine neue automatisch generierte Klassendatei hinzugefügt hast.

In diesem Code-Ausschnitt siehst du Beispiele dafür, wie man mit der XML-Datei auf eine objektorientierte Weise arbeitet, statt das rohe XML zu parsen. Beachte, dass das Code-Beispiel unten für die Version 1.13.2 von MediaWiki genutzt wurde.



Version mit C# 3.0
Hier ist das Beispiel für die Nutzung von Funktionen von C# 3.0, darunter Typinterferenz und ein Lambda-Ausdruck.