xmlParser/-Writer: DTD in seperates File auslagern

javanoob88

Aktives Mitglied
Hallo,

Ich soll einen xmlParser und - Writer dazu benutzen, xml Dateien einzulesen, zu speichern und anschließend aus dem Speicher wieder in ein xml File schreiben lassen. Folgende Form ist vorgegeben:
[XML]<?xml version="1.0"?>
<!DOCTYPE xmlPersonFile [
<!ELEMENT xmlPersonFile (Person)>
<!ELEMENT Person (Id, Name, Surname, Age, Gender)>
<!ELEMENT Id (#PCDATA)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Surname (#PCDATA)>
<!ELEMENT Age (#PCDATA)>
<!ELEMENT Gender (#PCDATA)>
]>
<xmlPersonFile>

<Person Id="1">
<Name>Mustermann</Name>
<Surname>Max</Surname>
<Age>99</Age>
<Gender>m</Gender>
</Person>
<Person Id="2">
<Name>...</Name>...
</Person>
</xmlPersonFile>[/XML]

Jetzt dachte ich zunächst daran, die DTD, die ja bis zu diesem Zeichen "]>" geht, in eine seperate Datei auszulagern und dann in etwa so vorzugehen, dass die Personenobjekte mit ihren Attributen (id, name,...) in eine Collection gespeichert werden sollen. Jetzt habe ich hier zwar so einen speziellen JaxBXMLParser weiß aber nicht so richtig damit umzugehen... (siehe Screenshot)
Ich habe zwar die Methoden und Instanzvariablen dastehen, durchschaue das ganze aber nicht so recht.
Kann mir da jemand ein bisschen weiterhelfen?
 
M

Marcinek

Gast
Meines erachtens ist das ineffizient, wenn hier jemand dir erklärt, wie das geht.

1. Man muss wissen, was ein SAX Parser macht.

Dazu liest man sich die online verfügbaren Tuts und Bücher durch. - Glaub mir du bist nicht der erste Mensch, der eine XML Datei parsen will.

2. Erste kleine Versuche proggen.

Fragen können dazu gestellt werden.

Gruß,

Martin
 

javanoob88

Aktives Mitglied
Ok, also habe nun mal angefangen, mich etwas näher mit meinem SAX Parser (spezieller Parser, siehe Screenshot oben) zu beschäftigen und bin nun auf erste Schwierigkeiten gestoßen:

1. Ich weiß immernoch nicht, wie ich die DTD in eine seperate Datei auslagern kann. Es gibt ja die Methode setLocalDtdDirectory aber ich muss ja auch angeben, wo die DTD anfängt/aufhört...

2. Bei meinem Parser gibt es keine startDocument Methode ???:L Wie fange ich denn dann an? Etwa direkt mit startElement und dem root Element?

3. Was sind das für Parameter bei startElement(3x String, Attributes) und startTag(String, Attributes, Stack<String>) Kann mir jemand erklären, was da jeweils genau angegeben werden muss und wie ich die Attribute sytaktisch korrekt hinschreibe? Ich nehme an, dass die Attribute meines Objekts (id, name, surname,...) gemeint sind. (siehe xml Code oben).

Das wärs zunächst mal...
 

Oben