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. Place the schema file in a .NET project folder, and consider renaming the file to something more intuitive such as MediaWikiExport.xsd. Using Visual Studio.NET's xsd.exe tool, you can generate a .NET class file based on this schema using this VS.NET command line prompt:

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

This command will create a class file named MediaWikiExport.cs.



Klassendiagramm
The auto-generated Class file will look like this: 

Schemendiagramm
Das Schema sieht dann so aus: 

.NET-Projekt
After you add your new auto-generated class file, add the file into your .NET project, such as a console application project.

In this code sample, you will see examples of how to work with the XML file in an object-oriented way instead of parsing the raw XML. Note that this code sample below was used for the 1.13.2 version of MediaWiki.

C# 3.0 version
Here's the same example using C# 3.0 features, including type inference and a lambda expression.