Aufgabenblatt13_XML_2.txt 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. Aufgabenblatt 13 – XML
  2. 13.1) JAXP - DOM
  3. Erweitere das Projekt „21_DOM_Demo“ wie folgt:
  4. ⦁ Schreiben: neue Terminart „Kongresse“ + 2 neue Termine
  5. ⦁ Schreiben: zusätzliche Info für jeden Termin „wo“
  6. ⦁ Lesen: Sämtliche Termine inkl. aller Informationen auf der Konsole ausgeben
  7. 13.2) JAXP – SAX
  8. Erweitere das Projekt „22_SAX_Demo“ so, daß die aus 13.1 erstellte XML-Datei vollständig ausgelesen wird.
  9. 13.3) JAXP – StaX
  10. Erweitere das Projekt „23_STAX_Demo“ wie folgt:
  11. ⦁ Schreiben: neue Terminart „Kongresse“ + 2 neue Termine
  12. ⦁ Schreiben: zusätzliche Info für jeden Termin „wo“
  13. ⦁ Lesen: Sämtliche Termine inkl. aller Informationen auf der Konsole ausgeben
  14. 13.4) JAXB – Serialisierung
  15. Gegeben ist folgendes Klassengerüst
  16. ⦁ Implementiere das folgende Klassengerüst (+ zusätzlich alle Getter und Setter)
  17. ⦁ Lege in der Klasse „Hauptprogramm.java“ eine Schulklasse mit 5 Schülern an
  18. ⦁ Speichere die Klasse + Schüler mittels JAXB – Serialisierung als XML-Datei ab
  19. ⦁ Lese die soeben angelegte XML-Datei wieder ein und gib sämtliche Informationen der Klasse aus.
  20. ⦁ Was passiert beim Einlesen der XML-Datei wenn man zuvor
  21. ⦁ aus der XML-Datei das Attribut „nachname“ bei allen Schülern löscht?
  22. ⦁ ein neues Attribut „Alter“ bei jedem Schüler hinzufügt
  23. ⦁ nur bei einem Schüler das Attribut „nachname“ löscht?
  24. ⦁ nur bei einem Schüler ein neues Attribut hinzufügt?
  25. ⦁ Definiere das Attribut „name“ der Klasse „Klasse“ einmal als XML-Element, einmal als XML-Attribut. Vergleiche die beiden Varianten der XML-Ausgaben. Worin liegt der Unterschied?
  26. 13.5) JAXB / TreeSet
  27. ⦁ Erstelle ein TreeSet mit 10 Werten (Typ egal)
  28. ⦁ Gib den TreeSet auf der Konsole aus
  29. ⦁ Schreibe den TreeSet in eine XML-Datei
  30. ⦁ Hole den TreeSet wieder aus der XML-Datei und gib diesen auf der Konsole aus.
  31. 13.6_A) DOM
  32. Erstelle ein neues Projekt und bilde die XML-Datei wie in Aufgabe 13.4 beschrieben mit DOM ab (erstellen & auslesen)
  33. 13.6_B) SAX
  34. Erstelle ein neues Projekt und lese die XML-Datei wie in Aufgabe 13.4 beschrieben mittels SAX aus. Als Ergebnis soll ein Objekt vom Typ Klasse mit 5 Schülern entstehen! Gib zur Kontrolle alle Schüler im Objekt Klasse auf der Konsole aus.
  35. 13.6_C) StaX
  36. Erstelle ein neues Projekt und bilde die XML-Datei wie in Aufgabe 13.4 beschrieben mit StaX ab (erstellen & auf Konsole ausgeben)
  37. 13.7) JAXB / DOM / SAX / Stax
  38. Welche(n) XML-Parser kann man bei folgenden Anforderungen gut/nicht gut verwenden? Begründe deine Antwort:
  39. ⦁ Schreiben einer XML-Datei:
  40. ⦁ Schreiben einer XML-Datei mit 500.000 XML-Elementen:
  41. ⦁ Schreiben vieler verschiedener XML-Dateien über ein(!) Programm:
  42. ⦁ Lesen einer kleinen XML-Datei:
  43. ⦁ Lesen von 300.000 XML-Elementen aus einer Datei:
  44. ⦁ Lesen vieler verschiedener XML-Dateien über ein(!) Programm:
  45. 13.8) Extrahiere eine Liste der GoodGuys und der BadGuys, einmal mit den IPAddress Infos und einmal mit den Hostname Infos aus der beiliegenden XML Datei. Die Ausgabe auf der Konsole könnte wie folgt so aussehen:
  46. Good guys, IPAddress format:
  47.         IPAddress: 10.9.8.7
  48.         IPAddress: 10.9.8.7 Port="8080"
  49. Good guys, hostname format:
  50.         Hostname: www.htl-donaustadt.com
  51.         Hostname: donaustadt Port="8080"
  52. Bad guys, IPAddress format:
  53.         IPAddress: 10.9.8.8
  54.         IPAddress: 10.9.8.8 Port="9090"
  55. Bad guys, hostname format:
  56.         Hostname: www.google.com
  57.         Hostname: www.microsoft.com Port="9090"
  58. <?xml version="1.0" encoding="utf-8"?>
  59. <Nodes>
  60. <GoodGuys>
  61. <IPAddress>10.9.8.7</IPAddress>
  62. <IPAddress Port="8080">10.9.8.7</IPAddress>
  63. </GoodGuys>
  64. <BadGuys>
  65. <IPAddress>10.9.8.8</IPAddress>
  66. <IPAddress Port="9090">10.9.8.8</IPAddress>
  67. </BadGuys>
  68. <GoodGuys>
  69. <Hostname>www.htl-donaustadt.com</Hostname>
  70. <Hostname Port="80">donaustadt</Hostname>
  71. </GoodGuys>
  72. <BadGuys>
  73. <Hostname>www.google.com</Hostname>
  74. <Hostname Port="8080">www.microsoft.com</Hostname>
  75. </BadGuys>
  76. </Nodes>
  77. 13.9 Gegeben ist die beiliegende Datei Klassenliste.csv
  78. Schreibe eine Applikation, die diese Datei einliest und Schülerobjekte mit den entsprechenden Eigenschaften erzeugt. Erzeuge aus der Objektliste eine XML Datei der Klasse mit den einzelnen Schülern und den bekannten Eigenschaften:
  79. ⦁ NR
  80. ⦁ NAME
  81. ⦁ VORNAME
  82. ⦁ BSPKU
  83. ⦁ TVM
  84. ⦁ ITZ-B
  85. ⦁ ITZ-F
  86. ⦁ Geschlecht m/w
  87. Erweitere als Kontrolle anschließend dein Programm um eine Methode, welche die XML-Datei wieder einliest und die darin enthaltenen Informationen und auf der Konsole ausgibt.
  88. ;5AHIF;DA;;;;
  89. ;;;;;;
  90. ;D401;;;;;
  91. NR;NAME;VORNAME;BSPKU;TVM;ITZ-B;ITZ-F
  92. 1;B;P;x;;x;x
  93. 2;B;L;;;;
  94. 3;F;L;x;;;
  95. 4;F;P;x;x;x;x
  96. 5;F;M;;;;x
  97. 6;J;U;;x;;x
  98. 7;L;A;;;;
  99. 8;M;D;x;x;x;x
  100. 9;P;T;;x;;x
  101. 10;R;S;;;;x
  102. 11;R;M;;x;;x
  103. 12;R;D;;x;;x
  104. 13;R;M;x;x;x;x
  105. 14;R;L;x;x;x;x
  106. 15;T;N;;;;
  107. 16;V;T;;;;x
  108. 17;Y;X;;;;
  109. 18;Z;A;;;;
  110. ;;;6;8;5;12
  111. 13.10 Schach
  112.  Erstelle ein Programm das Schachfiguren (8 Bauern, 2 Türme, 2 Pferde, 2 Läufer,
  113. König Dame in den Farben Schwarz und Weiß) zufällig auf einem 8x8 Brett verteilt.
  114. Speichere anschließend den Zustand des Schachbretts in ein XML-File.
  115.  Lade anschließend den gespeicherten Zustand wieder aus der XML-Datei aus und
  116. gib ihn auf der Konsole aus.
  117. Hinweis: Es kann nur eine Figur pro Feld stehen