Article View: be.comp.programming
Article #2283Re: [C# .NET] validating XHTML 1.1
From: Joris Janssens
Date: Wed, 11 Aug 2004 12:03
Date: Wed, 11 Aug 2004 12:03
111 lines
5914 bytes
5914 bytes
TRAX formuleerde op woensdag :
>> [STAThread]
>> static void Main(string[] args) {
>> string url="http://users.telenet.be/flotspe/test.xhtml";
>> Stream stream=FetchUrl(url);
>> XmlTextReader reader=new XmlTextReader(FetchUrl(url));
>> XmlValidatingReader valReader=new XmlValidatingReader(reader);
>> valReader.ValidationEventHandler+=new
>> ValidationEventHandler(valHandler);
>> valReader.ValidationType = ValidationType.DTD;
>
>
> Ik vermoed dat je de DTD file ook ergens zal moeten meegeven, je valideert
> a.d.h.v een DTD file maar nergens zeg je waar die zich bevindt. Dus moet je
> kiezen voor een andere validationtype, of de locatie van het DTD bestand
> aangeven.
> Het blijft bij vermoedens uiteraard :)
Ja maar de url van de DTD staat wel in de DOCTYPE vermeld en het lijkt
die URL ook wel echt te gebruiken. Zo kan ik
<http://localhost:8080/dtd/book.xml> met als DTD <!DOCTYPE book SYSTEM
'http://users.telenet.be/flotspe/books.dtd'> probleemloos valideren.
Als ik die url naar het dtd-bestand ongeldig maak krijg ik wel die
404-error.
Er is me wel iets opgevallen aan die foutmeldingen.
Dit de foutmelding als de URL naar de DTD ongeldig is:
*****************************************************
Unhandled Exception: System.Net.WebException: The remote server
returned an erro
r: (404) Not Found.
at System.Net.HttpWebRequest.CheckFinalStatus()
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult
asyncResult)
at System.Net.HttpWebRequest.GetResponse()
at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri,
ICredentials crede
ntials)
at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials
credentials)
at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role,
Type ofO
bjectToReturn)
at System.Xml.Schema.DtdParser.ParseDocTypeDecl()
at System.Xml.Schema.DtdParser.Parse()
at System.Xml.XmlTextReader.ParseDtd(XmlScanner scanner)
at System.Xml.XmlTextReader.ParseTag()
at System.Xml.XmlTextReader.ParseRoot()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlValidatingReader.ReadWithCollectTextToken()
at System.Xml.XmlValidatingReader.Read()
at ValidatorTest.SimpleValidator.Main(String[] args) in
e:\flotspe\cs\visual
studio projects\validatortest\class1.cs:line 24
*****************************************************
Dit is daarentegen de foutmelding bij validatie van de XHTML 1.1 DTD:
*****************************************************
Unhandled Exception: System.Net.WebException: The remote server
returned an erro
r: (404) Not Found.
at System.Net.HttpWebRequest.CheckFinalStatus()
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult
asyncResult)
at System.Net.HttpWebRequest.GetResponse()
at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri,
ICredentials crede
ntials)
at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials
credentials)
at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role,
Type ofO
bjectToReturn)
at System.Xml.Schema.DtdParser.HandlePERef()
at System.Xml.Schema.DtdParser.ParseDtdContent()
at System.Xml.Schema.DtdParser.ParseConditionalSect()
at System.Xml.Schema.DtdParser.ParseDtdContent()
at System.Xml.Schema.DtdParser.ParseConditionalSect()
at System.Xml.Schema.DtdParser.ParseDtdContent()
at System.Xml.Schema.DtdParser.ParseDocTypeDecl()
at System.Xml.Schema.DtdParser.Parse()
at System.Xml.XmlTextReader.ParseDtd(XmlScanner scanner)
at System.Xml.XmlTextReader.ParseTag()
at System.Xml.XmlTextReader.ParseRoot()
at System.Xml.XmlTextReader.Read()
at System.Xml.XmlValidatingReader.ReadWithCollectTextToken()
at System.Xml.XmlValidatingReader.Read()
at ValidatorTest.SimpleValidator.Main(String[] args) in
e:\flotspe\cs\visual
studio projects\validatortest\class1.cs:line 24
*****************************************************
Bij XHTML 1.1-validatie heeft dat ding al 3x een ParseDtdContent()
opgeroepen terwijl het bij een ongeldige URL al na de
ParseDocTypeDecl() misloopt.
Nu heb ik die XHTML 1.1 DTD (die gesplitst is in diverse bestanden)
eens bekeken en daar staan zowel absolute als relatieve URL's in
vermeld. Daarom is m'n huidige werkhypothese dat de validator de
bestanden met een relatieve URL niet kan vinden.
--
Joris "flotspe" Janssens *** http://inferno.xhtml.be/
gecontroleerd op virussen door m'n huisdokter
Technical Details
Message-ID:
<mn.5b4b7d484fc32cdc.14768@xhtml.invalid>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.wirehub.nl!217.19.16.136.MISMATCH!news.cambrium.nl!news.cambrium.nl!ecngs!feeder.ecngs.de!212.113.1.44.MISMATCH!newsrouter.london1.eu.level3.net!level3eu!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mailReferences:
<mn.55897d48e0630dfa.14768@xhtml.invalid> <ihmSc.210417$Eg1.10619018@phobos.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,45419068d8769232
X-Google-Attributes: gidfcea4,public
X-Google-Language: DUTCH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!newsfeed.wirehub.nl!217.19.16.136.MISMATCH!news.cambrium.nl!news.cambrium.nl!ecngs!feeder.ecngs.de!212.113.1.44.MISMATCH!newsrouter.london1.eu.level3.net!level3eu!ossa.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
Subject: Re: [C# .NET] validating XHTML 1.1
From: Joris Janssens <spam@xhtml.invalid>
References: <mn.55897d48e0630dfa.14768@xhtml.invalid> <ihmSc.210417$Eg1.10619018@phobos.telenet-ops.be>
Newsgroups: be.comp.programming
Message-ID: <mn.5b4b7d484fc32cdc.14768@xhtml.invalid>
Organization: xhtml.be
X-Newsreader: MesNews/1.01.00.00 (windows)
MIME-Version: 1.0
X-Face: #0?irvdFiM!(Tpl}/tO%_kuSW_^9G5aeIEnY1uNPcd@N_U.B30\*[%N-cnqSC,rEfeq\m:b oR({RM{x03]Iv}^2xc7\J][^MkbL3DYdLevZ$&h0WbH!i:>O1i#FLy/mO2G~xMF<YSj^@q9sRC~iP> *uQnfN4xre8v9%0fqg;i.!ymm~6w2nEx);Q~Q*8&dUO(fn
Reply-To: usenet@xhtml.be
Content-Type: text/plain; charset="iso-8859-15"; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 112
Date: Wed, 11 Aug 2004 12:03:12 GMT
NNTP-Posting-Host: 213.224.68.62
X-Complaints-To: abuse@telenet.be
X-Trace: phobos.telenet-ops.be 1092225792 213.224.68.62 (Wed, 11 Aug 2004 14:03:12 MEST)
NNTP-Posting-Date: Wed, 11 Aug 2004 14:03:12 MEST