Tag: xml

A Web e o HTML: Passado, presente e futuro (Parte 4)

21 de janeiro de 2008 às 11:03 | Lucas Petes | , , , , , ,

Juro que este será o último post da série :)

Minha intenção é começar a apresentar um pouquinho das mudanças de sintaxe no HTML 5. Tratarei aqui principalmente do que diz respeito ao cabeçalho, identificação do arquivo e coisas do tipo, principalmente porque isso já está definido pelo WHATWG e não deve ser mudado. As tags que ficarão dentro do <body> poderão sofrer mudanças de caráter semântico (terão outro sentido), outras serão mantidas como antes e algumas serão adicionadas, como a já famosa tag <canvas>, criada pela Apple no dashboard do OS X. Vários atributos e tags também serão removidos.

O DTD

O HTML nasceu com a sintaxe SGML, relativamente simples e prática pras necessidades de uso e semântica. A customização da sintaxe de uma linguagem de marcação em SGML é especificada por um DTD (Document Type Definition) como este:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

para o HTML 4 strict, ou este:

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

para o XHTML 1.0 Strict.

O DTD carrega toda a especificação da linguagem – suas tags, atributos e valores aceitos.

No HTML 5, bastará a declaração <!DOCTYPE html>, que é suficiente para o navegador renderizar o html em ‘standards mode’ – não em ‘quirks mode‘.

MIME Type e Encoding

É o MIME Type que define o tipo do documento que você está usando. O padrão para HTML clássico é e vai continuar sendo servido como text/html. Se você utiliza text/html para enviar um XHTML, ele será considerado um HTML, talvez com erros de sintaxe.

Hoje, quando não é possível o envio do MIME e do encoding da página pelo cabeçalho HTTP, usa-se:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

No HTML5, o tipo deverá ser identificado somente no cabeçalho HTTP, de modo que se for possível identificar o encoding, a tag abaixo deve ser colocada logo após do DOCTYPE/html/head, antes mesmo do título, nos primeiros 512 bytes do código:

<meta charset="UTF-8">

Um arquivo XHTML deve ser servido no cabeçalho HTTP com um MIME Type de XML, como application/xml ou application/xhtml+xml. A codificação é passada no atributo encoding, na declaração do XML (que DEVE estar na primeira linha):

<?xml version="1.0" encoding="UTF-8"?>

Por fim, um arquivo HTML 5 teria essa estrutura básica:

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Example document</title>
    </head>
    <body>
        <p>Example paragraph</p>
    </body>
</html>

e um arquivo XHTML 5 seria basicamente apresentado assim:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Example document</title>
    </head>
    <body>
        <p>Example paragraph</p>
    </body>
</html>

Provavelmente o elemento canvas ainda me renderá alguns post. Pra ir adiantando o assunto, deixo o ‘Doom’ feito pela Mozilla, os efeitos do CVI (canvas/JS), o clone do MS Paint e o tutorial feito pela Mozilla.

Para terminar, você pode conferir aqui a lista completa das diferenças entre o HTML 4 e o 5 e aqui um super artigo do A List Apart sobre o HTML 5, sua estrutura e a entrada de video/audio.

Comentários desativados

Metadados e o RDFa

15 de outubro de 2007 às 13:02 | Lucas Petes | , , , ,

Meta é um radical derivado do grego que pode significar “acima”, “além”, “informação sobre”, “relacionado a”, “baseado em”, com um certo caráter reflexivo. Na nossa língua, palavras como metamorfose e metalinguagem se utilizam desse prefixo.

Os metadados são dados que descrevem dados. Em um documento XHTML, essa descrição pode ter inúmeras finalidades, tais como a acessibilidade de pessoas com necessidades especiais, indicar o do que se trata um documento ou partes dele pra um mecanismo de busca ou qualquer outro tipo de software, incluir uma licença de uso do conteúdo (CC, DRM’s, GPL), etc.

As tags <meta>, atributos como o alt, o title e o longdesc e os microformats são algumas das formas de descrever ou indicar os dados contidos no documento.

RDFa

O RDFa permite a inserção de metadados em um documento XHTML ou XML por meio de atributos – generalizados dos elementos meta e link pra serem usados em qualquer outra tag. Isso o torna mais simples e digerível para quem está acostumado a codificar somente XHTML. O RDFa usa declaração XML no início do arquivo e DTD próprio:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

Obs: o RDFa surgiu juntamente com o rascunho do XHTML 2. O DTD acima, introduzido mais tarde, trabalha com a especificação do XHTML 1.1.

Além disso, é necessário fazer a referência aos vocabulários (namespaces) que serão usados para descrever o conteúdo, tais como iCal, vCard, etc. Tais vocabulários são padrões já definidos e usados em inúmeras aplicações. Eles definirão também os prefixos dos valores que serão usados mais adiante. Exemplo:

<html xmlns:cal="http://www.w3.org/2002/12/cal/ical#"
           xmlns:contact="http://www.w3.org/2001/vcard-rdf/3.0#">

Neste caso, a declaração foi feita para todo o documento, mas também pode ser feita em fragmentos:

...
  <p instanceof="cal:Vevent"
     xmlns:cal="http://www.w3.org/2002/12/cal/ical#">
    I'm holding
    <span property="cal:summary">
      one last summer Barbecue,
    </span>
    on
    <span property="cal:dtstart" content="20070916T1600-0500">
      September 16th at 4pm.
    </span>
  </p>
...
  <p class="contactinfo" about="http://example.org/staff/jo"
     xmlns:contact="http://www.w3.org/2001/vcard-rdf/3.0#">
    <span property="contact:fn">
      Jo Smith
    </span>
    <span property="contact:title">
      Web hacker
    </span>
    at
    <a rel="contact:org" href="http://example.org">
      Example.org
    </a>.
    You can contact me
    <a rel="contact:email" href="mailto:jo@example.org">
      via email
    </a>.
  </p>
...

A inclusão dos atributos semânticos é feita seguindo a sintaxe do namespace que foi referenciado. Em contact:org é aceito pela especificação do vCard o conteudo da tag a em que ele está inserido. Já para o cal:dtstart o formato de data aceito pelo iCal é outro, descrito em content. Se o documento for lido diretamente, será exibido o conteúdo da tag. Mas se o documento for aberto para a retirada das informações iCal, o atributo content será o importante.

Atributos utilizados

about
uma URI especificando o recurso de que se trata o metadado; na sua ausência, por omissão, o documento corrente
rel, rev e href
especifica a relação ou a relação inversa (rev) com outro recurso
property
especifica uma propriedade para o conteúdo de um elemento
content
atributo opcional que sobrescreve o conteúdo do elemento quando se usa o atributo property
datatype
atributo opcional que especifica o tipo de conteúdo

Existem diversos schemas RDF para adicionar semântica aos mais variados tipos de conteúdo. Alguns, como o iCal e o vCard são mais comuns e de aplicação mais ampla. Outros já definem conteúdo extremamente específicos, como os da área médica e biológica.

Fontes: Creative Commons, W3C, Wikipedia.

Comentários desativados