/*
 * Semistrukturierte Daten - SS 2008
 * Uebungsbeispiel 3
 *
 */

public class Bsp3 {
	
	public static void main(String[] args) {
		
		// Argumentueberpruefung
		if (args.length != 1) {
			System.err.println("Usage: java Bsp3 <XML-File>");
			System.exit(1);
		}
		
		String xmlInput = args[0];
		
		Bsp3 beispiel = new Bsp3();
		
		beispiel.bsp3DOM1(xmlInput);
		beispiel.bsp3SAX1(xmlInput);
		beispiel.bsp3DOM_SAX(xmlInput);
		
	}
	
	/**
	 * Vervollstaendigen Sie die Methode. Der Name des XML-Files, welches verarbeitet werden soll,
	 * wird mittels Parameter "xmlInput" uebergeben. Benennen Sie das resultierende XML-File 
	 * "bsp3_dom1_output.xml". Dieses soll sich folgendermassen vom urspruenglichen File unterscheiden:
	 * 
	 *   * Alle Elementnamen wurden in Grossbuchstaben konvertiert
	 *   * Alle Attributnamen wurden in Kleinbuchstaben konvertiert
	 *   * Alle Processing-Instructions und Kommentare wurden entfernt
	 *   
	 * Zaehlen Sie weiters sowohl die im XML-Dokument enthaltenen Attribute als auch die Elemente und 
	 * geben Sie die entsprechenden Werte auf der Konsole aus.
	 * 
	 * Verwenden Sie fuer die Loesung dieser Teilaufgabe einen DOM-Baum.
	 * Verwenden Sie weitere Methoden bzw. Inner-Classes, wenn dies Sinn macht.
	 * 
	 */
	private void bsp3DOM1(String xmlInput) {
		
		// @TODO Hier Ihr Code
		
	}
	
	/**
	 * Vervollstaendigen Sie die Methode. Der Name des XML-Files, welches verarbeitet werden soll,
	 * wird mittels Parameter "xmlInput" uebergeben. Geben Sie Ihre Loesung einfach auf der Konsole
	 * aus. Diese soll sich folgendermassen vom urspruenglichen File unterscheiden:
	 * 
	 *   * Alle Elementnamen wurden in Grossbuchstaben konvertiert
	 *   * Alle Attributnamen wurden in Kleinbuchstaben konvertiert
	 *   * Alle Processing-Instructions und Kommentare wurden entfernt
	 *   
	 * Zaehlen Sie weiters sowohl die im XML-Dokument enthaltenen Attribute als auch die Elemente und 
	 * geben Sie die entsprechenden Werte auf der Konsole aus.
	 * 
	 * Verwenden Sie fuer die Loesung dieser Teilaufgabe einen SAX Prozessor.
	 * Verwenden Sie weitere Methoden bzw. Inner-Classes, wenn dies Sinn macht.
	 * 
	 */
	private void bsp3SAX1(String xmlInput) {
		
		// @TODO Hier Ihr Code
		
	}
	
	
	
	/**
	 * Vervollstaendigen Sie die Methode. Der Name des XML-Files, welches verarbeitet werden soll,
	 * wird mittels Parameter "xmlInput" uebergeben:
	 *   * Lesen Sie eine XML Datei mit SAX ein, und bauen Sie einen DOM Baum im Speicher auf.
	 *   * Jedes Element im DOM Baum soll ein zusaetzliches Attribut position erhalten in dem die 
	 *     Position in Document-Order festgehalten wird.
	 *   * Der DOM Baum soll in die Datei "bsp3_dom2_output.xml" ausgeben werden.
	 *
	 * Kuemmern Sie sich in diesem Beispiel nur um Elemente, Attribute, 
	 * Processing Instructions und Text.
	 * Beachten Sie dass Character-Events in SAX mehrfach auftreten koennen, und nicht den gesamten 
	 * Text-Inhalt auf einmal beinhalten.
	 * Verwenden Sie weitere Methoden bzw. Inner-Classes, wenn dies Sinn macht.
	 */
	private void bsp3DOM_SAX (String xmlInput) {
		
		// @TODO Hier Ihr Code
		
	}
	
}


