Ik probeer de standaard XHTML 1.0 Strict DTD aan te passen met mijn eigen toevoegingen. Ik heb er al heel wat pagina's op google over gevonden en gelezen. Heel interessant allemaal, maar het is me nog niet gelukt om mijn probleem op te lossen.
Allereerst heb ik het standaard gedoe met content-type in IE. Ik krijg het op niets anders dan text/plain of text/html helaas. De validator van w3 vindt dat niet zo leuk, maar ik weet niet wat ik anders moet. Application/xml kan ook, maar dat krijg ik een foutmelding over de DTD. Application/xml+xhtml gaat gewoon downloaden, dus is sowieso hopeloos.
Maar mijn echte probleem zit hem in het extenden van bestaande (of te laden) elements. Google geeft met die keywords veel informatie, maar niet wat ik zoek. Ik wil bijvoorbeeld mijn eigen tag direct in de bestaande BODY toe staan. Handmatig alles kopieeren voor iedere situatie als deze is geen oplossing in dit geval.
Eerst maar even een stukje van 'mijn' code:
Headersetting:
xhtml index.php
Dtd framework.dtd
Meta-tag heb ik uit de xhtml gelaten, dat maakt geen verschil en zorgt alleen maar voor fouten bij het valideren. Ik heb ook dingen gelezen over 'xhtml plus target', maar dat kreeg ik niet voor elkaar om werkend te krijgen.
Probleem/fout:
Zoals het nu is krijg ik in ieder geval de foutmelding dat de '<bold>' tag niet is toegestaan waar deze nu staat. Ik wil dus de bestaande BODY type definition uitbreiden met de '<bold>' tag. In dit geval een voorbeeld, in het echte script moet dit dynamisch gaan gebeuren voor een groter aantal elements. Hopelijk weet iemand hoe dit netjes op te lossen is, en het liefst ook nog te valideren is met validator.w3.org
Allereerst heb ik het standaard gedoe met content-type in IE. Ik krijg het op niets anders dan text/plain of text/html helaas. De validator van w3 vindt dat niet zo leuk, maar ik weet niet wat ik anders moet. Application/xml kan ook, maar dat krijg ik een foutmelding over de DTD. Application/xml+xhtml gaat gewoon downloaden, dus is sowieso hopeloos.
Maar mijn echte probleem zit hem in het extenden van bestaande (of te laden) elements. Google geeft met die keywords veel informatie, maar niet wat ik zoek. Ik wil bijvoorbeeld mijn eigen tag direct in de bestaande BODY toe staan. Handmatig alles kopieeren voor iedere situatie als deze is geen oplossing in dit geval.
Eerst maar even een stukje van 'mijn' code:
Headersetting:
PHP:
1
2
3
4
5
6
7
| header( ( strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') ) ? "Content-Type: application/xml; charset=UTF-8" // Firefox : "Content-Type: text/html; charset=UTF-8" // IE ); |
xhtml index.php
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/css" href="./style/index.css"?> <!DOCTYPE html PUBLIC "-//SoveNewMedia//DTD Framework Extension//EN" "http://www.sovenewmedia.nl/framework/admin/framework.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> Admin </title> </head> <body> <p>Dit is even om te testen</p> <bold>Blaat</bold> <p> <b>b-tag</b> </p> </body> </html> |
Dtd framework.dtd
code:
1
2
3
4
5
6
| <!ELEMENT bold (#PCDATA)>
<!ENTITY % Body.content (bold)>
<!ENTITY % XHTML1-strict
PUBLIC "-//W3C//XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
%XHTML1-strict; |
Meta-tag heb ik uit de xhtml gelaten, dat maakt geen verschil en zorgt alleen maar voor fouten bij het valideren. Ik heb ook dingen gelezen over 'xhtml plus target', maar dat kreeg ik niet voor elkaar om werkend te krijgen.
Probleem/fout:
Zoals het nu is krijg ik in ieder geval de foutmelding dat de '<bold>' tag niet is toegestaan waar deze nu staat. Ik wil dus de bestaande BODY type definition uitbreiden met de '<bold>' tag. In dit geval een voorbeeld, in het echte script moet dit dynamisch gaan gebeuren voor een groter aantal elements. Hopelijk weet iemand hoe dit netjes op te lossen is, en het liefst ook nog te valideren is met validator.w3.org