Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

SQL, XML und JSON in der Datenbankpraxis: Fehlerbehebung, Transformation und Validierung (CHC5049)

Lerne, wie du DTD-Fehler erkennst, XML- und JSON-Transformationen mit XSLT durchführst und deine Datenbankprojekte fehlerfrei validierst – praxisnah am Beispiel eines Freizeitparks mit mehreren Shops.

DTD Fehler erkennen XSLT Transformation XML XSLT Transformation JSON XML Validierung DTD JSON Validierung Datenbank Coursework CHC5049 SQL XML JSON Datenintegration Freizeitpark Datenmodell XML in JSON umwandeln XSLT 1.0 Beispiel DTD erstellen Anleitung Datenbank Hausaufgabe Hilfe XML Schema vs DTD JSON Format für Transaktionen Datenanalyse mit XML und JSON XSLT Kommentare richtig setzen

Einleitung: Datenintegration im Freizeitpark – eine typische Herausforderung

Stell dir vor, du arbeitest für einen großen Freizeitpark mit mehreren Souvenirläden. Jeder Shop generiert täglich Hunderte von Transaktionen – von Ticketkäufen bis zu Merchandise-Artikeln. Die Geschäftsleitung möchte diese Daten mit Kundeninformationen kombinieren und an einen externen Analysten übermitteln. Bisher wurden die Daten als separate XML-Dateien bereitgestellt, doch nun soll zusätzlich ein einheitliches JSON-Format eingeführt werden, um die Integration mit modernen Web-Apps und KI-gestützten Analysetools zu erleichtern. Genau hier setzt deine Aufgabe an: Fehler in einer DTD beheben, Transformationen mit XSLT durchführen und die Ergebnisse validieren. Klingt nach einem typischen Datenbank-Coursework? Ist es auch – aber mit echtem Bezug zur Praxis.

1. Fehler in der DTD erkennen und korrigieren

Der erste Schritt in deiner Aufgabe ist die Analyse der Datei transactions_sample.dtd. Oft enthalten solche DTDs typische Fehler wie falsche Elementreihenfolgen, nicht deklarierte Attribute oder fehlende Klammern. Hier ein Beispiel, wie du vorgehen kannst:

  • Fehler 1: Ein Element wird ohne vorherige Deklaration referenziert. Lösung: Deklariere das Element vor der ersten Verwendung.
  • Fehler 2: Ein Attribut ist in der DTD nicht definiert, wird aber im XML verwendet. Lösung: Füge eine ATTLIST-Deklaration hinzu.
  • Fehler 3: Die Klammern bei einer Mixed-Content-Deklaration sind falsch gesetzt. Lösung: Korrigiere die Klammerstruktur nach dem Muster (#PCDATA|Element)*.

Nachdem du die Fehler markiert und in einem JPEG dokumentiert hast, erstellst du die korrigierte DTD (2_Corrected_sample.dtd). Anschließend validierst du die XML-Datei gegen diese DTD – das Ergebnis sollte fehlerfrei sein (Screenshot 3_Validation_sample.jpeg).

2. XSLT-Transformation zu XML – Schritt für Schritt

Jetzt wird es spannend: Du erstellst ein XSLT-Stylesheet (4_Transformation_to_XML.xsl), das die Kundendaten und Transaktionsdaten aus den beiden XML-Quellen zu einem einheitlichen Dokument zusammenführt. Die Ausgabe soll ein Root-Element Transactions enthalten, das nach Shops gruppiert ist. So könnte die Struktur aussehen:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Transactions SYSTEM "6_Structure.dtd">
<Transactions>
  <Shop id="SH01" name="Hauptgeschäft">
    <Transaction>
      <Kunde>Max Mustermann</Kunde>
      <Betrag>49.99</Betrag>
      <Datum>2026-05-08</Datum>
    </Transaction>
  </Shop>
</Transactions>

Wichtig: In deinem XSLT musst du <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> setzen und die DTD automatisch einbinden. Das erreichst du, indem du im XSLT das <xsl:processing-instruction>-Element verwendest oder die DTD direkt als Teil des Output-Templates einfügst. Vergiss nicht, deinen Code ausführlich zu kommentieren – das zeigt deinem Dozenten, dass du verstehst, was du tust.

3. Die passende DTD für das XML-Output erstellen

Die DTD 6_Structure.dtd muss die Struktur deines Outputs exakt beschreiben. Achte auf logische Namenskonventionen und mindestens ein Attribut (z. B. id für den Shop). Ein Ausschnitt könnte so aussehen:

<!ELEMENT Transactions (Shop+)>
<!ELEMENT Shop (Transaction*)>
<!ATTLIST Shop id ID #REQUIRED name CDATA #IMPLIED>
<!ELEMENT Transaction (Kunde, Betrag, Datum)>
<!ELEMENT Kunde (#PCDATA)>
<!ELEMENT Betrag (#PCDATA)>
<!ELEMENT Datum (#PCDATA)>

Nachdem du die DTD erstellt hast, validierst du die Output-XML gegen diese DTD. Der Screenshot 7_Validation_XML.jpeg beweist die Korrektheit.

4. XSLT-Transformation zu JSON – modern und flexibel

JSON ist das bevorzugte Format vieler moderner APIs und Datenbanken. In deinem zweiten XSLT (8_Transformation_to_JSON.xsl) erzeugst du eine JSON-Datei, die dieselben Daten wie das XML-Output enthält, aber in einem strukturierten, leichtgewichtigen Format. Ein Beispiel für die Ausgabe (9_Output.json):

{
  "Transactions": {
    "Shop": [
      {
        "@id": "SH01",
        "@name": "Hauptgeschäft",
        "Transaction": [
          {
            "Kunde": "Max Mustermann",
            "Betrag": 49.99,
            "Datum": "2026-05-08"
          }
        ]
      }
    ]
  }
}

Beachte: JSON erfordert korrekte Anführungszeichen und Kommasetzung. Verwende in XSLT die Methode text und baue den JSON-String manuell oder mit Hilfe von Templates. Auch hier sind Kommentare im XSLT Pflicht. Nach der Transformation validierst du die JSON-Datei mit einem Online-Validator (z. B. jsonlint.com) und speicherst den Screenshot als 10_Validation_json.jpeg.

5. Tipps für die Abgabe und Vermeidung von Fehlern

Die Abgabe erfolgt als ZIP-Datei mit exakten Dateinamen. Achte besonders auf Groß-/Kleinschreibung und Dateiendungen. Ein häufiger Fehler ist die falsche Benennung der JPEG-Dateien – sie müssen genau 1_DTD_sample_Errors.jpeg etc. heißen. Teste deine Transformationen gründlich: Verwende verschiedene XML-Eingaben, um sicherzustellen, dass dein XSLT robust ist. Denke daran, dass die DTD für das XML-Output automatisch referenziert werden muss – nicht manuell hinzufügen!

Fazit: Vom DTD-Fehler zur validen JSON-Datei

Mit dieser Anleitung hast du einen klaren Fahrplan für dein CHC5049-Coursework. Du hast gelernt, wie man DTD-Fehler erkennt, XSLT-Transformationen für XML und JSON schreibt und die Ergebnisse validiert. Diese Fähigkeiten sind nicht nur für die Uni relevant, sondern auch in der Praxis gefragt – egal ob du Daten für eine KI-Analyse aufbereitest oder eine moderne E-Commerce-Plattform mit JSON-Schnittstellen betreibst. Viel Erfolg bei deiner Abgabe!