XML DTD Módulos

Módulos DTD são mais bem definidos do que os módulos resumo, embora não tão flexível. Porque eles usam a sintaxe formal de 1,0 DTDs XML (como descrito no artigo 6), os módulos DTD tem todas as capacidades e as limitações de qualquer DTD XML. XHTML 1.1 DTD módulos também são mais complexas do que a média XML DTD, utilizando um conjunto de convenções de nomenclatura que tira vantagem completa das entidades de parâmetro para criar personalizáveis descrições das estruturas de documento. Parametrização é extremamente poderoso, mas é preciso se acostumar.

DicaXHTML 1.1 DTD módulos são muito mais difíceis de ler do que muitos XML DTDs. Se você não consegue penetrar na descrição formal de um determinado módulo, o módulo abstratodeveria ajudá-lo. Se você escrever seus próprios módulos, é fundamental que incluem módulos de abstract.

XREF Se você não tem feito muito com as entidades parâmetro, você pode querer voltar ao artigo 6 º e rever a sua sintaxe e uso. As regras para criar XHTML 1.1 's módulos de XML DTD são apresentadas na secção 5 do ConstruindoXHTML Módulos projecto e demonstrado na secção 6. Existem algumas convenções adicionais usados emModularização do XHTML aquele Construindo o XHTML Módulos não descreve, que eu cubro aqui também. Aparecem útil e ajudar a explicar alguns dos atalhos sintática (como os atributos comum) usado em módulos de abstract.

Parametrização apenas significa colocar todo o conteúdo das declarações em entidades param eter. Isso faz com que as declarações mais fácil de gerir, e ao mesmo tempo, torna muito mais fácil modificá-los. Embora você possa modificar declarações de atributos e entidades de parâmetro ao fazer a declaração de novo, XML proíbe várias declarações de tipos de elementos. Ao colocar o conteúdo dessas declarações em entidades parâmetro, os criadores de módulos XHTML podem oferecer muito mais a flexibilidade. Vejamos exemplos de cada um destes sufixos retiradas da proposta de DTD W3C, construindo a partir do menor peças atômicas para o maior.

  

. datatypeOs tipos de dados em XHTML 1.1 são descendentes diretos daqueles em XHTML 1.0, e eles são declarados na Seção B.2.1. A maioria dos tipos de dados são simplesmente mais precisos nomes para CDATA, o conteúdo textual:

 Esses tipos de dados são então utilizados nas declarações de atributo: 

Todas estas declarações tipo de dados realmente resolver a CDATA quando um processador lê o XML DTD, mas eles fazem o conteúdo que deveria ser armazenados nesses atributos muito mais identificáveis.

DicaEnquanto 1,0 processadores XML não pode fazer muito para reforçar os dados digitando hoje, os processadores de esquema devem ser capazes de realizar mais com esta informação no futuro. Pense desta abordagem como a adição de informações para o DTD para que esteja pronto para a próxima versão. Estes nomes de tipo de dados são utilizados nos módulos de abstract para XHTML 1.1, bem como, completando o núcleo XML 1,0 conjunto de tipos.

. attribO sufixo attrib. É usado no parâmetro entidades que representam um ou mais especificações atributo - A parte de uma declaração de lista de atributos que define atributos individuais, seus tipos, padrões e valores possíveis. Estas entidades, por vezes, descrevem apenas um atributo, como um presente para o atributo id:

 Eles podem especificar vários atributos, como um presente para xml: lang e dir: 

Estas entidades também podem incluir outras entidades com o sufixo attrib., Como na entidade Common.attrib onipresente:

 

Isso só inclui todas as especificações atributo declarado na Core.attrib, I18n.attrib e entidades Events.attrib, a construção de uma grande lista de componentes comuns. As citações devem ser utilizados, apesar de todo o conteúdo da entidade estão contidas em entidades de parâmetro.

. ATTLISTO. Sufixo ATTLIST (não documentada em Construindo o XHTML Módulos) É usado no XHTML 1.1 DTDs para transformar declarações ATTLIST ligado e desligado. Parâmetro entidades que têm o sufixo. ATTLIST tomar um de dois valores: INCLUDE ou ignorar. Estes funcionam com uma característica de 1,0 DTDs XML não seja utilizado em XHTML 1.0: seções condicionais.

DicaPara uma explicação mais detalhada de seções condicional e seu uso em outros contextos, XML, consulte o artigo 16 da XML Elements of Style por Simon St. Laurent (McGraw-Hill, 2000). secções condicionais podem aparecer em DTDs só, pois eles permitem DTD designers para transformar conjuntos de declarações e desligar. Ao utilizar entidades de parâmetro para determinar se deve incluir ou ignorar uma seção, os colaboradores tornam possível usar partes de um DTD ou mesmo escolher entre as variações diferentes em uma única DTD. Por exemplo, este fragmento da DTD inclui os atributos para o tipo de elemento de título:

 ]]>

A primeira linha cria uma entidade parâmetro nomeado Title.attlist cujo valor é INCLUDE. Na linha seguinte, a entidade é substituído% Title.attlist; para produzir essas declarações resultante:

 ]]> Um analisador XML tiras para fora a seção incluem eo comentário, deixando um núcleo de:  Que então se torna:  e finalmente: 

Se, por outro lado, um outro módulo redeclara a entidade Title.attlist ser IGNORE:

 então o resultado é:  ]]>
que proíbe o analisador de processamento das declarações em tudo, deixando título sem atributos. entidades com o sufixo ATTLIST. cercam a lista de declarações de atributos para cada tipo de elemento noModularização do XHTML rascunho.
  

. conteúdosO. Conteúdos funções sufixo de parâmetro para as entidades que descrevem modelos de conteúdo para os tipos de elemento em particular. O exemplo mais simples, para um modelo de conteúdo vazio, fica assim:

 Quando processado, este resolve: 
e define o elemento de entrada como sendo um modelo de conteúdo vazio. Redeclarando entidades com um. Conteúdos sufixo, outros módulos podem facilmente alterar o modelo de conteúdo de um elemento. 

. classe (e. adicional)As funções de classe. Sufixo para entidades parâmetro que pode ser usado repetidamente em modelos de conteúdo para vários elementos, mas só quando os conteúdos são nomes de tipo de elemento que todos compartilham algo em comum. Em XHTML, isto tende a significar que os elementos do bloco são uma classe, enquanto os elementos inline são outra classe. Estas entidades não estão definidos (com uma exceção, indicado ao lado), no Modularização deXHTML rascunho. Eles são definidos no arquivo de personalização, um outro módulo, no apêndice C do XHTML 1.1 --Module-based XHTML. Por exemplo:

Através das abreviaturas, você pode ver que estes são tipos de elementos estruturais que podem aparecer como elementos inline. br é usada para quebras de linha dentro de elementos de bloco, enquanto que span é um elemento abstrato principalmente útil para marcar fora inline conteúdo de maneiras que não são refletidas por outros conteúdos em linha. Esta entidade e vários de seus irmãos se combinam em uma entidade maior Inline.class:

 

Uma particularidade aqui é Inline.extra -- Construindo o XHTML Módulos descreve não "oficial" para a convenção. extra. Inline.extra tem a seguinte declaração:

Os comentários DTD descrevem como usar isso. Sufixo adicional: Embora em alguns casos, este módulo pode ter de ser reescrito para acomodar mudanças no modelo de documento, pequenas extensões pode ser realizada por qualquer um dos redeclaring *. três extra; entidades de parâmetro para conter tipos de extensão elemento do seguinte modo:% Misc.extra; cujo pai pode ser qualquer bloco ou elemento inline. Inline.extra%; cujo pai pode ser qualquer elemento inline. Block.extra%; cujo pai pode ser qualquer elemento de bloco. Quando utilizado, estas entidades parâmetro deve ser uma lista separada ou começando com um exemplo ou separador ("|"),. "| A | B | c" While. adicional é irregular (até agora) em Construindo o XHTML Módulos, É uma peça fundamental para os desenvolvedores que querem adicionar suas próprias extensões para XHTML 1.1. A classe. Sufixo também funciona em pelo menos um lugar para atributos. A entidade a seguir inclui todos os tipos de entrada:

 

Esta anomalia provavelmente deriva do uso incomum o elemento de entrada de um atributo para indicar o seu conteúdo "real".

. misturaO sufixo mistura. Cria listas de elementos para uso em modelos de conteúdo em que diferentes classes de itens de obter combinado. A entidade Flow.mix (também do arquivo de personalização de XHTML 1.1 - Module-basedXHTML) É um bom exemplo:

 
Qualquer elemento que usa Flow.mix no seu modelo de conteúdo pode incluir praticamente qualquer elemento no vocabulário XHTML. É definitivamente uma combinação.
  

. modParâmetro entidades que terminam em. Mod montar DTDs completo de todas estas pequenas partes que compõem XHTML. XHTML 1.1 's ficheiro do controlador (incluído como Apêndice B XHTML 1.1 - Module-basedXHTML) Contém muitas destas entidades.

 xhtml% form.mod;

Neste caso, a entidade é declarada usando um identificador público e uma parte do sistema. Se o aplicativo ou analisador de processamento este compreende o identificador público, ele pode usar essa informação para incluir a DTD. Se não, ele pode usar o URL relativo que se segue para recuperar o arquivo. Após a declaração, o conteúdo do arquivo é imediatamente incluído no DTD.

. móduloParâmetro entidades que terminam em. Módulo turno das entidades que terminam em mod. Ligado e desligado usando as mesmas instruções condicionais (INCLUDE e IGNORE) que. Entidades ATTLIST uso. Por exemplo, o módulo de formulário XHTML normalmente é carregado por causa deste código:

 xhtml% form.mod;]]>

Se você quiser manter o módulo de formulário de carregamento, tudo que você tem a fazer é definir um novo xhtmlform. Entidade módulo antes que um, substituindo-o com um valor de IGNORE:

 ...  xhtml% form.mod;]]> O resultado é este:  xhtml% form.mod;]]>

O módulo não carregar. Note aqui a convenção de nomeação - tanto as entidades (. Mod e. Módulo) têm o mesmo nome, exceto para o sufixo. Isso torna o DTDs muito mais gerenciável.

Esquema MódulosXHTML 1.1 vai usar esquemas XML quando estiver pronto. O Modularização do XHTML Estados projecto do Apêndice A, "Este apêndice irá conter implementações dos módulos definidos em XHTML Abstract Módulos via XML Schema [XMLSCHEMA], quando o esquema XML torna-se uma recomendação W3C aprovado." O Construindo o XHTML Módulos proposta não especifica como construir módulos de esquema. Os projectos em curso esquema não usar mecanismos que correspondem diretamente a entidades parâmetro, mas abordagens semelhantes pode ser possível utilizar entidades gerais (porque Schemas são documentos XML em si) e da extensão e os mecanismos de restrição de esquemas XML.

um artigo submetido por Albert Lichtblau


Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre.
Importante: Este artigo "XML DTD Módulos" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.


Online: 287 users browsing the articles directory