O que é XHTML e quando deve ser usado? – html xml xhtml

Pergunta:


O que eu sei é que o XHTML precisa ser XML válido. Isso implica, por exemplo, que todas as tags precisam ser fechadas. Por exemplo:

Errado:
<br>

Certo:
<br/>

Porém, qual é a utilidade disto? Pra que ele serve? Quando deve ser usado?

Autor da pergunta

Jorge B.

Basicamente o XHTML é uma reformulação do HTML baseado em XML, com todas as suas regras e validações.

Qual é a utilidade?
Alguns dispositivos não reconhecem o HTML, pois ele não possui um sentido semântico.

Quando deve ser usado?
Se deseja que sua aplicação seja vista em todos os lugares (TV, palm, celular, etc), o XHTML é o caminho correto.

XHTML é HTML escrito de acordo com as regras do XML. Como o XML é bem mais estrito do que o HTML, a ideia é que você escreva uma sintaxe sem erros. XML é uma linguagem de marcação bem genérica. Diferente do HTML, XML permite que você faça suas próprias tags. Hoje, isso não faz mais tanto sentido já que temos outras maneiras de estruturar dados, como o JSON, por exemplo.

E essa era a grande sacada: um arquivo XHTML é um HTML e também um XML. Isso quer dizer que a extração de dados seria bem mais fácil. Imagine que você poderia extrair dados de qualquer página web como se estivesse fazendo uma requisição a um arquivo XML. Interessante, mas não muito útil para época. Outra coisa é que para um XHTML ser realmente útil, ele precisa ser servido com o application/xhtml+xml MimeType, o que ninguém fazia. Quando o HTML5 surgiu, por rebeldia de um grupo de desenvolvedores ligados a vários browsers, o cenário mudou bastante. o HTML5 resolvia de verdade alguns problemas que tínhamos há anos no desenvolvimento web.

Contudo, como o HTML5 é totalmente retrocompatível, você consegue usar seu XHTML hoje como se fosse HTML normal. A sintaxe do XHTML não vai quebrar seu site e você estará livre de problemas. Hoje, ninguém usa XHTML, por isso, não há indicação ou sugestão para que você use em seus projetos.

Uma outra aplicação do XHTML é na geração dinâmica de conteúdo. Você pode, por exemplo, interpretar com JavaScript um arquivo XML que representa uma parte de uma página. Aplicações web de grande acesso usam esta estratégia para tirar proveito da cache.
Por exemplo: o menu, que é algo que não muda frequentemente, pode ser renderizado dinamicamente por um JavaScript a partir de um mix de CSS e XHTML, onde a porção com XHTML está em um arquivo .xml e o a formatação em um .css. Nesta situação é possível forçar o cache destes dois arquivos no browser, economizando recursos caros, tais como links de internet e processamento no web server.

Se puder, assista a esta apresentação:
https://skillsmatter.com/skillscasts/1939-asynchronous-systems-architecture-for-the-web
O inglês é relativamente fácil e o palestrante é o Udi Dahan, um arquiteto .Net reconhecido mundialmente. Vale a pena!

Fonte

Related Posts:

Qual a diferença entre AppCompatActivity e Activity? – android android-activity
Pergunta: Qual a diferença da AppCompatActivity para Activity ? A partir de qual versão a AppCompatActivity foi adicionada ao Android? Autor da pergunta Luhhh A diferença reside ...
Como abreviar palavras em PHP? – php string
Pergunta: Possuo informações comuns como nome de pessoas e endereços, e preciso que elas contenham no máximo 30 caracteres sem cortar palavras. Exemplo: 'Avenida Natalino João Brescansin' ...
Qual é a finalidade de um parêntese vazio numa declaração Lambda? – c# expressões-lambda característica-linguagem
Pergunta: Criei um exemplo de uma declaração Lambda sem argumentos, entretanto, estou com duvidas referente a omissão do parêntese vazio () na declaração. Veja o exemplo: class ...
Boas práticas para URI em API RESTful – api rest restful
Pergunta: Estou com dúvida em relação às URIs de alguns recursos da api que estou desenvolvendo. Tenho os recursos projetos e atividades com relação 1-N, ...
Dúvidas sobre a integração do MySQL com Java – java mysql netbeans
Pergunta: Estou criando um sistema no NetBeans, utilizando a linguagem Java e o banco de dados MySQL. Escrevi o seguinte código para realizar a conexão ...
Qual é a finalidade da pasta Model do framework Inphinit? – php inphinit
Pergunta: No Inphinit micro-framework existe a pasta Model que fica dentro da pasta application, e nela é onde ficam as classes, mas eu estou muito ...
Uso do ‘@’ em variáveis – javascript typescript coffeescript
Pergunta: Vejo em algumas linguagens que compilam para javascript, como TypeScript e CoffeeScript, o uso do @ em variáveis, como também, casos em que o ...
Qual tamanho máximo um arquivo JSON pode ter? – json arquivo
Pergunta: Vou dar um exemplo para conseguir explicar minha duvida: Preciso recuperar informação de imagens vindas de uma API, esse banco de imagens me retorna JSON's ...
O que é Teste de Regressão? – terminologia engenharia-de-software testes
Pergunta: Na matéria de Teste de Software o professor abordou um termo chamado Teste de Regressão, isto dentro da disciplina de teste de software. Sendo ...
O que é um construtor da linguagem? – php característica-linguagem
Pergunta: Em PHP, já li e ouvi várias vezes a respeito dos Construtores da Linguagem. Os casos que sempre ouvi falar deles foi em casos ...
Função intrínseca para converter numérico para string – cobol
Pergunta: Estou a tentar saber se existe alguma função intrínseca do COBOL para converter um data numérico para string sem precisar usar a cláusula REDEFINES: ( ...
Porque usar implements? – java android
Pergunta: Qual a diferença entre usar btn.setOnClickListener(new OnClickListener() { e public class MainActivity extends Activity implements OnClickListener{ Estive fazendo um curso de Android e meu professor falou que ...
Uma placa aceleradora de vídeo pode melhorar o desempenho não-gráfico? [fechada] – desempenho
Pergunta: Para desenvolver em Ruby on Rails, eu utilizo aqui uma máquina virtual do VirtualBox com Ubuntu Server 14.04 sem interface gráfica instalada. Recentemente descobri uma ...
Concat() VS Union() – c# .net
Pergunta: Qual a diferença entre Concat() e Union() ? Quando usar Concat() e quando usar Union() ? Somente pode ser usado em list ? ...
Como usar randômico no C++? – c++
Pergunta: Gostaria de um exemplo da utilização do randômico no C++, pois preciso utiliza-lo mas não sei como funciona. Autor da ...

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *