Autor Beitrag
k-weddige
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 49

Win Vista Business
C# (VS 2008 Professional)
BeitragVerfasst: So 30.11.08 01:03 
Moin,

ich lese eine XML-Datei mit DTD ein. Alles funktioniert tadellos - solange ich online bin.
Wenn ich das Programm jedoch ohne Internetverbindung starte, kommt eine Fehlermeldung, dass die Domain, auf der die DTD liegt, nicht geöffnet werden konnte.

Wie kann ich in diesem Fall die DTD ignorieren, bzw. dem Programm lokal zur Verfügung zu stellen?

TIA
Konstantin

_________________
Meine Programme sind perfekt, der Computer versteht sie bloß nicht.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 30.11.08 02:01 
user profile iconk-weddige hat folgendes geschrieben Zum zitierten Posting springen:
Wie kann ich in diesem Fall die DTD ignorieren, [...]
XmlDocument, nehme ich an? Linq To XML (System.Xml.Linq.XElement), die API der Wahl ab 3.5, besitzt überhaupt keinen DTD-Support, sollte es also ignorieren.

_________________
>λ=
k-weddige Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 49

Win Vista Business
C# (VS 2008 Professional)
BeitragVerfasst: So 30.11.08 16:37 
Ganz auf DTD zu verzichten würde die DTD ja überflüssig machen. Mir wäre eine Lösung, die wenn möglich validiert, und wenn nicht möglich darüber hinwegsieht.
Könnte ich die DTD nicht lokal hinterlegen, so dass sie über den public identifier zugeordnet wird? Oder würde eine XSD das Problem lösen?

Irgendeine Möglichkeit die XML-Datei zu validieren wollte ich eigentlich behalten.

_________________
Meine Programme sind perfekt, der Computer versteht sie bloß nicht.
k-weddige Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 49

Win Vista Business
C# (VS 2008 Professional)
BeitragVerfasst: Di 02.12.08 19:57 
Hab die Lösung gefunden: XmlUrlResolver ableiten und in ResolveUri den public identifier abfangen.

Quelle: sticklebackplastic.c....aspx?y=2007&m=6

Konstantin

_________________
Meine Programme sind perfekt, der Computer versteht sie bloß nicht.