2010-11-29 5 views
3

Existe-t-il un moyen (côté client ou côté serveur) d'étendre le code HTML pour inclure de nouveaux tags? Par exemple, il serait cool si je pouvais écrire quelque chose comme un fragment de schéma qui a défini un blogpost, qui contient une postname, un postauthor, un posttime et un postcontent, puis reportez-vous à blogpost dans mon HTML plutôt que d'avoir recours à la base Tags HTML div et p.Est-ce que XHTML est vraiment Xtensible?

+0

Une autre question intéressante serait: Si vous utilisiez simplement ces éléments personnalisés et que vous leur appliquiez des règles CSS, dans quels navigateurs cela fonctionnerait-il (par exemple, hors de la boîte)? –

Répondre

2

Sonne comme HTML5 est juste dans votre ruelle!

Vous pouvez utiliser des éléments comme section pour envelopper tous vos messages et article pour chaque poste, plus de base comme header, nav et footer. Il n'y a pas d'éléments à grain fin comme postauthor ou posttime mais vous pouvez fournir d'autres attributs pour les définir.

Hmm, je semble parlé bientôt, vous pouvez utiliser cela aussi:

<time pubdate datetime="2010-11-13T20:00+09:00">Posted Nov 13.</time> 
+0

D'accord! Je ne peux pas attendre. – Stephen

+0

Pour une heure de publication, l'élément time doit également contenir un attribut 'pubdate'. – Alohci

+0

Intéressant, mais cela ne dit pas XHTML est extensible, comme demandé: il dit simplement que le HTML5 est plus grand, avec encore plus de balises et attrs inclus par défaut. – ijw

2

Ce serait génial. Here is an article expliquant pourquoi cela ne fonctionnera pas. Fondamentalement, vous pouvez étendre le balisage. Mais les navigateurs HTML ne sauront pas interpréter vos nouvelles balises.

+0

Ceci est proche de ce dont je parle. (Bien que j'essaierais probablement de créer un nouveau schéma XML avant de tenter de créer une nouvelle DTD) – JnBrymn

+0

Pourriez-vous élaborer sur ce s'il vous plaît. Que signifient les navigateurs HTML? Tous les navigateurs modernes sauf IE ont un analyseur XML. Quels navigateurs savent interpréter les balises personnalisées et qui ne savent pas? –

+0

L'article référencé est incroyablement daté ('Netscape Navigator'?). Aussi je soupçonne que le navigateur ne base pas son interprétation du contenu du fichier en HTML en fonction de l'extension de fichier, comme ils le prétendent. – ijw

0

Pour le développeur web général, non. Vous auriez besoin d'écrire votre propre DTD pour avoir vos propres étiquettes, et même dans ce cas, cela ne vous profitera pas sémantiquement pour autre chose que votre propre santé mentale.

De plus, certains navigateurs ahem IE ne sauront pas comment gérer vos étiquettes personnalisées, et vous devrez recourir à JavaScript pour l'enseigner. Pas vraiment recommandé ...

+0

Puis-je vraiment ne pas gérer les balises personnalisées dans un document XHTML avec une DTD appropriée? – Chuck

+0

@Chuck, vous êtes partiellement correct. Selon les documents IE, vous pouvez utiliser vos propres balises personnalisées, mais celles-ci doivent avoir un espace de noms ou bien elles doivent être traitées comme des balises inconnues (ce qui signifie que IE ne permet pas de contenir des enfants). En outre, l'espace de noms doit être déclaré dans la balise HTML. Cependant, je n'ai jamais essayé de créer ma propre DTD pour tester le support d'IE pour les éléments non-nommés car ils sont définis dans la DTD. – simshaun

0

Alors que le navigateur ne comprendra pas facilement les extensions basées sur l'extensibilité dérivée XML, cela ne signifie pas que les gens ne travaillent pas sur ce problème. En outre, la meilleure solution pour ce que vous essayez de faire est probablement microformats. Dans le cas de votre exemple de blog, hAtom.

Ensuite, vous obtenez quelque chose que les navigateurs comprennent, mais peut être progressivement améliorée en plus support des systèmes hAtom et vous pouvez définir le style des entrées en utilisant des références de classe comme .hentry, .entry-title et .author.

0

Vous pouvez pouvez ajouter des balises personnalisées à l'arborescence DOM. Vous n'obtiendrez pas de XHTML valide, mais les navigateurs comprendront ces balises tant que vous les stylisez correctement.

Un projet très intéressant utilisant ce comportement de navigateur est WebODF, un outil pour apporter des documents ODF au navigateur. Découvrez la vidéo sur le site et la démo en direct pour comprendre comment cela fonctionne.

+0

Je suppose que je recursais l'acronyme un peu plus loin. XML signifie eXtensible Markup Language. – JnBrymn

+0

Le X en XHTML * est * extensible. http://www.w3.org/TR/xhtml1/ –

+0

@ Šime Vidas: Merci, corrigé. –

0

Vous pouvez ajouter des balises personnalisées en mélangeant XHTML avec votre langue personnalisée. La langue n'est plus XHTML mais un langage composé incluant XHTML, mais c'était toujours l'intention de XHTML de toute façon.

Vous devrez cependant utiliser XHTML correctement, et le servir avec un type mime XML, tel que application/xhtml + xml, ce qui signifie qu'il n'y a pas de support IE avant IE9.

Vous pouvez voir un exemple en utilisant blogpost, postname, postauthor etc ici:

http://www.alohci.net/application/xhtml+xml/custom1.xhtml.ashx

(Works dans Firefox, Chrome, Safari, Opera et IE9)


[Bien sûr , vous pouvez simplement mettre des balises invalides dans HTML et les styler, mais pour moi, cela ne me semble pas être le point de question, qui était spécifiquement sur la nature d'extensibilité de XHTML.]

Questions connexes