Avatar billede stephanryer Nybegynder
25. april 2006 - 17:04 Der er 25 kommentarer og
1 løsning

Problemer med xhtml strict 1.0 validering

<%@ Page ... %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form runat="server">
        <asp:TextBox runat="server"></asp:TextBox>
    </form>
    <table style="width: 200px"></table>
</body>
</html>


Og mit html genererede output bliver:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
    Untitled Page
</title><link href="StyleSheet.css" rel="stylesheet" type="text/css" /></head>
<body>
    <form name="ctl01" method="post" action="Default.aspx" id="ctl01">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE3OTUwNTQwNTlkZHP+fgRmORUO0/RGMdLI9QgQG6Xi" />

</div>
        <input name="ctl04" type="text" />
<div>

<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgL/rNi0CAKlwImNCwBO2nUFI04OhTHLvi9jD/Iajcxt" />
</div></form>
    <table style="width: 200px"></table>
</body>
</html>

Problemet er når jeg prøver at validere min side så får jeg bl.a. denne fejl:

there is no attribute "name".
<form name="ctl01" method="post" action="Default.aspx" id="ctl01">

Jeg bruger følgende side til validering af siden: http://validator.w3.org/


Problemet er altså at ASP.NET genererer noget html som ikke er xhtml valideret.

Hvad gør man her?
Avatar billede dr_chaos Nybegynder
25. april 2006 - 17:11 #1
prøv med
<form runat="server" ID="Form1">
Avatar billede olebole Juniormester
25. april 2006 - 17:13 #2
<ole>

Da XHTML-standarden jo foreløbig blot er en eksperimentel standard, der er elendig understøttet på WWW, var det måske en idé at skrive HTML4.01-Strict.
Det er den nyeste markup-standard, der er understøttet og anvendelig  :)

http://www.eksperten.dk/artikler/537
http://www.eksperten.dk/artikler/538

/mvh
</bole>
Avatar billede arriva Nybegynder
25. april 2006 - 19:39 #3
Hvis du kører asp.net 2.0 så prøv at tilføje App_Browsers directory'et og tilføj en fil ved navn w3cvalidator.browser med følgende indhold:
-------------------------------------------------------
<browsers>
  <!--
  Browser capability file for the w3c validator
 
  sample UA: "W3C_Validator/1.305.2.148 libwww-perl/5.803"
  -->
  <browser id="w3cValidator" parentID="default">
    <identification>
      <userAgent match="^W3C_Validator" />
    </identification>

    <capture>
      <userAgent match="^W3C_Validator/(?'version'(?'major'\d+)(?'minor'\.\d+)\w*).*" />
    </capture>

    <capabilities>
      <capability name="browser" value="w3cValidator" />
      <capability name="majorversion" value="${major}" />
      <capability name="minorversion" value="${minor}" />
      <capability name="version" value="${version}" />
      <capability name="w3cdomversion" value="1.0" />
      <capability name="xml" value="true" />
      <capability name="tagWriter" value="System.Web.UI.HtmlTextWriter" />
    </capabilities>
  </browser>
</browsers>
-------------------------------------------------
Det, sammen med følgende doctype gør at jeg kan validere mine sider på W3C's validator..


<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
Avatar billede stephanryer Nybegynder
25. april 2006 - 22:55 #4
Jeg har fundet ud af hvordan man i VS (Web developer express) indstiller så der benyttes xhtml 1.1 under udvikling til at spotte fejl, men ved ikke om dette gør at siderne også buildes så det går igennem xhtml-valideringen. Tvivler lidt. Vil prøve
dit forslag (arriva) imorgen og giver så besked tilbage hvad jeg finder frem til :)

Ole: Kan godt lide dit engagement indenfor xhtml :) Vil følge det.
Avatar billede olebole Juniormester
26. april 2006 - 01:03 #5
Ja, om koden validerer, er jo det mindste problem ... derfor behøver dokumentet absolut ikke at have noget med XHTML at gøre.
Spørgsmålet er også, om de scripts, der bliver genereret af .net overhovedet kan afvikles under ægte XHTML. Ingen IE har jo endnu understøttet XHTML og version 7.0 kommer heller ikke til det - så det er måske ikke lige det, de har mest travlt med  ;o)
Avatar billede stephanryer Nybegynder
26. april 2006 - 01:05 #6
nej og det er sgu da grotesk? Men kan du sige mig hvorfor jeg får at vide at min DOC TYPE er invalid pt?

http://validator.w3.org/check?uri=http%3A%2F%2Fwww.ryer.dk%2FDefault.aspx&charset=%28detect+automatically%29&doctype=XHTML+1.0+Strict&ss=1&outline=1&sp=1&No200=1&verbose=1

Fejl: This Page Is Tentatively Valid XHTML 1.0 Strict

