Question

Le projet Je travaille sur des fichiers HTML prend au hasard, les convertit en XHTML mieux que possible, et les enveloppements avec certains XML METDATA. Le DOCTYPE est dépouillé comme le fichier XML résultant est pas un document XHTML. Cependant lors de la récupération du XHTML enveloppé à partir du fichier XML DOCTYPE doit être réinséré.

Parce que ce sont des fichiers HTML aléatoires ils pourraient contenir tout contenu, mais je préférerais ne pas avoir à stocker ou déterminer la DTD originale. Je me suis dit que je la DTD Frameset comme il était juste un surensemble de la DTD de transition et serait valable pour tout le contenu. Cependant lorsque vous utilisez le W3C XHTML Validator du même document en utilisant la DTD de transition passe, mais en utilisant la DTD échoue Frameset .

J'ai déshabillai le document au minimum avec lequel je peux reproduire le problème. Voici la version Frameset:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:html="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Make The Move</title>
</head>

<body style="background: none;">
    <h3 id="why">Why should I move to Linux?</h3>
</body>

</html>


Et voici la version de transition:

<!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" xmlns:html="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Make The Move</title>
</head>

<body style="background: none;">
    <h3 id="why">Why should I move to Linux?</h3>
</body>

</html>


S'il vous plaît expliquer pourquoi cela se passe, et comment je dois procéder.

Était-ce utile?

La solution

Frameset DTD n'est pas un « surensemble » de transition. Il est un DTD spécial utilisé uniquement pour la pose des cadres, ne se contente pas (sauf étiquette à l'intérieur de <noframes>). Il ne permet <head> et <frameset> que les enfants de tag <html>.

ici est la spécification.

Sauf si vous savez que votre page pourrait avoir des cadres, tenir à DTDs transitoires ou strictes.

Autres conseils

Chetan a souligné, la DTD Frameset ne doit être utilisé dans le cas où vous avez besoin d'images, et même alors, je recommanderai à l'aide de transition à la place. Si vous ne comptez pas sur des cadres, Strict est le chemin à parcourir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top