# xmlParser/-Writer: DTD in seperates File auslagern



## javanoob88 (24. Okt 2010)

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?


----------



## Marcinek (24. Okt 2010)

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 (24. Okt 2010)

Glaube ich dir sofort...hat jemand einen Tipp für gute Tuts, Anleitungen, HowTos, etc. ?
Bin leider unter etwas Zeitdruck...


----------



## Marcinek (24. Okt 2010)

Google

"tutorial sax parser"




Ansonsten kann ich dir das für eine geringe Gegenleistung auf dem TS erklären.


----------



## javanoob88 (25. Okt 2010)

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...


----------

