Seção 4: Desenvolvedores

Q 4.20: Como faço para incluir um DTD (ou fragmento) em outro?

Use uma entidade de parâmetro, o mesmo se aplica a SGML

Isso funciona exatamente o mesmo que para o SGML. Primeiro, declare a entidade que deseja incluir e, em seguida, faça referência ao nome como uma entidade de parâmetro:

<!ENTITY % mylists SYSTEM "dtds/listfrag.ent"> 
... 
%mylists;
    

Tais declarações tradicionalmente são todas juntas para o topo do arquivo DTD principal, onde elas podem ser gerenciadas e mantidas, mas isso não é essencial, desde que sejam declaradas antes de serem usadas. Você usa a Sintaxe de entidade de parâmetro para isso (o sinal de porcentagem) porque o arquivo deve ser incluído no tempo de compilação DTD, e não quando a instância do documento é analisada.

Observe que um URI é obrigatório em XML como o Identificador do Sistema para todas as referências externas de arquivos:aplicam-se as regras padrão para redirecionamento de URIs (assumir o mesmo método, servidor e diretório como o documento que contém). Um identificador público formal também pode ser usado, seguindo as mesmas regras que em outros lugares .