Seção 2: Usuários Existentes

Q2.2: Como o XML se parece (por dentro)?

Colchetes pontiagudos como HTML

A estrutura básica de XML é similar a outras aplicações de SGML, incluindo HTML. Os componentes básicos podem ser vistos nos exemplos a seguir. Um documento XML começa com um Prolog , opcional, que pode conter duas partes (opcionais:

  1. A Declaração XML :

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

    Isto especifica que este é um documento XML e que ele utiliza o repertório de caractere UTF-8 (o padrão; outros estão disponíveis embora suporte só é demandado para o UTF-8);

  2. Uma Declaração de Tipo de Documento se você está usando um DTD:

            <!DOCTYPE report SYSTEM "http://sales.acme.corp/dtds/salesrep.dtd">
            

    A qual identifica o tipo de documento (aqui, ‘relatório’) e diz onde a Document Type Description (DTD) está armazenada;

O Prolog é seguido pela Instância do Documento :

  1. Um elemento raiz , o qual é o elemento mais superficial (nível máximo) (start-tag plus end-tag) que contém todo o resto: nos exemplos abaixo os elementos raízes são conversação e página título ;

  2. Uma mistura estruturada de elementos descritivos ou prescritivos contendo os conteúdos de dados de caractere (texto), e opcionalmente qualquer atributo (‘name="value"’ pairs) dentro de algumas start-tags.

Os documentos XML podem ser muito simples, com marcações diretas aninhadas do seu próprio design:

      <?xml version="1.0" standalone="yes"?>
<conversation>
  <greeting>Hello, world!</greeting>
  <response>Stop the planet, I want to get off!</response>
</conversation>
      

Ou podem ser mais complicados, com o Schema ou DTD , e talvez um subgrupo interno (mudanças locais DTD em [colchetes quadrados] dentro da Declaração do Tipo de Documento como a declaração ENTIDADE abaixo); bem como uma estrutura aninhada arbitrariamente complexa:

      <?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE titlepage 
  SYSTEM "http://www.foo.bar/dtds/typo.dtd" 
[<!ENTITY % active.links "INCLUDE">]>
<titlepage xml:id="BG12273624">
  <white-space type="vertical" amount="36"/>
  <title font="Baskerville" alignment="centered" 
   size="24/30">Hello, world!</title>
  <white-space type="vertical" amount="12"/>
      <!-- In some copies the following 
           decoration is hand-colored, presumably 
           by the author -->
  <image location="http://www.foo.bar/fleuron.eps" 
   type="URI" alignment="centered"/>
  <white-space type="vertical" amount="24"/>
  <author font="Baskerville" size="18/22" 
   style="italic">Vitam capias</author>
  <white-space type="vertical" role="filler"/>
</titlepage>
      

Ou elas podem estar em qualquer lugar no decorrer do arquivo: muito vai depender de como você quer definir o seu tipo de documento (ou de quem você usa) e para o quê será usado. Base de Dados gerados ou programas gerados de documentos XML utilizados em e-commerce são geralmente não formatados pois são para consumação da máquina, e não para leitura humana, e podem usar nomes ou valores bem longos, com redundância múltipla e algumas vezes nenhum conteúdo de dado de caracteres, apenas valores em atributos:

      <?xml version="1.0"?>
<ORDER-UPDATE AUTHMD5="4baf7d7cff5faa3ce67acf66ccda8248"
 ORDER-UPDATE-ISSUE="193E22C2-EAF3-11D9-9736-CAFC705A30B3"
 ORDER-UPDATE-DATE="2005-07-01T15:34:22.46"
 ORDER-UPDATE-DESTINATION="6B197E02-EAF3-11D9-85D5-997710D9978F"
 ORDER-UPDATE-ORDERNO="8316ADEA-EAF3-11D9-9955-D289ECBC99F3">
  <ORDER-UPDATE-DELTA-MODIFICATION-DETAIL ORDER-UPDATE-XML:ID="BAC352437484">
    <ORDER-UPDATE-DELTA-MODIFICATION-VALUE ORDER-UPDATE-ITEM="56"
     ORDER-UPDATE-QUANTITY="2000"/>
  </ORDER-UPDATE-DELTA-MODIFICATION-DETAIL>
</ORDER-UPDATE>