XML parsen < Sonstiges < Hochschule < Informatik < Vorhilfe
|
|
Hallo Bastiane,
> 1.) Um das Dokument überhaupt parsen zu können, muss ich es ja irgendwo (als Datei??) in den Computer bekommen. Kann ich es da mit einem beliebigen Editor schreiben? Oder wie muss ich das machen?
Ja natürlich! XML ist ja Klartext. Also: Wordpad oder einen XML-fähigen (Syntax-Highlighting!) Editor öffnen, schreiben, speichern, fertig!
> 2.) Die Datei "query", die erzeugt werden soll - womit wird die erzeugt?
> Und wo gebe ich dieses "echo..." ein um das irgendwie aufzurufen?
Aah! Windows-Benutzerin? (ich auch) Das Beispiel bezieht sich wahrscheinlich auf ein Unix-BS, aber auch Windows hat eine Kommandozeile: Windows-Taste und R drücken, "cmd" eintippen und du bekommst eine Kommandozeile.
Dort tippst du dann "echo / > query" ein und der Befehl echo (der das tut, was sein Name sagt) wiederholt die Eingabe (den /), wobei die Ausgabe aber durch das > umgeleitet wird in die Datei query.
Schon hast du deine Datei erzeugt.
Beachte: Eine etwaige alte Datei desselben Namens wird gnadenlos überschrieben!
Vorher ggf. noch mit dem cd-Befehl ins richtige Verzeichnis wechseln!
Ein "help" in der Kommandozeile kann helfen.
Viele Befehle untertützen auch die Option "/?", die weiterhelfen kann. Also z.B.: cd /?
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 00:15 Mo 29.10.2007 | Autor: | Bastiane |
Hallo Martin!
> > 1.) Um das Dokument überhaupt parsen zu können, muss ich es
> ja irgendwo (als Datei??) in den Computer bekommen. Kann
> ich es da mit einem beliebigen Editor schreiben? Oder wie
> muss ich das machen?
> Ja natürlich! XML ist ja Klartext. Also: Wordpad oder einen
> XML-fähigen (Syntax-Highlighting!) Editor öffnen,
> schreiben, speichern, fertig!
Hab's mit Wordpad gemacht. Aber muss ich es dann als ".xml" speichern? Hab' ich jedenfalls mal beides gemacht - so, wie's voreingestellt war und mit .xml.
> > 2.) Die Datei "query", die erzeugt werden soll - womit wird
> die erzeugt?
> > Und wo gebe ich dieses "echo..." ein um das irgendwie
> aufzurufen?
> Aah! Windows-Benutzerin? (ich auch) Das Beispiel bezieht
> sich wahrscheinlich auf ein Unix-BS, aber auch Windows hat
> eine Kommandozeile: Windows-Taste und R drücken, "cmd"
> eintippen und du bekommst eine Kommandozeile.
> Dort tippst du dann "echo / > query" ein und der Befehl
> echo (der das tut, was sein Name sagt) wiederholt die
> Eingabe (den /), wobei die Ausgabe aber durch das >
> umgeleitet wird in die Datei query.
> Schon hast du deine Datei erzeugt.
> Beachte: Eine etwaige alte Datei desselben Namens wird
> gnadenlos überschrieben!
> Vorher ggf. noch mit dem cd-Befehl ins richtige
> Verzeichnis wechseln!
Ja, genau, benutze Windows. Mit was anderem kenne ich mich nicht aus . Jedenfalls hat das soweit geklappt.
Allerdings kommt dann, wenn ich den Befehl "java..." eingebe, folgende Fehlermeldung:
"Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/saxon/Query"
Was genau heißt das und was tue ich dagegen? Was hat das Ganze mit Java zu tun, wofür erzeuge ich eine fast leere Datei und was bedeutet dieser java-Befehl? Evtl. verstehe ich dann ein bisschen mehr, was ich da überhaupt gerade mache...
Viele Grüße
Bastiane
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 00:41 Mo 29.10.2007 | Autor: | rainerS |
Hallo Bastiane,
> Hab's mit Wordpad gemacht. Aber muss ich es dann als ".xml"
> speichern? Hab' ich jedenfalls mal beides gemacht - so,
> wie's voreingestellt war und mit .xml.
Kommt drafu an. Dem Windows ist es eigentlich egal, ob die Datei query.xml heisst oder nicht. Der Explorer zeigt .xml Dateien mit anderem Symbol an
> Ja, genau, benutze Windows. Mit was anderem kenne ich mich
> nicht aus . Jedenfalls hat das soweit geklappt.
> Allerdings kommt dann, wenn ich den Befehl "java..."
> eingebe, folgende Fehlermeldung:
>
> "Exception in thread "main" java.lang.NoClassDefFoundError:
> net/sf/saxon/Query"
>
> Was genau heißt das und was tue ich dagegen? Was hat das
> Ganze mit Java zu tun, wofür erzeuge ich eine fast leere
> Datei und was bedeutet dieser java-Befehl? Evtl. verstehe
> ich dann ein bisschen mehr, was ich da überhaupt gerade
> mache...
Du sollst die (fehlerhafte) XML-Datei mit einem XML-Parser verarbeiten. In diesem speziellen Fall sollst du das in Java geschriebene Programm Saxon benutzen. Saxon ist eigentlich ein XQuery-Prozessor, das ist ein Programm, das Teile aus einer XML-Datei extrahieren kann. Dazu muss es natürlich die XML-Datei parsen können. Mit dem einsamen / in der Datei query wird nach dem gesamten XML-Dokument gefragt. Wenn die XML-Datei korrekt ist, wird sie ausgegeben, ansonsten wird Saxon einen Fehler melden.
Die Kommandozeile
java -cp saxon8.jar net.sf.saxon.Query -1.1 -s meine_datei.xml query
weist java an, den Java-Bytecode in saxon8.jar zu laden und die main-Methode der Klasse net.sf.saxon.Query zu aufzurufen.
Die Fehlermeldung sagt, dass java die Klasse nicht gefunden hat. Hast du denn die Datei saxon8.jar in demselben Verzeichnis wie die Datei query?
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 01:01 Mo 29.10.2007 | Autor: | Bastiane |
Hallo Rainer!
> > "Exception in thread "main" java.lang.NoClassDefFoundError:
> > net/sf/saxon/Query"
> >
> > Was genau heißt das und was tue ich dagegen? Was hat das
> > Ganze mit Java zu tun, wofür erzeuge ich eine fast leere
> > Datei und was bedeutet dieser java-Befehl? Evtl. verstehe
> > ich dann ein bisschen mehr, was ich da überhaupt gerade
> > mache...
>
> Du sollst die (fehlerhafte) XML-Datei mit einem XML-Parser
> verarbeiten. In diesem speziellen Fall sollst du das in
> Java geschriebene Programm
> Saxon benutzen. Saxon ist
> eigentlich ein XQuery-Prozessor, das ist ein Programm, das
> Teile aus einer XML-Datei extrahieren kann. Dazu muss es
> natürlich die XML-Datei parsen können. Mit dem einsamen /
> in der Datei query wird nach dem gesamten XML-Dokument
> gefragt. Wenn die XML-Datei korrekt ist, wird sie
> ausgegeben, ansonsten wird Saxon einen Fehler melden.
Vielen Dank - jetzt verstehe ich schon etwas mehr.
> Die Kommandozeile
> 1: | java -cp saxon8.jar net.sf.saxon.Query -1.1 -s
| 2: | > meine_datei.xml query |
> weist java an, den Java-Bytecode in saxon8.jar zu laden
> und die main-Methode der Klasse
> net.sf.saxon.Query zu aufzurufen.
>
> Die Fehlermeldung sagt, dass java die Klasse nicht gefunden
> hat. Hast du denn die Datei saxon8.jar in demselben
> Verzeichnis wie die Datei query?
Hehe - ne, mein altbeliebter Fehler. Hab's jetzt in dasselbe Verzeichnis gepackt, und theoretisch funktioniert es. Allerdings erhalte ich dann direkt eine Fehlermeldung für Zeile 1, Spalte 1. Die ersten Zeilen des Dokuments sehen so aus:
1 <! -- Mein zweiter Versuch , XML zu schreiben : -) -->
2 <?xml version ="1.1 " encoding ="UTF -8"?>
3 <html xmlns =" http: // www .w3.org /1999/ xhtml " xml:lang ="en" lang ="en">
4 <head id="e1">
Dürfen die Zahlen eigentlich in der Datei mit drin stehen? Wahrscheinlich nicht, aber ohne hat's bisher auch nicht geklappt.
Jedenfalls kommt als erste Fehlermeldung: "Content is not allowed in prolog." Was genau heißt das? Was darf da jetzt wo nicht stehen? Habe gedacht, dass da vllt kein Kommentar am Anfang stehen darf, aber als ich ihn gelöscht habe, hat es auch nicht funktioniert.
Dann habe ich auch mal die Datei aus meiner ersten Aufgabe genommen, und da gibt er dann als Fehlermeldung: "XML version "1.1 " is not supported, only XML 1.0 is supported." Wie kann ich das denn ändern? In der Aufgabenstellung heißt es nämlich ausdrücklich, dass es nur um XML 1.1 geht.
Viele Grüße
Bastiane
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:21 Mo 29.10.2007 | Autor: | rainerS |
Hallo Bastiane!
> Hehe - ne, mein altbeliebter Fehler. Hab's
> jetzt in dasselbe Verzeichnis gepackt, und theoretisch
> funktioniert es. Allerdings erhalte ich dann direkt eine
> Fehlermeldung für Zeile 1, Spalte 1. Die ersten Zeilen des
> Dokuments sehen so aus:
>
> 1 <! -- Mein zweiter Versuch , XML zu schreiben : -) -->
> 2 <?xml version ="1.1 " encoding ="UTF -8"?>
> 3 <html xmlns =" http: // www .w3.org /1999/ xhtml "
> xml:lang ="en" lang ="en">
> 4 <head id="e1">
>
> Dürfen die Zahlen eigentlich in der Datei mit drin stehen?
> Wahrscheinlich nicht, aber ohne hat's bisher auch nicht
> geklappt.
Nein, die Zahlen sind ja kein XML.
> Jedenfalls kommt als erste Fehlermeldung: "Content is not
> allowed in prolog." Was genau heißt das? Was darf da jetzt
> wo nicht stehen? Habe gedacht, dass da vllt kein Kommentar
> am Anfang stehen darf, aber als ich ihn gelöscht habe, hat
> es auch nicht funktioniert.
Doch der Kommentar darf da nicht stehen; die erste Zeile muss mit <?xml ... > anfangen.
> Dann habe ich auch mal die Datei aus meiner ersten Aufgabe
> genommen, und da gibt er dann als Fehlermeldung: "XML
> version "1.1 " is not supported, only XML 1.0 is
> supported." Wie kann ich das denn ändern? In der
> Aufgabenstellung heißt es nämlich ausdrücklich, dass es nur
> um XML 1.1 geht.
Bist du sicher, dass da nicht steht: "XML version "1.1 " is not supported, only XML 1.0
and XML 1.1 are supported."?
Das ist schon OK so, denn da ist ein XML-Fehler, ein Leerzeichen zu viel. Es steht da:
version ="1.1 "
es muss heissen
version ="1.1"
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 15:36 Mo 29.10.2007 | Autor: | Bastiane |
Hallo Rainer!
> > Jedenfalls kommt als erste Fehlermeldung: "Content is not
> > allowed in prolog." Was genau heißt das? Was darf da jetzt
> > wo nicht stehen? Habe gedacht, dass da vllt kein Kommentar
> > am Anfang stehen darf, aber als ich ihn gelöscht habe, hat
> > es auch nicht funktioniert.
>
> Doch der Kommentar darf da nicht stehen; die erste Zeile
> muss mit <?xml ... > anfangen.
Vielen, vielen Dank. Hatte da noch irgendwie einen anderen Fehler - hatte das in irgendeinem komischen Format gespeichert, wo er dann noch irgendeine Information (es sah mir nach einer "Schriftart-Definition" und ähnlichem aus) vor die erste Zeile geschrieben hat, so dass er darüber natürlich auch noch meckern musste. Jetzt bin ich schon ein Stückchen weiter gekommen...
Allerdings steht dann später in der Datei Folgendes:
7 <body id="e1">
8 <p>Moved to <a href =" http: // example .org/">example .org </a>.</p>
9 <p lang ="de"/>
10 Gr& uuml ; ndlich pr& uuml ;fen !.
11 Der Tabulator ist sehr hilfreich .
12 </p>
13 <foo >Another English sentence .</foo >
14 <table align =" left " align ="top ">
15 <tr >
16 <td align = center >
17 1
18 </tr >
19 </td >
20 </ table >
21 </ body >
Dort meckert er in Zeile 10 darüber, dass hinter & ein Leerzeichen steht. Die Leerzeichen habe ich dann alle entfernt (also die hinter den & und vor dem ;), aber dann meckert er, dass "uuml" nicht deklariert wurde. Kann es sein, dass das & irgendwie anders verwendet werden soll - es soll doch wahrscheinlich an dieser Stelle ein "ü" dargestellt werden, aber wie das mit diesem & funktioniert weiß ich nicht. Ob du mir da nochmal helfen könntest?
Viele Grüße
Bastiane
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:09 Mo 29.10.2007 | Autor: | rainerS |
Hallo Bastiane,
> Allerdings steht dann später in der Datei Folgendes:
>
> 7 <body id="e1">
> 8 <p>Moved to <a href =" http: // example .org/">example
> .org </a>.</p>
> 9 <p lang ="de"/>
> 10 Gr& uuml ; ndlich pr& uuml ;fen !.
> 11 Der Tabulator ist sehr hilfreich .
> 12 </p>
> 13 <foo >Another English sentence .</foo >
> 14 <table align =" left " align ="top ">
> 15 <tr >
> 16 <td align = center >
> 17 1
> 18 </tr >
> 19 </td >
> 20 </ table >
> 21 </ body >
>
> Dort meckert er in Zeile 10 darüber, dass hinter & ein
> Leerzeichen steht. Die Leerzeichen habe ich dann alle
> entfernt (also die hinter den & und vor dem ;), aber dann
> meckert er, dass "uuml" nicht deklariert wurde.
Schau mal in die XML Spec, Abschnitt 4.6. "ü" müsste in der DTD deklariert werden.
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 00:59 Di 30.10.2007 | Autor: | Bastiane |
Hallo Rainer!
> > Allerdings steht dann später in der Datei Folgendes:
> >
> > 7 <body id="e1">
> > 8 <p>Moved to <a href =" http: // example
> .org/">example
> > .org </a>.</p>
> > 9 <p lang ="de"/>
> > 10 Gr& uuml ; ndlich pr& uuml ;fen !.
> > 11 Der Tabulator ist sehr hilfreich .
> > 12 </p>
> > 13 <foo >Another English sentence .</foo >
> > 14 <table align =" left " align ="top ">
> > 15 <tr >
> > 16 <td align = center >
> > 17 1
> > 18 </tr >
> > 19 </td >
> > 20 </ table >
> > 21 </ body >
> >
> > Dort meckert er in Zeile 10 darüber, dass hinter & ein
> > Leerzeichen steht. Die Leerzeichen habe ich dann alle
> > entfernt (also die hinter den & und vor dem ;), aber dann
> > meckert er, dass "uuml" nicht deklariert wurde.
>
> Schau mal in die XML Spec, Abschnitt 4.6. "ü" müsste
> in der DTD deklariert werden.
Sorry, dass ich so viel frage, aber diese Antwort war nicht wirklich hilfreich. Zuerst hat er dein "ü" in ein "ü" umgewandelt, und erst jetzt, beim schreiben meiner Frage, sehe ich, dass du dort gar nicht ü geschrieben hattest...
Heißt das denn jetzt, ich muss dort so was wie: <!ENTITY lt "<"> irgendwo hin schreiben? Wenn ja, an welche Stelle? Unmittelbar bevor es in dem Dokument verwendet wird? Oder ganz an den Anfang (nach der ?xml-Zeile)? Was kann ich mir eigentlich unter "entity" vorstellen - LEOs Übersetzungen helfen mir da nicht wirklich weiter. Und was steht da dann statt "lt"? Kann ich da einfach ein ü hinschreiben oder wie ist das gedacht?
Und dann habe ich den Fehler auch schon übergangen (um schon mal die nächsten Fehler zu finden), indem ich das ü einfach weglasse. Dann meckert er, dass <body> durch </body> abgeschlossen werden müsste. Ok - da ist wieder ein Leerzeichen zu viel, aber wenn ich das wegmache, meckert er immer noch über dasselbe. Und selbst, wenn ich beide body-Befehle wegmache, meckert er über dasselbe bei html, was noch außen drum steht. Irgendwie verstehe ich das nicht - das wird doch vernünftig mit einem </html> abgeschlossen - steht da vielleicht irgendwas drin, was nicht drin stehen darf, so dass der Befehl früher kommen müsste? Es dürfen ja, soweit ich das verstanden habe, auch keine "überlappenden" Sachen auftreten, aber es wird erst vernünftig der body geschlossen und dann erst html. Und im body wird doch auch erst alles vernünftig beendet, oder nicht (wobei tr und td wohl noch vertauscht werden müssen...)?
Viele Grüße
Bastiane
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:51 Di 30.10.2007 | Autor: | rainerS |
Hallo Bastiane!
> Hallo Rainer!
>
> > > Allerdings steht dann später in der Datei Folgendes:
> > >
> > > 7 <body id="e1">
> > > 8 <p>Moved to <a href =" http: // example
> > .org/">example
> > > .org </a>.</p>
> > > 9 <p lang ="de"/>
> > > 10 Gr& uuml ; ndlich pr& uuml ;fen !.
> > > 11 Der Tabulator ist sehr hilfreich .
> > > 12 </p>
> > > 13 <foo >Another English sentence .</foo >
> > > 14 <table align =" left " align ="top ">
> > > 15 <tr >
> > > 16 <td align = center >
> > > 17 1
> > > 18 </tr >
> > > 19 </td >
> > > 20 </ table >
> > > 21 </ body >
> > >
> > > Dort meckert er in Zeile 10 darüber, dass hinter & ein
> > > Leerzeichen steht. Die Leerzeichen habe ich dann alle
> > > entfernt (also die hinter den & und vor dem ;), aber dann
> > > meckert er, dass "uuml" nicht deklariert wurde.
> >
> > Schau mal in die XML Spec, Abschnitt 4.6. "ü" müsste
> > in der DTD deklariert werden.
>
> Sorry, dass ich so viel frage, aber diese Antwort war nicht
> wirklich hilfreich. Zuerst hat er dein
> "ü" in ein "ü" umgewandelt, und erst
> jetzt, beim schreiben meiner Frage, sehe ich, dass du dort
> gar nicht ü geschrieben hattest...
Sorry, das hatte ich übersehen.
> Heißt das denn jetzt, ich muss dort so was wie: <!ENTITY
> lt "<"> irgendwo hin schreiben?
Du musst unterscheiden zwischen der XML-Spezifikation und dem, was in der Document Type Definition (DTD) steht. Im der Spez. sind zunächst nur < (<), > (>), & (&), ' (') und " (") definiert. Die musst du nicht definieren. Alle Anderen, wie ü (ü) sind zunächst unbekannt.
> Wenn ja, an
> welche Stelle?
Normalerweise stehen die in der DTD, auf die entweder in doctypedecl verwiesen wird, oder die direkt ale markupdecl auftritt (Abschnitt 2.8). Das steht als Teil des Prologs unmittelbar nach der 1. Zeile.
> Was kann ich mir eigentlich unter "entity"
> vorstellen - LEOs Übersetzungen helfen mir da nicht
> wirklich weiter.
"Einheit" trifft es ganz gut: ein Ding, das nicht weiter zerlegt werden kann. Du kannst es dir als Abkürzung oder Ersatzdarstellung denken. < dient dazu, ein <-Zeichen darzustellen, das nicht Einleitung eines X ML-Elements wie <body...> ist.
> Und dann habe ich den Fehler auch schon übergangen (um
> schon mal die nächsten Fehler zu finden), indem ich das ü
> einfach weglasse. Dann meckert er, dass <body> durch
> </body> abgeschlossen werden müsste. Ok - da ist wieder ein
> Leerzeichen zu viel, aber wenn ich das wegmache, meckert er
> immer noch über dasselbe. Und selbst, wenn ich beide
> body-Befehle wegmache, meckert er über dasselbe bei html,
> was noch außen drum steht. Irgendwie verstehe ich das nicht
> - das wird doch vernünftig mit einem </html> abgeschlossen
> - steht da vielleicht irgendwas drin, was nicht drin stehen
> darf, so dass der Befehl früher kommen müsste? Es dürfen
> ja, soweit ich das verstanden habe, auch keine
> "überlappenden" Sachen auftreten, aber es wird erst
> vernünftig der body geschlossen und dann erst html. Und im
> body wird doch auch erst alles vernünftig beendet, oder
> nicht (wobei tr und td wohl noch vertauscht werden
> müssen...)?
Vertausche erstmal tr und td. Viele XML-Parser geraten bei Fehlern ins Stolpern und meckern dann über eigentlich korrekte Eingaben weiter unten. Ich schau's mir morgen mal genauer an.
Jetzt erstmal
Viele Grüße
Rainer
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:48 Di 30.10.2007 | Autor: | Bastiane |
Hallo Rainer!
> > Heißt das denn jetzt, ich muss dort so was wie: <!ENTITY
> > lt "<"> irgendwo hin schreiben?
>
> Du musst unterscheiden zwischen der XML-Spezifikation und
> dem, was in der Document Type Definition (DTD) steht. Im
> der Spez. sind zunächst nur < (<),
> > (>), & (&),
> ' (') und " (")
> definiert. Die musst du nicht definieren. Alle Anderen, wie
> ü (ü) sind zunächst unbekannt.
>
> > Wenn ja, an
> > welche Stelle?
>
> Normalerweise stehen die in der DTD, auf die entweder in
> doctypedecl verwiesen wird, oder die direkt ale markupdecl
> auftritt (Abschnitt 2.8). Das steht als Teil des Prologs
> unmittelbar nach der 1. Zeile.
Nach der ersten Zeile hieße also zwischen xml und html!? Irgendwie habe ich das bisher noch nicht hinbekommen, das zu definieren.
In der Vorlesung hatten wir ein Beispiel, wo stand:
<!ENTITY % ISOLat2
SYSTEM "http://www.xml.com/iso/isolat2-xml.ent" >
wo doch dann wohl das ü direkt mitdefiniert würde, oder? Allerdings scheint es den Link nicht mehr zu geben. Was für einen Link könnte man da sonst hinsetzen, dass das funktioniert? Oder ich muss es halt nochmal per Hand mit dem ü versuchen...
> Vertausche erstmal tr und td. Viele XML-Parser geraten bei
> Fehlern ins Stolpern und meckern dann über eigentlich
> korrekte Eingaben weiter unten. Ich schau's mir morgen mal
> genauer an.
Das hatte ich selbstverständlich schon ausprobiert - hat aber leider nicht geholfen. Es kommt immer noch dieselbe Fehlermeldung...
Viele Grüße
Bastiane
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:02 Di 30.10.2007 | Autor: | Martin243 |
Hallo Bastiane,
da sind natürlich noch einige Fehler mehr.
Mit dem ü muss dir Rainer weiterhelfen, aber was die restlichen Fehler angeht:
ALLE überflüssigen Leerzeichen entfernen
Das "/" aus <p lang ="de"/> entfernen
Das zweite "align"-Statement aus <table align =" left " align ="top ">
entfernen
In <td align = center > muss das center in Gänseknochen
Dann dürfte es (ohne die ü's) gehen. Oder habe ich etwas übersehen?
Gestern abend habe ich es nämlich ausprobiert.
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 15:20 Mi 31.10.2007 | Autor: | Bastiane |
Hallo ihr beiden!
Vielen Dank für die großen Hilfen! Bin jetzt so weit, dass es anscheinend funktioniert (auch wenn ich die ü's doch immer noch weglasse...). Da habe ich allerdings immer noch zwei Probleme - aber ich werde es wohl so abgeben können (morgen, trotz Feiertag ).
Und zwar: ganz am Ende kommt nach dem schließenden html-Tag noch ein <appendix> mit einer Zeile und dann </appendix>. Da wird gemeckert, dass das Element nach dem root-Element wohlgeformt sein müsste. Heißt das jetzt, dass nach Regel 1:
[1] document ::= ( prolog element Misc* ) - ( Char* RestrictedChar Char* )
dass da nur ein einziges "element" stehen darf, und das ist schon das html, und danach dürfte höchstens noch "Misc" kommen, was auch immer genau das sein mag - auf appendix trifft es wohl nicht zu. Habe den appendix vor den schließenden html-Tag gepackt, und dann funktioniert es. Aber kann ich da als Fehlerbeschreibung hinschreiben, dass halt nach dem "element" höchstens noch "Misc" kommen dürfte?
Zweites Problem: wenn jetzt alle Fehler raus sind, müsste man sich dieses Dokument doch vernünftig mit einem Browser angucken können, oder habe ich da etwas falsch verstanden? Also mit dem java-Befehl zeigt er mir dann statt einer Fehlermeldung das komplette Dokument an, aber wenn ich die Datei mit einem Doppelmausklick öffnen will, meckert er immer noch über einen angeblichen Fehler in der ersten Zeile (so, wie ganz am Anfang).
Viele Grüße
Bastiane
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:19 Mi 31.10.2007 | Autor: | rainerS |
Hallo Bastiane!
> Und zwar: ganz am Ende kommt nach dem schließenden html-Tag
> noch ein <appendix> mit einer Zeile und dann </appendix>.
> Da wird gemeckert, dass das Element nach dem root-Element
> wohlgeformt sein müsste. Heißt das jetzt, dass nach Regel
> 1:
> [1] document ::= ( prolog element Misc* ) - ( Char*
> RestrictedChar Char* )
> dass da nur ein einziges "element" stehen darf, und das
> ist schon das html,
> und danach dürfte höchstens noch "Misc"
> kommen, was auch immer genau das sein mag
Da gibt es drei Möglichkeiten: ein Kommentar, Leerzeichen oder Processing Instructions (das sind spezielle Anweisungen für XML-verarbeitende Programme).
> Aber kann ich da als Fehlerbeschreibung hinschreiben, dass
> halt nach dem "element" höchstens noch "Misc" kommen
> dürfte?
Ja, oder dass ein Dokument genau ein Element auf der obersten Ebene hat.
> Zweites Problem: wenn jetzt alle Fehler raus sind, müsste
> man sich dieses Dokument doch vernünftig mit einem Browser
> angucken können, oder habe ich da etwas falsch verstanden?
Das kommt auf den Browser an. In der Regel brauchst du noch ein XSL-Stylesheet, das die Transformation des XML in HTML definiert. Hier steht ein bischen dazu, hier mehr.
Viele Grüße
Rainer
|
|
|
|