Seção 4: Desenvolvedores

Q 4.5: O que mudou entre SGML e XML?

Uma sintaxe mais estrita e sem opções.

A principal alteração sintática é que os elementos EMPTY em documentos DTDless devem usar o truque Null End-Tag (por exemplo <img src="pic"/> ) porque, sem um DTD ou Schema, não há nenhuma maneira para o analisador saber que deve esperar um Etiqueta final. Se um tipo de elemento for declarado como EMPTY no DTD / Schema, ele pode usar a NET ou a sintaxe de marca final completa (por exemplo <img src="pic"> </img> ).

Outras alterações sintáticas são que todos os valores de atributo devem ser citados; Não há minimização de atributos ou elementos; E tudo é sensível a maiúsculas e minúsculas. Uma adição importante é que várias declarações ATTLIST são permitidas, de modo que um subconjunto interno pode adicionar aos atributos já declarados para um tipo de elemento.

As principais mudanças nas Definições de Tipo de Documento (DTDs) estão no que você pode especificar. Para simplificá-lo e facilitar a gravação de software de processamento, um grande número de opções de declaração de marcação SGML foi suprimida (consulte a lista de recursos omitidos ). A maior mudança no gerenciamento de vocabulário é a introdução de Schemas do W3C, que permitem um nível de validação de tipo de conteúdo não disponível em DTDs e são expressos em XML Document Syntax.

A principal adição aqui é namespaces , que permitem que os Schemas e os documentos distinguem a fonte do tipo elemento e do atributo (propriedade, origem ou aplicativo). Isso permite que você tenha tipos de elementos com o mesmo nome, mas diferentes significados no mesmo documento, por exemplo DocBook:table e TEI:table . Um de Nome extra (o cólon) foi adicionado em Nomes XML para permitir isso. Apesar de sua classificação, um cólon só pode aparecer no meio do nome, não no início ou no final, e o prefixo xml: está reservado.