Dvs den bytter mit doc ud med at nyt doc. Men det nye er identisk med det jeg har på siden.
Avatar billede stephanryer Nybegynder
26. april 2006 - 01:08 #7
doc = DOCTYPE altså
Avatar billede pidgeot Nybegynder
26. april 2006 - 01:08 #8
Det er ikke en fejl - det viser at du har overridet den doctype der er specificeret i dokumentet (nemlig ingen).

I og for sig betyder det blot at hvis dokumentet var erklæret som HTML 1.0 Strict, så ville den være valid.
Avatar billede stephanryer Nybegynder
26. april 2006 - 01:09 #9
ja men hvis du ser på kildekoden på www.ryer.dk vil du se at jeg rent faktisk HAR en DOCTYPE
Avatar billede pidgeot Nybegynder
26. april 2006 - 01:12 #10
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Default.aspx">here</a>.</h2>
</body></html>

Hvor er den doctype? :)

I øvrigt er det der ikke lige frem godt, eftersom det link peger på sig selv...
Avatar billede stephanryer Nybegynder
26. april 2006 - 01:12 #11
...og hvis man validere med automatisk detection af DOCTYPE så får man en besked om at der ikke kan findes et DOCTYPE:

http://validator.w3.org/check?uri=http%3A%2F%2Fwww.ryer.dk%2FDefault.aspx&charset=%28detect+automatically%29&doctype=Inline&ss=1&outline=1&sp=1&No200=1&verbose=1
Avatar billede stephanryer Nybegynder
26. april 2006 - 01:14 #12
Jamen kig i kildekoden til www.ryer.dk så kan du se at jeg altså HAR en DOCTYPE.
Avatar billede olebole Juniormester
26. april 2006 - 01:15 #13
For mig at se, er der tale om en side, ingen browser vil vise  =)
Avatar billede olebole Juniormester
26. april 2006 - 01:16 #14
- og derfor kan jeg heller ikke se kildekoden  ;o)
Avatar billede pidgeot Nybegynder
26. april 2006 - 01:16 #15
Stephan: Det er det jeg har gjort.

Eller rettere, ville have gjort hvis det ikke var fordi IE kører i en uendelig løkke af redirects til Default.aspx når jeg klikker på linket - det der er taget ved at sende en HTML request direkte via telnet.
Avatar billede stephanryer Nybegynder
26. april 2006 - 01:19 #16
ok det lader til at I have ret men ret belastende at min egen browser ikke kørte i et uendeligt loop :(
Avatar billede stephanryer Nybegynder
26. april 2006 - 01:22 #17
Well kan man ikke sige at konklussionen er at man ikke kan overholde xhtml 1.0 strict med ASP.NET men kun Transitional  på nu værende tidspunkt?

Står beskrevet her:

http://msdn2.microsoft.com/en-us/library/exc57y7e.aspx
Avatar billede stephanryer Nybegynder
26. april 2006 - 01:24 #18
ej ok der står længere nede hvordan jeg gør så jeg får overholdt strict. Min fejl. Det er sent :)
Avatar billede stephanryer Nybegynder
26. april 2006 - 01:41 #19
Ok nu har jeg et andet mystisk problem:

Når jeg pt. viser kildekoden til www.ryer.dk i min browser ser jeg dette:

...
<form method="post" action="Default.aspx" id="aspnetForm">
...

Men når jeg validerer siden får jeg en klage over at der er brugt name-attributten i form:

...

Når jeg strict 1.0 validerer siden
Avatar billede stephanryer Nybegynder
26. april 2006 - 01:42 #20
hov.

Når jeg strict validerer siden får jeg en klage over name i <form> og den kode som valideringen begrundes med ser således ud:

<form name="aspnetForm" method="post" action="Default.aspx" id="aspnetForm">

Hvorfor svarer dette ikke til den kildekode men selv kan se på siden?
Avatar billede olebole Juniormester
26. april 2006 - 13:36 #22
Hmmmm ... noget tyder på, man får noget andet retur, hvis der sendes den HTTP-User-Agent, validatoren sætter, end hvis man tilgår siden med en alm. browser. Har desværre ikke tid til at teste det lige nu
Avatar billede arriva Nybegynder
26. april 2006 - 13:57 #23
ja, prøv evt. at se min svar nr #2. Vha. app_browsers kan du sætte det.
Avatar billede stephanryer Nybegynder
26. april 2006 - 14:12 #24
Arriva: jeg har lige prøvet dit forslag og nu går valideringen igennem. Tusind tak.

Olebole: Jeg vil fortsat følge dine artikler om xhtml, men vurderer at arrivas forslag i dette tilfælde var det, der løste mit problem med valideringen.

No hard feeling, k? :)
Avatar billede olebole Juniormester
26. april 2006 - 14:34 #25
Jaja ... jeg vader i forvejen i points - og det vigtige er løsningen af dit problem  ;o)
Avatar billede stephanryer Nybegynder
26. april 2006 - 14:35 #26
helt fair :) Jeg er pt. på...... 0 point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester