Seção 5: Apêndices

Q 5.3: Essas não são as Perguntas Frequentes do XML

Perguntas Não-frequentes

Essa é uma lista de tópicos que pessoas perguntaram à respeito ou pesquisaram em relação ao FAQ XML, mas que não são necessariamente ligados à XML e sua tecnologia, nem perguntas frequentes. Esta também inclui algumas definições para o benefício de usuários que vieram ao XML por rotas diferentes e podem não terem sido apresentados a um histórico de publicação de documentos.

Leitores também podem querer ler o “Essas não são as Perguntas Frequentes do SGML” do Joe English em http://www.flightlab.com/~joe/sgml/faq-not.txt .

AJaX

HTTP, Javascript, e XML assíncrono. Uma técnica para melhorar a interatividade entre páginas web na qual scripts dentro no navegador detectam atividades do usuário e já busca os dados assincronamente de um banco de dados baseado em XML, ao invés de esperar até que o usuário clique em um link e pedindo os dados assincronamente do servidor.

Atributos

Esses são itens de metadata ou metainformation (informação sobre informação) que podem ser adicionados à start-tag de um elemento. Geralmente, atributos são uma forma de refinar significado, função, e outras qualidades de um elemento. Eles tomam a forma de um nome e valor citado junto por um sinal de igual, por exemplo

<part xml:id="B22" catnum="51N1573R" level="App">Left-handed
      Screwdriver</part> 
    

Nomes de atributos devem seguir as regras XML para Nomes (veja especificações ). Se a sua aplicação não usa um DTD ou Schema, os valores dos atributos são tratados como texto plano (CDATA) e não podem ter um significado especial para XML (com exceção de xml:id e xml:lang , veja abaixo). Em um DTD ou Schema, atributos podem ser datatypes designados, os mais comuns sendo (usando a terminología DTD para simplificar):

ID ou IDREF

Valores de atributos ID devem ser Nomes XML (sem espaços; devem começar com uma letra) e devem ser únicos em um documento. Um valor de atributo IDREF pode ocorrer qualquer número de vezes, mas este deve ser o valor de um atributo ID no mesmo documento. ID e IDREF são mais comumente usados para fazer referências cruzadas entre documentos.

Note que um atributo ID pode ter qualquer nome: não precisa ser chamado de ‘ID’, ainda que geralmente seja. Por outro lado - como melhor prática - você nunca deve usar o nome ‘ID’ (‘id’) para um atributo que não seja do tipo ID, simplesmente pela confusão. Se sua aplicação tem valores de identidade únicos que a comunidade chame de IDs, e que não são Nomes XML, ou chame o atributo de algo diferente (exemplo ‘ID-produto’) ou explique extensivamente que o valor não é uma ID XML.

Existe uma Recomendação W3C que designers de tipos de documento devem usar o nome de atributo xml:id , e isso pode ser interpretado por parsers como sendo uma ID única sem a necessidade do documento usar um DTD ou Schema.

CDATA

Somente texto.

Lista de Token

O atributo deve ter um de um número restrito de valores (especificados em parênteses na declaração, separado por barras verticais), exemplo

<!ATTLIST part level (App|Jny|Mst) #REQUIRED> 
<!ATTLIST Q.27 resp  (Yes|No) "Yes"> 
          

No primeiro exemplo não há padrão, e o valor é compulsório. No segundo, ‘Yes’ é o valor padrão (se o atributo é omitido, o parser pegará o valor padrão da declaração).

Entidade

O valor do atributo deve ser uma Entidade .

NMTOKEN

Um Nome Token XML é como um valor ID (sem espaços) mas este pode começar com um caractere não-letra (exemplo um dígito ou pontuação).

Atributos especiais

Em adição à xml:id (mencionado acima), existem dois outros permitidos pela Especificação XML:

xml:space

Para assinalar a intenção que naquele elemento, espaço em branco deve ser preservado para aplicações;

xml:lang

Para especificar a linguagem usada nos conteúdos e valores de atributo de qualquer elemento.

Veja seções 2.10 e 2.12 das Especificações para mais detalhes.

Em Schemas, uma gama muito maior de tipos de dados está disponível em comparação com DTDs, e critérios de validação complexos podem ser atribuídos à cada um.

Atributos em um DTD podem ser declarados como #REQUIRED (compulsório), #IMPLIED (opcional), ou #FIXED (predefinido ou invariável).

Não é pretendido que haja qualquer limite no comprimento de um valor de atributo, mas você deve checar que o seu software de processamento consiga lidar com volumes incomuns de dados se pretende usar comprimentos muito grandes.

BPEL

A Linguagem de Execução de Processamento de Negócios Business Process Execution Language, em inglês) é uma especificação baseada em XML dos passos necessários para que um processo de negócio cooperativo aconteça entre servidores em consenso.

Byte Order Mark

Uma assinatura de dois bytes ( 0xFEFF , definido em Unicode e ISO 10646) que deve fingir ser simulado ao documento XML quando usando a codificação UCS-2, para permitir que processadores diferenciem entre as codificações UCS-2 e UTF-8.

Colour(cor)

XML é projetado para identificar informações sobre a estrutura e conteúdo de documentos de texto, ao invés de sua aparência. Ainda que seja perfeitamente possível identificar e armazenar informações sobre aparência, essa informação é geralmente salva para uma folha de estilos CSS ou XSL. Se você precisa gravar informação sobre formatação ou aparência de um documento existente, existem funções no Schema/DTD TEI para fazê-lo.

Exportação de dados

Um requerimento comum para um modelo de dados plano usado em muitos sistemas e-commerce é de exportar dados XML para o formato de dados CSV (Comma-Separated Values - valores separados por vírgula) como entrada para planilhas. Existe um exemplo simples de um script curto para fazer isso aqui . Rotinas mais complexas e sofisticadas poderia facilmente ser escritas usando XSLT e outros softwares de processamento XML. Usuários devem notar que ainda que a conversão para CSV seja adequada para formatos de dados simples, é um formato inapropriado para documentos de texto XML normais que usam modelos de Conteúdo Misto.

Importação de dados

Muitos projetos XML precisam da importação de documentos existentes em formatos não-XML. A importação de documentos existentes em HTML é explicada em Como posso fazer meus arquivos existentes em HTML funcionar em XML? , e se você pode converter seus documentos para XHTML; esse é provavelmente o método mais simples. OpenOffice salva arquivos em Documento de Formato Aberto (ODF), que são o padrão internacional para documentos XML de escritório. Arquivos Word podem ser salvos como WordML (2003) ou Open Office XML (2007: a alternativa da Microsoft para ODF). Em ambos os casos uma transformação XSLT pode ser escrita para criar um formato de importação XML ideal. Para documentos complexos em outros formatos, entretanto, conversão de software especializada é necessária. Alguns editores de XML estão começando a oferecer conversão para outros formatos integrada, e existem muitos sistemas de conversão autônomos disponíveis (alguns à alto custo) para formatos que não são acessíveis via marcação, como PDF, PostScript, L A T E X , Quark XPress, e a maioria de documentos de formato proprietários. O ponto crítico é que quase todos os documentos não-XML (não-SGML) são formatados para fazê-los legíveis por humanos e bonitos, não para fazê-los legíveis para máquinas. Logo, frequentemente é o caso que a informação necessária para fazer o documento significativo em XML simplesmente não existe nestes formatos. A única alternativa para esta classe de documentos é fazê-los com que sejam re-digitados ou escaneados para XML por uma das muitas empresas no subcontinente Indiano ou no Pacific Rim.

Desvantagens

Markup XML tem algumas desvantagens:

  • Pode ser verborrágica a não ser que nomes de elementos e atributos sejam escolhidos com cuidado. Em documentos grandes a marcação geral não precisa ser grande, mas em mensagens curtas este pode ser maior que os próprios dados, especialmente quando os nomes de atributos ou elementos inventados por máquinas.

  • Marcação sobreposta não é permitido (um elemento não pode começar dentro de outro elemento e terminar dentro de outro): a marcação de elementos deve se aninhar hierarquicamente.

  • A maioria das aplicações precisa que o documento seja carregado inteiramente na memória antes que possa ser analisado e processado. Isso pode se tornar um problema para documentos realmente enormes (maior que a memória endereçável de um computador). É discutível que XML seja a ferramenta errada para arquivos desse tamanho, mas existem sistemas de streaming que permitirá que estes sejam processados.

  • Alguns dos softwares são realmente medíocres.

Edição

Para editar (abrir) um arquivo XML você deve usar um editor XML . É possível abrir um arquivo XML usando qualquer editor de texto plano padrão ou até um processador de palavras, mas esteja ciente que estes podem tentar re-formatar o arquivo incorretamente porque não entendem XML.

Entidades

Uma entidade Uma entidade é uma unidade de armazenamento em XML. Pode ser tão pequena quanto um caractere ou tão grande quanto um documento inteiro. Quatro tipos de entidades são declaraveis :

Entidades gerais

Que podem ser macros substituindo strings:

          <!ENTITY IBM "International Business Machines">
          

Estes podem ser usados como entradas de dados redutoras ou para garantir soletragem uniforme como &IBM; e são substituídos quando o arquivo é analisado.

Elas também podem representar arquivos externos:

          <!ENTITY chap5 SYSTEM "chapter5.xml"> 
          

Que podem ser usados como uma mecanismo de inclusão de arquivo no ponto em que você insere &chap5; . Entidades de arquivos gerais externos não devem conter a Declaração XML ou qualquer Declaração de Tipo de Documento.

Entidades de documento

Entidades de documento):

<!ELEMENT link (#PCDATA)> <!ATTLIST link to ENTITY #REQUIRED>
... 
<!NOTATION PDF PUBLIC 
  "-//Adobe//NOTATION Portable Document Format//EN//PDF"
  "http://partners.adobe.com/public/developer/pdf/index_reference.html"> 
<!ENTITY pricelist SYSTEM "/sales/pricelist.pdf" NDATA PDF> 
... 
<para>Please refer to our <link to="pricelist">current price list</link>.</para>
          

Isso oferece um método extremamente robusto de definir uma entidade externa uma vez e referenciá-la múltiplas vezes (se o nome da fonte externa mudar, você só tem que atualizar a declaração da entidade).

Entidades de caracter

Como &aacute; para representar caracteres que usuários sem a função necessária no teclado queiram usar, como ‘á’;

Entidades de parâmetro

São como Entidades Gerais mas só podem ser referenciadas dentro de uma DTD. São usadas para controle de modelos de conteúdo, inclusão ou exclusão de declarações, e modificação de construções modulares:

<!ENTITY % local.qandaset.mix "|bibliodiv">
          

(para usar um exemplo de DTD para este FAQ) onde a mistura de tipos de elemento no modelo de conteúdo para qandaset é especificado pelas entidades qandaset.mix (definido pelo DocBook)) e pelo local.qandaset.mix (definível pelo usuário [eu]) para que DTD possa ser ajustado sem ter que ser editado.

Nomes de entidades gerais, incluindo entidades de documento XML e de caracteres, sempre começam com um “e” comercial ( & ) e terminam com ponto-e-vírgula ( ; ), e podem ser usados em qualquer lugar no documento. Entidades de parâmetro só podem ser usadas em DTD: estas começam com um sinal de porcentagem ( % ) e terminam com ponto-e-vírgula.

Numeração

Para contar o número de ocorrências de um nódulo em um documento XML, você pode usar a função count em XSL[T], por exemplo

<xsl:value-of select="count(//chapter)"/> 
    

Para aplicar o contador a um tipo de elemento repetitivo, use o elemento xsl:number por exemplo

<xsl:number select="appendix" level="any" format="A"/> 
    

Para mais sobre XSLT, veja Como eu controlo a formatação de XML? .

Variáveis do ambiente

XML é uma linguagem markup, não uma linguagem de programação, logo, esta não tem conceito de variáveis ambientes. Entretanto, se você está usando uma DTD, e acessando seus arquivos XML sob controle de uma programa (por exemplo, num script ao invés de manualmente) é possível modificar os valores de atributos ou entidades declaradas (por exemplo com um stream-editor como o sed) antes que o arquivo seja aberto, e logo passar os valores de um ambiente externo para o documento. Uma abordagem similar seria possível com Schemas.

Escapando

“Escapar” significa temporariamente mudar a forma que um programa funciona para fazer algo diferente com os dados. Em SGML, era convencional usar apenas caracteres ASCII em seus documentos porque teclados, telas e fontes para outros caracteres eram frequentemente indisponíveis. Para escapar das limitações deste formato para caracteres não-ASCII como acentos e símbolos, um conjunto de nomes mnemônicos estava disponível, prefixado por um “e” comercial ( & ) para ligar o escapamento, e seguido por ponto-e-vírgula (;) para desligá-lo, então um á era dado como &aacute; .

XML permite usar Unicode, para que qualquer caractere ou símbolo em qualquer língua possa ser digitado como o próprio. Se você está usando codificação UTF-8 em seus documentos, não há necessidade de usar escapamento exceto para os dois símbolos markup ( < e & ). Entretanto, nem todos tem um editor Unicode, e fontes Unicode completas são muito grandes, então é convencional em línguas alfabéticas escolher uma codificação que permita o uso da maioria dos caracteres que você precisa, e usar escapamento para outros caracteres ocasionais.

Ponto flutuante

Você não pode declarar o conteúdo dos dados de caracteres ou valores de atributo como pontos flutuantes (ou muitos outros tipos de dados) usando DTDs. Para fazer isso você precisa de Schemas.

GTT

O Gnome Time Tracker (Rastreador de Tempo Gnome) é um componente da interface Gnome usado extensivamente em sistemas Linux. Parte dos seus dados internos é configurada em XML..

Jogos

Não estou ciente de nenhum jogo de computador escrito usando XML até o momento, ainda que XML seja usado em alguns arquivos de controle interno e de configuração por jogos.

Idempotência

Um termo usado na especificação HTTP para descrever a natureza do lado livre de efeitos colaterais de pedidos repetidos para uma fonte.

Javascript

ECMAscript (para dar-lhe seu nome verdadeiro) não tem nada a ver com a linguagem Java. É projetado para rodar dentro da janela de um navegador, navegando ou agindo na marcação de uma página para criar conteúdo dinâmico, validar formulários, ou instanciar objetos em formas que não são possíveis com HTML estático. Também é projetado para que este não possa escrever para o sistema de arquivos local do usuário, por razões de segurança óbvias, então este não pode ser usado para criar arquivos XML localmente, ainda que existam algumas portas dos fundos em software da Microsoft que permite páginas alteradas serem salvas no disco.

Quebras de linha

Arquivos XML podem ser criados usando qualquer uma das três representações padrões de nova linha (newline): CR (Mac), LF (Unix), ou CR/LF (Windows). O uso de qualquer outra pode levar a comportamento indefinido (então velhos editores DOS que usam LF/CR podem criar arquivos inutilizáveis). Processadores XML normalizam todos line-ends para LF.

Quebra de linha na sua saída é governada pela sua engine de renderização (exemplo, um navegador, um typesetter, etc). Seu DTD ou Schema pode definir elementos especiais ou entidades para serem usadas em ocasiões raras quando uma quebra de linha forçada é necessária, mas isso não é normalmente feito em XML (exceção: reconstrução de documentos históricos usando o TEI).

Loops

Para processar XML repetitivamente, você precisa usar uma linguagem de processamento que permite usar loops ou o manuseamento cíclico de um conjunto definido de nodes. Por exemplo em XSLT, para criar uma saída para todos os títulos de capítulos para criar uma tabela de conteúdo (exemplo, fora da posição natural do documento), você diria:

<xsl:for-each select="//chapter"> 
  <li> 
    <xsl:value-of select="title"/> 
  </li> 
</xsl:for-each>
    
Multimídia

A Synchronized Multimedia Integration Language (SMIL) fornece um vocabulário XML para a criação simples de apresentações audiovisuais interativas. O SMIL é normalmente usado para apresentações multimídia ricas, que integram áudio e vídeo com imagens, texto ou qualquer outro tipo de mídia.

Patentes, Direitos Autorais e Propriedade Intelectual

Não sou advogado, e isso não é um conselho legal. Se você está preocupado, veja primeiro um psiquiatra ☺

Uma vez que os EUA (e, cada vez mais, em outros lugares) suspenderam os pedidos de patentes de verificação de sanidade, praticamente qualquer pessoa pode patentear qualquer coisa nesses países, independentemente de já existir ou não. Se você é suficientemente falido intelectualmente, então você pode começar a enviar faturas para empresas e até mesmo pessoas que exigem pagamento de taxas de licença para uso continuado.

O XML foi redigido em 1995 e publicado pela primeira vez em 1996, de modo que qualquer um que alegasse que eles inventaram uma marcação estruturada hierarquicamente aninhada, auto-definida entre colchetes pontiagudos, e que, provavelmente, faltam alguns elementos para se aproximar do Schema. O XML é baseado no SGML, que é um padrão internacional codificado como ISO 8879: 1986, e foi precedido por vários outros sistemas de marcação intimamente relacionados, de modo que qualquer um que reivindique que o inventou depois dessa data é igualmente abrangente.

Muitas tecnologias subsequentes derivadas que devem sua existência ao SGML e ao trabalho de base XML possivelmente são patentes válidas, da mesma forma que o fogo não foi originalmente patenteado, mas os fósforos e os isqueiros foram.

As patentes foram originalmente projetadas para novas invenções físicas. Seu uso para metodologias e algoritmos ampliou o conceito para o domínio das idéias, que muitas pessoas consideram profundamente suspeitas. O patenteamento de fenômenos naturais, como os genes (que são partes pré-existentes da natureza, como políticos e escória da lagoa), não tem sentido e está intelectualmente vazio, embora legalmente aplicável nos EUA e em outros lugares.

Os direitos autorais subsistem automaticamente em qualquer coisa que você crie, mas em alguns países (especialmente os EUA e a França) você não pode fazer valer isso, a menos que você registre seu interesse. Os direitos autorais persistem por vários anos após a sua morte (UE: 75, diferente em outro lugar) para permitir que seus descendentes se beneficiem das vendas de seu trabalho.

O copyright é a forma física de expressão intelectual, como livros, jornais, obras de arte, sites ou programas de computador. Existe para evitar que outros roubem seu trabalho e vendam. Você pode citar fragmentos do trabalho de outras pessoas sem permissão, como uma linha de um poema ou uma barra de música, ou uma frase de uma novela, desde que você diga quem é e onde encontrá-lo: caso contrário, você precisa pedir permissão antecipadamente. O copyright já fornece proteção mais do que adequada para programas de computador, tornando o uso de patentes para os mesmos excessivamente desnecessário.

A Propriedade Intelectual identifica você como o dono dos pensamentos e idéias que podem encontrar sua manifestação física em invenções patenteáveis ​​ou publicações protegidas por direitos autorais. Mesmo se você vender suas patentes, e por muito tempo depois de seus direitos autorais terem expirado, você ainda pode ser visto como a pessoa que sonhou a idéia, e alguns países (por exemplo, o Reino Unido) permitem que você afirme formalmente seu direito de ser identificado, independentemente do que acontece com o livro ou o gizzmo.

Você sempre deve reconhecer a propriedade intelectual de outros, especialmente quando você usa isso para promover seus próprios objetivos. Fingir que as idéias inteligentes de outra pessoa são suas próprias provavelmente é uma ofensa pior que tentar patentear fogo, água, roda ou XML.

Pipelining

Técnica para reduzir complexos requisitos de processamento seqüencial e paralelo para um conjunto de componentes que podem ser concluídos sob o controle do programa. O termo é retirado da facilidade do Unix para redirecionar a saída de um comando para a entrada de outro (chamado de 'pipe'), criando uma cadeia ou pipeline através do qual os dados passam da fonte ao resultado.

O W3C possui uma Apresentação pendente de notas em um XML Pipeline Definition Language que pode ser usado para definir um pipeline de maneira portátil, independente do fornecedor

RSS

O formato Really Simple Syndication foi projetado para permitir que os sites de notícias processassem atualizações por máquina, e evoluiu para um formato semi-padrão para blogs e outros sites com mudanças freqüentes para notificar o mundo das mudanças. Infelizmente, nunca foi devidamente definido e tem múltiplas versões incompatíveis e indocumentadas. Estava prestes a ser substituído por um idioma muito melhor chamado Atom, mas a Microsoft anunciou recentemente o seu apoio ao RSS, por isso parece que podemos ficar presos com um limão nos próximos anos.

Os "leitores de notícias" (leitores de RSS) estão disponíveis para todas as plataformas, tanto autônomos quanto como plugins do navegador. Não confunda estes com programas da mesma descrição projetados para fornecer acesso ao serviço Usenet News, o que é completamente diferente (e você precisará ler em comp.text.xml ).

Renderização

Usando XSLT ou XSL: transformação FO (ou outros sistemas de conversão semelhantes), as informações marcadas em XML podem ser renderizadas para quase todos os objetivos: HTML, PDF, áudio, Braille e quase qualquer formato de texto simples (por exemplo, L A T E X ). Como ele aparece (ou sons) é o resultado do uso de planilhas de estilo ou outra lógica de transformação ativada pela marcação.

SML

O Linguagem de Marcação Spacecraft é uma aplicação de XML.

A linguagem de programação Standard ML não é.

Você quis dizer SGML ?

SOAP

Um padrão W3C para a "definição das informações baseadas em XML que podem ser usadas para trocar informações estruturadas e digitadas entre pares em um ambiente descentralizado e distribuído". O mais comumente usado nos Serviços da Web para a passagem de mensagens.

Originalmente, o Protocolo de Acesso a Objetos Simples , o acrônimo agora está indefinido ou é expresso como o Protocolo de Acesso Orientado ao Serviço. Guru99 tem um bom tutorial sobre SOAP .

Procura

Você pode pesquisar arquivos XML individuais em uma linha de comando sequencial, autônoma e sem indexação usando programas como lxgrep ou lxprintf , partes do kit de ferramentas LTXML2. Muitos editores também incluem um mecanismo de pesquisa.

O XSLT permite uma facilidade de pesquisa limitada simplesmente usando funções como contains , starts-with , e ends-with . XSLT2 adiciona Expressões Regulares. XQuery é um idioma de pesquisa de pleno direito para XML.

O processador Saxon XSLT vem com uma implementação do XQuery (veja também a XQL FAQ ), que pode aceitar consultas tanto a partir da linha de comando como de um arquivo. Saxon também pode usar um arquivo de controle para especificar grupos de arquivos XML a pesquisar juntos.

Para pesquisa indexada (para velocidade), você precisa de uma ferramenta de pesquisa XQuery que implemente um mecanismo de indexação que lê e compreenda a marcação. Estes geralmente são implementados como parte de um sistema de banco de dados XML "nativo", como o eXist (e muitos outros), que funcionam independentemente ou em paralelo com um servidor XML como Cocoon .

Os bancos de dados relacionais tradicionais (MySQL, Oracle, etc.) tendem a armazenar XML como cadeias ou BLOBs indistinguíveis, usando backends XML para proteger a marcação na importação e exportação. Os bancos de dados XML "nativos" têm o gerenciamento XML incorporado e podem ser configurados para granularidade, para armazenar em um nível de elemento específico, tornando a pesquisa sensitiva a marcação muito mais efetiva.

Servindo XML

Veja Eu preciso alterar qualquer software do meu servidor para trabalhar com o XML?

Classificação

Para classificar um conjunto repetitivo de elementos XML no XSL [T], use o elemento xsl:sort , por exemplo

<xsl:for-each select="//acronym"> 
  <xsl:sort select="@abbrev"/>
  <xsl:value-of select="@abbrev"/> 
  <xsl:text>: </xsl:text> 
  <xsl:apply-templates/> 
</xsl:for-each>
    
Caracteres Especiais

O XML possui apenas dois caracteres de marcação especiais em documentos normais:

  • O colchete de ângulo aberto ou o sinal de menos-que ( < ) que inicia uma tag de início ou uma etiqueta final como <relatório> ou </table> ;

  • O caractere do e comercial ( & ) que inicia uma referência de entidade como &aacute; para á ou &#x00A7; para §.

Ao contrário da opinião popular, o ângulo de fecho ou maior que ( > ) e o ponto-e-vírgula ( ; ) não são caracteres especiais no texto normal: eles apenas adquirem seu significado especial temporário quando um dos dois caracteres de marcação foi encontrado.

Em DTDs, o sinal de porcentagem ( % ) tem um significado especial nas declarações de entidade : ele define a entidade como uma entidade de parâmetro , o que significa que ela só pode ser usada dentro da DTD, não em um texto de documento e somente para substituição de dados (um tipo de macro simples).

O ponto de exclamação ( ! ) Adquire um significado especial imediatamente após um sinal de menos que: quando seguido por uma das palavras-chave de declaração em uma DTD, sinaliza o início da Declaração; Quando seguido por dois traços, ele sinaliza o início de um comentário (terminado por outros dois traços e um sinal de maior-que.

TMX

TMX é um método padrão para descrever dados de memória de tradução que estão sendo trocados entre ferramentas e / ou fornecedores de tradução para tradução de linguagem humana (parte do projeto OSCAR da LISA).

Tabelas

Você pode definir tabelas de qualquer maneira que você deseja em XML (veja O XML me permite fazer minhas próprias tags? ) Mas existem alguns modelos de tabelas existentes que se tornaram tão amplamente usados ​​(e suportados por software) que precisaria de um Motivo convincente para inventar algo novo. Há mais detalhes em ( Flynn, 1998 ) §2.3.7.

HTML

As tabelas HTML foram inventadas pela Mosaic (agora Netscape) e apareceu pela primeira vez na DTD HTML2. Em todas as versões de HTML e XHTML definem um modelo muito simples mas prático, com muito poucos aprimoramentos, adequados para uso na web e para impressão rudimentar. Sua principal vantagem é que, em um navegador, as alturas e as larguras das células (e, portanto, as larguras das colunas) se expandem ou se contraem automaticamente para acomodar a quantidade de texto contido nelas. A maioria dos outros modelos de tabela suportam as larguras das colunas e a altura das células será especificada antecipadamente (o que você pode fazer em HTML, mas isso raramente é usado).

CALS

A Logística e Suporte Assistidos por Computador (e várias outras siglas ao longo dos anos) foi (é) parte do projeto militar dos EUA para garantir uma marcação consistente para toda a documentação, originalmente no SGML, agora em XML. Como parte desta atividade, o modelo de tabela CALS tornou-se o mais utilizado na documentação técnica, especialmente para os Manuaies Técnicos Eletrônicos Interativos (IETMs), com suporte extensivo em todos os principais editores, e é o modelo de tabela padrão no DocBook DTD e Schema. As definições de CALS são muito poderosas, mas bastante complexas, e podem lidar com praticamente todos os requisitos de abrangência, decisão e alinhamento.

SASOUT

Este modelo tem sido amplamente utilizado nas ciências sociais e em outros lugares para definir tabelas com base na semântica dos dados, em vez da aparência. Ao mesmo tempo, eles eram uma alternativa no DocBook (habilitado por um botão de entidade de parâmetro).

TEI

O modelo TEI é projetado para permitir que o codificador represente as tabelas existentes que são transcritas a partir de material histórico, literário ou de arquivo, e não para a geração de novos dados. A marcação é no mesmo nível de simplicidade que o modelo HTML, mas é projetado para permitir a inclusão da marcação e metadados muito mais densos necessários nos textos de pesquisa.

L A T E X

O modelo L A T E X não é de interesse direto para o usuário XML, exceto na medida em que L A T E X é um alvo comum para transformações de XML usando XSLT para criar PDFs. Como CALS, as tabelas L A T E X podem lidar com quase todas as formatações, mas os alinhamentos padrão assumem que cada formato de coluna é definido de antemão e que cada célula ocupará uma linha de dados: um pacote adicional (matriz) é necessário para lidar com células de várias linhas do mesmo modo que outros modelos fazem.

Em XML, não é necessário usar tabelas para marcar listas, como costuma ser feito em processadores de texto, porque as facilidades de processamento de linguagens como XSLT permitem que você transforme o documento para usar métodos não tabulares (como divs de HTML). A marcação da tabela deve, portanto, ser confinada a tabelas "reais" (dados dispostos em linhas e colunas) e não abusadas simplesmente porque você quer algo exibido em um nível com outra coisa: é melhor escolher a marcação que foi projetada para fazer o trabalho corretamente, ao invés de distorcer as instalações existentes.

Os usuários de Wordprocessor geralmente não sabem que muitas estruturas que atualmente usam tabelas de processadores de texto são, de fato, listas segmentadas, as quais processadores de texto são incapazes de gerenciar corretamente. Um dos principais motivos para fazê-lo corretamente é que os dados podem ser reprocessados ​​para ter sentido quando lidos na ordem.

Funções de formatação de documentos de texto

Como XML é uma metalinguagem para permitir que você defina e nomeie suas próprias estruturas de informação, não possui conhecimento interno de nada para começar. Portanto, não possui compreensão inerente de nenhum documento específico, como listas com marcadores, seções, notas de rodapé ou qualquer um dos recursos comuns em linha, como menus suspensos, formulários (entradas, caixas de seleção, botões de rádio e áreas de texto), scripts, mouse-ups, ou outros sinos e apitos - são coisas que você precisa usar XML para definir, em um DTD ou Schema para sua aplicação específica. Contrariamente à impressão dada por alguns fabricantes, essas coisas não são incorporadas ao próprio XML. Você primeiro escolhe ou projeta um tipo de documento (Esquema ou DTD) para representar suas informações com precisão, então você pode gerar efeitos como o acima usando o estilo CSS ou escrevendo uma transformação XSL [T] de seu XML para HTML, Word, L A T E X O PDF, ou qualquer outro formato é capaz de instanciá-los.

Existem propostas e recomendações adicionais de XML nativas no W3C para o tratamento de formulários XML, XML Linking, XML Security e muitos outros recursos, mas esses são mecanismos de habilitação arquitetônica, não substituições drop-in para HTML.

UML

A Linguagem de Modelagem Unificada não tem nada a ver com o XML, embora existam muitos pontos de contato, e algum software está disponível para expressar algumas estruturas UML em XML para fins de mensagens de inter-processamento..

Erros de análise de URI

Veja Semicolon .

Variáveis

XML não tem variáveis ​​ou parâmetros, nem possui campos ou registros. Estes são todos os termos da programação e tecnologia de banco de dados, e não possuem equivalentes exatos em XML.

O XML identifica suas informações com elementos e atributos .

WAP

O Wireless Application Protocol (WAP) agora é gerenciado pela Open Mobile Alliance .

Bem formado

Veja Bem formado XML .

Espaço em branco

Veja Como XML manipula o espaço em branco em meus documentos? .

XLL

O XML Linking Language compreende a especificação XLink e a especificação XPointer. Para obter detalhes, consulte o Grupo de Trabalho XML Linking no W3C.

XLS

Formato de arquivo de planilha proprietário da Microsoft escrito pela sua planilha de Excel .Os arquivos XLS não são arquivos XML, mas as versões modernas do Excel salvam seus dados como arquivos .xlst no formato Office Open XML da Microsoft (OOXML).

Não confunda XLS com XSL (consulte Como controlar a formatação de XML? ).

XML

Esta é a FAQ XML. Tudo aqui é sobre XML. Para explicações introdutórias, veja Basico .

XML Padrões XML de segurança, privacidade e identidade

Eve

Protocolo XML

Existe um Grupo de Trabalho para Serviços Web no W3C, e parte de seu mandato é trabalhar em um Protocolo XML. Consulte http://www.w3.org/2000/xp/Group/ para detalhes.

XMLHTTP

Recurso implementado no MSXML e em outros lugares para permitir a recuperação de páginas da web, dados binários ou respostas com scripts no controle do programa (como usar curl , wget ou dog em um script de shell). Usado de forma assíncrona em aplicações AJaX para pré-busca de dados, economizando tempo para que pareça que um aplicativo esteja operando localmente.

XUL

A Linguagem de Interface de Usuário XML , projetada para especificar a interface do usuário no navegador Mozilla..

asp.net

ASP (Active Server Pages) é um idioma da Microsoft para servir páginas dinâmicas da web, semelhante em conceito para JSP, PHP e outros. Em si, o ASP não tem nada inerente ao XML, embora, como qualquer sistema do lado do servidor, ele possa ser usado para servir XML, assim como um outro tipo de arquivo..

O próprio NET é uma plataforma de aplicativos e metodologia para desenvolvimento de serviços web em servidores Microsoft. A maioria dos serviços da Web é baseada em XML como "operadora comum" de mensagens inter-negócios, portanto, o .NET possui um componente XML significativo.

Marc Hadley escreve:

Existem muitas alternativas ao ASP, a maioria dos quais usa uma abordagem baseada em página semelhante. As alternativas baseadas em Java incluem Java Server Pages (JSP), Java Server Faces (JSF) e Cocoon (que inclui eXtensible Server Pages  — XSP). Alternativas de linguagem de script populares incluem Zope (Python) e Rails (Ruby) [todos os quais possuem suporte XML extensivo. - Ed.]