Você está na página 1de 21

Introduo

A XML (eXtensible Markup Language, ou Linguagem de Marcao Estendida) um subconjunto da SGML (Standard Generalized Markup Language, ou Linguagem de Marcao Padro Generalizada) que permite que uma marcao especfica seja criada para especificar idias e compartilh-las na rede. Ela tem as virtudes da SGML e da HTML sem qualquer das limitaes bvias. Pontos fortes da XML
Inteligncia: a XML inteligente para qualquer nvel de complexidade. A marcao pode ser alterada de uma marcao mais geral como "<CO> Lassie </CO>" para uma mais detalhista, como "<CO> <VENHA_PARA_CASA> <COLLIE> Lassie </COLLIE> </VENHA_PARA_CASA> </CO>". As idias so bem marcadas para que "<VENDO_DOIS> duplo </VENDO_DOIS>" e "<MAIS_LICOR> duplo </MAIS_LICOR>" sejam sempre valores diferentes. A informao conhece a si mesma. No necessria mais nenhuma idia indesejvel; Adaptao: a XML a lngua-me de outras linguagens. Assim, linguagens como DickML e JaneML tornaram-se possveis. A adaptao infinita. Marcaes personalizadas podem ser criadas para qualquer necessidade. Se uma marcao que descreva como uma pizza pepperoni diferente de uma pizza calabresa for necessria, ela pode ser feita; Manuteno: a XML fcil de manter. Ela contm somente idias e marcaes. Folhas de estilos e links vm em separado, e no escondidas no documento. Cada um pode ser alterado separadamente quando preciso com fcil acesso e fceis mudanas. No preciso mais se achar em uma baguna de marcaes; Ligao: a XML possui uma maneira de ligar que inclui todas as formas de ligao. No s isso; ela liga de maneiras que a HTML no pode. A HTML pode fazer de uma maneira simples, onde um objeto se liga a outro. A XML faz isso, mas tambm pode ligar dois ou mais pontos a uma idia. Existem ainda links gmeos que ligam todas as ideas dentro de uma mesma. Qualquer link entre uma idia pode ser manipulado de uma nica maneira; Simplicidade: a XML simples. Um usurio de mdia experincia que olha a XML pode ach-la difcil de acreditar no que v. Comparada com a HTML no. Comparada com a SGML um estudo de simplicidade. A especificao da SGML tem 300 pginas. A da XML, 33. Idias obscuras e desnecessrias foram retiradas em favor de idias concisas. A XML vai direto ao ponto; Portabilidade: a XML de fcil portabilidade. A razo da sua existncia fora e portabilidade. A SGML tem fora. A HTML tem portabilidade. A XML tem ambas. A XML pode ser navegada com ou sem o seu DTD (Document Type Definition, ou Definio de Tipo de Documento - as normas que definem como as tags so estruturas nos documentos XML), tornando o download mais rpido. Tudo que um navegador precisa para ver XML ter a noo que ela prpria e a folha de estilos controlam a aparncia. Se uma validao estrita necessria, o seu DTD pode acompanh-lo e fornecer detalhes exatos da sua marcao.

Objetivos do desenvolvimento da XML A especificao da XML primou pelos seguintes objetivos:


Deveria ser claro usar a XML na Internet;

A XML deveria suportar uma grande variedade de aplicaes; A XML deveria ser compatel com SGML; Deveria ser fcil escrever programas que processem documentos XML; O nmero de recuros opcionais em XML deveria ser mantido em um mnimo absoluto, idealmente zero; Os documentos XML deveriam ser legveis pelos seres humanos e razoavelmente claros; O projeto XML deveria ser preparado rapidamente; O projeto XML deveria ser formal e conciso; Os documentos XML deveriam ser fceis de serem criados; A conciso na marcao em XML de mnima importncia.

Como a XML definida A XML definida pelas seguintes especificaes:


Extensible Markup Language (XML) 1.0: define a sintaxe da XML; XML Pointer Language (XPointer) e XML Linking Language (XLink): define um padro para representar os links entre os recursos. Alm dos links simples, como a tag <A> da HTML, a XML possui mecanismos para ligar recursos mltiplos e diferentes. A XPointer desceve como enderear um recurso, e a XLink descreve como associar dois ou mais recursos; Extensible Style Language (XSL): define a linguagem de folhas de estilos pado para a XML.

Documentos
Se voc j est acostumado com a HTML ou a SGML, os documentos XML parecer-lhe-o familiar. Um documento XML simples apresentado a seguir: Exemplo 1: um documento XML simples <?xml version="1.0"?> <piada> <Joo>Diga <citao>boa noite</citao>, Maria.</Joo> <Jos><citao>Boa noite, Maria.</citao></Jos> <aplausos/> </piada> Algumas coisas podem sobressair-se para voc:

O documento comea com uma instruo de processamento: <? xml ...?>. Esta a declarao XML. Embora no seja obrigatria, a sua presena explcita identifica o documento como um documento XML e indica a verso da XML com a qual ele foi escrito. No h declarao do tipo do documento. Diferentemente da SGML, a XML no requer uma declarao de tipo de documento. Entretanto, uma declarao de tipo de documento pode ser fornecida; alm disso, alguns documentos iro precisar de uma para serem entendidos sem ambigidade. Elementos vazios (<aplausos/> neste exemplo) tem uma sintaxe modificada. Enquanto que a maioria dos elementos em um documentos envolvem algum contedo, elementos vazios so simplesmente marcadores onde alguma coisa ocorre (uma separador horizontal para a marca em <hr> em HTML, por exemplo, ou uma referncia cruzada para DocBook's para a marca <xref>). O final /> na sintaxe modificada indica a um programa que processa o documento XML que o elemento vazio e uma marca de fim correspondente no deve ser procurada. Visto que os documentos XML no requerem uma declarao de tipo de documento, sem esta pista seria impossvel para um analisador XML determinar quais marcas so intencionalmente vazias e quais teriam sido deixadas vazias por um erro. A XML suavizou a distino entre elementos declarados como EMPTY e elementos que meramente no tm contedo. Em XML, vlido usar uma marca de elemento vazio para qualquer um destes casos. Tambm vlido usar um par de marcas incio-fim para elementos vazios: <aplausos></aplausos>. Se a interoperabilidade interessa, melhor reservar a sintaxe de marcas de elementos vazios para elementos declarados como EMPTY e usar a marca de elemento vazio somente para estes elementos.

Os documento XML so compostos de marcas e contedos. Existem seis tipos de marcaes que podem ocorrer em um documento XML: elementos, referncias a entidades, comentrios, instrues de processamento, sees marcadas e declaraes de tipos de documento. As sees seguintes introduzem cada um destes conceitos de marcao.

Elementos Elementos so a mais comum forma de marcao. Delimitados pelos sinais de menor e maior, a maioria dos elementos identificam a natureza do contedo que envolvem. Alguns elementos podem ser vazios, como visto acima; neste caso eles no tm contedo. Se um elemento no vazio, ele inicia com uma marca de incio , <element>, e termina com uma marca de trmino, </element>.
Atributos

Atributos so pares de valores nomeados que ocorrem dentro dasmarcas de incio aps o nome do elemento. Por exremplo:
<div classe="prefcio">

um elemento div cujo atributo class possui o valor prefcio. Em XML, todos os valores de atributos devem estar entre aspas.

Referncias a Entidades A fim de introduzir a marcao em um documento, alguns documentos foram reservados para identificar o incio da marcao. O sinal de menor, < , por exemplo, identifica o incio de uma marca de inicio ou trmino. Para inserir estes caracteres em seu documento como contedo, deve haver uma alternativa para represent-los. Em XML, entidades so usadas para representar estes caracteres especiais. As entidades tambm so usadas para referenciar um texto freqentemente repetido ou alterado e inclu-lo no contedo de arquivos externos. Cada entidade deve ter um nome nico. A definio dos seus prprios nomes de entidades discutido na seo declaraes de entidades. Para usar uma entidade, voc simplesmente a referencia pelo nome. As referncias s entidades iniciam com o E comercial e terminam com um ponto-e-vrgula. Por exemplo, a entidade lt insere um literal < em um documento. A cadeia de caracteres <element> pode ser representada em um documento XML como <&lt;element>. Uma forma especial de referncia a entidades, chamada de referncia a caracter, pode ser usada para inserir arbitrariamente caracteres Unicode em seu documento. Este um mecanismo para inserir caracteres que no podem ser diretamente digitados pelo seu teclado.

Referncias a caracter podem ter uma das duas formas: referncias decimais, &#8478;, e referncias hexadecimais, &#x211E;. Ambas se referem ao caracter Unicode nmero U+211E.

Comentrios Comentrios iniciam com <!-- e terminam com -->. Os comentrios podem conter qualquer dado, exceto a literal "--". Voc pode colocar comentrios entre marcas em qualquer lugar em seu documento. Comentrios no fazem parte de um contedo textual de um documento XML. Um processador XML no preciso para reconheclos na aplicao.

Instrues de Processamento Instrues de processamento (PIs) so formas de fornecer informaes a uma aplicao. Assim como os comentrios, elas no so textualmente parte de um documento XML, mas o processador XML necessrio para reconhec-las na aplicao. As instrues de processamento tm a forma: <?nome dadospi?>. O nome, chamado de alvo PI, identifica a PI na aplicao. As aplicaes processariam somente os alvos que eles reconhecem e ignoram todas as outras PIs. Qualquer dado que segue oalvo PI opcional; para a aplicao que reconhece o alvo. Os nomes usados em PIs podem ser declarados como notaes a fim de identific-los formalmente. Os nomes de PI que iniciam com xml so reservados para a padronizao da XML. Sees CDATA Em um documento, uma seo CDATA instrui o analisador para ignorar a maioria dos caracteres de marcao. Considere um cdigo-fonte em um documento XML. Ele pode conter caracteres que o analisador XML iria normalmente reconhecer como marcao (< e &, por exemplo). Para prevenir isto, uma seo CDATA pode ser usada.
<![CDATA[ *p = &q;

b = (i <= 3); ]]>

Entre o incio da seo, <![CDATA[, e o fim da seo, ]]>, todos os dados de caracteres so passados diretamente para a aplicao, sem interpretao. Elementos, referncias a entidades, comentrios e instrues de processamento so todos irreconhecveis e os caracteres que os compem so passados literalmente para a aplicao. A nica cadeia de caracteres que no pode ocorrer em uma seo CDATA "]]>".

Declaraes de Tipos de Documentos Uma grande porcentagem da especificao da XML trata de vrios tipos de declaraes que so permitidas em XML. Se voc tem experincia com SGML, voc reconhecer estas declaraes dos SGML DTDs (Definies de Tipos de Documentos). Se voc j viu isto antes, o seu significado pode no ser imediatamente bvio. Um dos maiores poderes da XML que ela permite que voc crie seus prprios nomes para marcas. Mas, para uma dada aplicao, provvel no ser significativo para marcas que ocorrer em uma ordem completamente arbitrria. Considere o exemplo 1. Isto teria significado? <Joo>Diga <citao>boa noite</citao>, Maria.</Joo> <Jos><citao>Boa noite, Maria.</citao></Jos> Sai totalmente do que normalmente esperamos que tenha senso. Simplesmente no significa nada. Entretanto, de um ponto de vista estritamente sinttico, no h nada de errado com este documento XML. Assim, se o documento deve ter significado, e certamente h se voc estiver escrevendo uma folha de estilos ou aplicao para process-lo, deve haver alguma restrio na seqncia e aninhamento das marcas. Declaraes so onde estas restries podem ser expressadas. Mais genericamente, as declaraes permitem a um documento comunicar meta-informaes ao analisados a respeito do seu

contedo. Meta-informao inclui as seqncias e aninhamentos permitidos para as marcas, valores de atributos e seus tipos e padres, os nomes de arquivos externos que podem ser refernciados e se eles podem ou no conter XML, o formato de algum dado (noXML) externo que pode ser referenciado e as entidades que podem ser encontradas. H quatro tipos de declaraes em XML: declaraes de tipos de elementos, declaraes de listas de atributos, declaraes de entidades e declaraes de notaes.
Declaraes de Tipos de Elementos

Declaraes de tipos de elementos identificam os nomes dos elementos e a natureza do seu contedo. Uma declarao de tipo de elemento tpica se parece com isto: <!ELEMENT piada (Joo+, Jos, aplausos?)> Esta declarao identifica o elemento nomeado como piada. Seu modelo de contedo segue o nome do elemento. O modelo de contedo define o que um elemento pode conter. Neste caso, uma piada deve conter Joo e Jos e pode conter aplausos. As vrgulas entre os nomes dos elementos indicam que eles devem ocorrer em sucesso. O sinal de adio aps Joo indica que ele pode ser repetido mais de uma vez, mas deve ocorrer pelo menos uma vez. O ponto de interrogao aps aplausos indica que ele opcional (pode estar ausente ou ocorrer somente uma vez). Um nome sem pontuao, como Jos, deve ocorrer somente uma vez. As declaraes para todos os elementos usados em qualquer modelo de contedo deve estar presente para que um processador XML verifique a validade do documento. Alm dos nomes de elementos, o smbolo especial #PCDATA reservado para indicar dados de caracter. A clusula PCDATA significa dado de caracter analisvel. Os elementos que contm somente outros elementos so ditos que tm contedo de elementos. Os elementos que contm outros elementos e #PCDATA so ditos que tm contedo misturado. Por exemplo, a definio para Jos pode ser
<!ELEMENT Jos (#PCDATA | citao)*>

A barra vertical indica um relacionamento "ou" e o asterisco indica que o contedo opcional (pode ocorrer zero ou mais vezes); por esta definio, portanto, Jos pode conter zero ou mais caracteres e marcas citao, misturadas em qualquer ordem. Todos os modelos de contedo misturado devem ter esta forma: #PCDATA deve vir primeiro, todos os elementos devem ser separados por barras verticais e o grupo inteiro deve ser opcional. Outros dois modelos de contedo so possveis: EMPTY indica que o elemento no possui contedo (e, conseqentemente, no tem marca de trmino) e ANY indica que qualquer contedo permitido. O modelo de contedo ANY algumas vezes til durante a converso de documentos, mas deveria ser evitado ao mximo em um ambiente de produo, pois desabilita toda a verificao do contedo deste elemento. Aqui est um conjunto completo das declaraes de elementos para o Exemplo 1: Exemplo 2: declaraes de elementos para Exemplo 1
<!ELEMENT piada (Joo+, Jos, aplausos?)> <!ELEMENT Joo (#PCDATA | citao)*> <!ELEMENT Jos (#PCDATA | citao)*> <!ELEMENT citao (#PCDATA)*> <!ELEMENT aplausos EMPTY> Declaraes de Listas de Atributos

Declaraes de listas de atributos identificam que elementos podem ter atributos, que atributos eles podem ter, que valores os atributos podem suportar e qual valor o padro. Uma dclarao de lista de atributos tpica se parece com isto: <!ATTLIST piada nome ID #REQUIRED rtulo CDATA #IMPLIED

estado ( engraada | noengraada ) 'engraada'> Neste exemplo, o elemento piada possui trs atributos: nome, que um ID e obrigatrio; rtulo, que uma cadeia de caracteres (dados de caracter) e no obrigatrio; e estado, que deve ser ou engraada ou noengraada e por padro engraada, se nenhum valor especificado. Cada atributo em uma declarao tem trs partes: um nome, um tipo e um valor padro. Voc tem liberdade para selecionar qualquer nome desejado, sujeito a algumas pequenas restries, mas os nomes no podem ser repetidos no mesmo elemento. Existem seis tipos de atributos possveis:
1. CDATA

Atributos CDATA so cadeias de caracteres; qualquer texto permitido. No confunda atributos CDATA com sees CDATA; eles no tm relao.
2. ID

O valor de um atributo ID deve ser um nome. Todos os valores usados para IDs em um documento devem ser diferentes. Os IDs identificam unicamente elementos individuais em um documento. Os elementos podem ter um nico atributo ID.
3. IDREF

ou IDREFS O valor de um atributo IDREF deve ser o valor de um nico atributo ID em algum elemento no documento. O valor de um atributo IDREFS pode conter valores IDREF mltiplos separados por espaos em branco.
4. ENTITY

ou ENTITIES O valor de um atributo ENTITY deve ser o nome de uma nica entidade (veja sobre declaraes de entidades abaixo). O valor de um atributo ENTITIES pode conter valores de entidades mltiplos separados por espaos em branco.

5. NMTOKEN

ou NMTOKENS Atributos de smbolos de nome so uma forma restrita do atributo de cadeia de caracteres. Em geral, um atributo NMTOKEN deve consistir de uma nica palavra, mas no h restries adicionais para a palavra; no tem que estar associado com outro atributo ou declarao. O valor de um atributo NMTOKENS pode conter valores NMTOKEN mltiplos separados por espaos em branco. 6. Uma lista de nomes Voc pode especificar que o valor de um atributo deve ser pego de uma lista especfica de nomes. Isto freqentemente chamado de tipo enumerado, porque cada um dos valores possveis est explicitamente enumerado na declarao. Alternativamente, voc pode especificar que os nomes devem atender a um nome de notao (veja sobre declaraes de notao abaixo). H quatro valores padro possveis:
#REQUIRED

O atributo deve ter um valor explicitamente especificado em cada ocorrncia do elemento no documento.
#IMPLIED

O valor do atributo no requerido, e nenhum valor padro fornecido. Se um valor no especificado, o processador XML deve proceder sem um. "valor" Qualquer valor vlido pode ser dado a um atributo como padro. O valor do atributo no requerido em cada elemento no documento, e se ele estiver presente, ser dado a ele o valor padro.
#FIXED

"value" Uma declarao de atributo pode especificar que um atributo tem um valor fixo. Neste caso, o atributo no requerido, mas se ele ocorrer deve ter o valor especificado. Se no estiver presente, ser dado a ele o valor padro. Um uso de atributos fixos para associar

semntica e um elemento. Uma discusso completa vai alm do propsito deste trabalho, mas voc pode achar vrios exemplos de atributos fixos na especificao de XLink. O processador XML executa a normalizao dos valores dos atributos nos valores dos atributos: as referncias de caracter so substuitudas por caracteres referenciados, referncias a entidades so resolvidas (recursivamente) e espaos em branco so normalizados.
Declaraes de Entidades

Declaraes de entidades lhe permitem associar um nome com algum outro fragmento de contedo. Essa construo pode ser um pedao de texto normal, um pedao de uma declarao de tipo de documento ou uma referncia a um arquivo externo que contm ou texto ou dados binrios. Declaraes de entidades tpicas so mostradas no Exemplo 3. Exemplo 3: declarao de entidades tpica
<!ENTITY ATI "ArborText, Inc."> <!ENTITY boilerplate SYSTEM "/standard/legalnotice.xml"> <!ENTITY ATIlogo SYSTEM "/standard/logo.gif" NDATA GIF87A> Existem trs tipos de entidades:

Entidades Internas Entidades internas associam um nome com uma cadeia de caracteres ou texto literal. A primeira entidade no Exemplo 3 uma entidade interna. Usando &ATI; em qualquer lugar do documento inserir "ArborText, Inc" naquele local. Entidades internas permitem a voc definir atalhos para textos freqentemente digitados ou textos que se espera que sejam alterados, como o estado de reviso de um documento. Entidades internas podem incluir referncias para outras entidades internas, mas errado elas serem recursivas. A especificao XML pr-define cinco entidades internas:
&lt;

produz o sinal de menor, <

&gt;

produz o sinal de maior, > produz o E comercial, & produz um apstrofo, ' produz aspas, "

&amp;

&apos; &quot;

Entidades Externas Entidades externas associam um nome com o contedo de um outro arquivo. Entidades externas permitem a documento XML referenciar o contedo de um outro arquivo; elas contm ou texto ou dados binrios. Se elas contm texto, o contedo do arquivo externo inserido no ponto de referncia e analisado como parte do documento referente. Dados binrios no so analisados e podem somente ser referenciados em um atributo; eles so usados para referenciar figuras e outro contedo no-XML no documento. A segunda e a terceira entidades no Exemplo 3 so entidades externas. O uso de &boilerplate; inserir o contedo do arquivo /standard/ legalnotice.xml no local da referncia da entidade. O processador XML analisar o contedo deste arquivo como se ele ocorresse literalmente no local. A entidade ATIlogo tambm uma entidade externa, mas o seu contedo binrio. A entidade ATIlogo pode ser usada somente como o valor de um atributo ENTITY (ou ENTITIES) (em um elemento graphic, talvez). O processador XML passar esta informao para a aplicao, mas ele no tenta processar o contedo de /standard/logo.gif. Entidades Parmetro A entidade parmetro somente pode ocorrer na declarao de tipo de documento. Uma declarao de uma entidade parmetro identificada por "% " (porcento e espao) defronte ao seu nome na declarao. O sinal de porcento tambm usado em referncias para entidades parmetro, ao invs do E comercial. As referncias a entidade parmetro so imediatamente expandidas na declarao de tipo de documento e seu texto de substituio parte da declarao, onde as referncias a entidades normais no so expandidas. Entidades parmetro no so reconhecidas no corpo de um documento.

Voltando s declaraes de elementos no Exemplo 2, voc perceber que dois deles tm o mesmo modelo de contedo:
<!ELEMENT Joo (#PCDATA | citao)*> <!ELEMENT Jos (#PCDATA | citao)*>

At o momento, estes dois elementos so a mesma coisa somente porque eles tm a mesma definio literal. A fim de tornar mais explcito o fato de que estes dois elementos so semnticamente a mesma coisa, usada uma entidade parmetro para definir seus modelos de contedo. H duas vantagens em se usar uma entidade parmetro. Primeiramente, ela lhe permite dar um nome descritivo ao contedo, e segundo que lhe permite alterar o modelo de contedo em somente um local, se voc desejar atualizar as declaraes do elemento, garantindo que elas sempre fiquem as mesmas:
<!ENTITY % pessoascontentes "#PCDATA | citao"> <!ELEMENT Joo (%pessoascontentes;)*> <!ELEMENT Jos (%pessoascontentes;)*> Declaraes de Notao

Declaraes de notao identificam tipos especficos de dados binrios externos. Estas informaes so passadas para a aplicao de processamento, que pode fazer o uso que quiser ou que desejar. Uma declarao de notao tpica :
<!NOTATION GIF87A SYSTEM "GIF"> Eu preciso de uma Declarao de Tipo de Documento?

Como foi visto, o contedo XML pode ser processado sem uma declarao de tipo de documento. Entretanto, existem alguns casos onde a declarao necessria: Ambientes de autoria A maioria dos ambientes de autoria precisa ler e processar declaraes de tipo de documento a fim de entender e reforar o modelo de contedo do documento. Valores padres de atributos Se um documento XML conta com valores padres de atributos, pelo menos uma parte da declarao deve ser processada a fim de se obter os valores padres corretos. Manipulao de espaos em branco

A semntica associada com espao em branco em contedo de elementos diferem da semntics associada com espao em branco em contedo misturado. Sem um DTD, no h maneira para o processador distingir os casos, e todos os elementos so efetivamente contedo misturado. Para mais detalhes, veja a seo chamada Manipulao de Espaos em Branco, neste trabalho. Em aplicaes onde uma pessoa compe ou edita os dados, um DTD provavelmente vai ser preciso se qualquer estrutura deve ser garantida.
Incluindo uma Declarao de Tipo de Documento

Se presente, a declarao de tipo de documento deve ser a primeira coisa em um documento depois de comentrios e instrues de processamento opcionais. A declarao de tipo de documento identifica o elemento raiz do documento e pode conter declaraes adicionais. Todos os documentos XML devem ter um elemento raiz nico que contenha todo o contedo do documento. Declaraes adicionais podem vir de um DTD externo, chamado de subconjunto externo, ou ser includo diretamente no documento, o subconjunto interno, ou ambos:
<?XML version="1.0" standalone="no"?> <!DOCTYPE chapter SYSTEM "dbook.dtd" [ <!ENTITY %ulink.module "IGNORE"> <!ELEMENT ulink (#PCDATA)*> <!ATTLIST ulink xml:link CDATA #FIXED "SIMPLE"

xml-attributes CDATA #FIXED "HREF URL" URL ]> <chapter>...</chapter> CDATA #REQUIRED>

Este exemplo referencia um DTD externo, dbook.dtd, e inclui declaraes de elementos e atributos para o elemento ulink no subconjunto interno. Neste caso, ulink d a semntica de um link simples da especificao XLink. Note que as declaraes no subconjunto interno no leva em conta as declaraes no subconjunto externo. O processador XML l o

subconjunto interno antes do externo e a primeira declarao tem precedncia. A fim de determinar se um documento vlido, o processador XML deve ler a declarao de tipo de documento inteira (ambos os subconjuntos). Mas para algumas aplicaes, a validao pode no ser precisa, e pode ser suficiente para o processador ler somente o subconjunto interno. No exemplo acima, se a validade no importante e a nica razo para ler a declarao de tipo de documento identifcar a semntica de ulink, a leitura do subconjunto externo no necessria. Voc pode comunicar estas informaes na declarao de documento standalone. A declarao de documento standalone, standalone="yes" ou standalone="no", ocorre na declarao XML. Um valor yes indica que somente declaraes internas precisam ser processadas. Um valor no indica que ambas as declaraes interna e externa devem ser processadas. Outras questes de marcao Alm da marcao, existem algumas outras questes a considerar: manipulao de espaos em branco, normalizao de valores dos atributos e a linguagem com a qual o documento foi escrito.
Manipulao de Espaos em Branco

A manipulao de espaos em brancos uma questo sutil. Considere o seguinte fragmento de contedo:
<piada> <Joo>Diga <citao>boa noite</citao>, Maria.</Joo>

O espao em branco (a nova linha entre <piada> e <Joo> ) significante? Provavelmente no. Mas como voc pode afirmar isto? Voc somente pode determinar se um espao em branco significante se voc conhece o modelo de contedo dos elementos em questo. Em resumo, um espao em branco significante em contedo misturado e insignificante em contedo de elemento. A regra para os processadores XML que eles devem passar por todos os caracteres que no so marcao na aplicao. Se o processador um processador de validao, ele tambm deve informar aplicao se os caracteres espaos em branco so significantes.

O atributo especial xml:space pode ser usado para indicar explicitamente que os espaos em branco so significantes. Em qualquer elemento que inclua a especificao de atributo xml:space='preserve', todos os espaos em branco naquele elemento (e dentro dos subelementos que no alteram explicitamente xml:space) sero significantes. Os nicos valores vlidos para xml:space so preserve e default. O valor default indica que o processamento padro desejado. Em um DTD, o atributo xml:space deve ser declarado como um tipo enumerado com somente estes dois valores. Uma ltima observao sobre espaos em branco: em texto analisvel, os processadores XML so requeridos para normalizar todas as marcas de final de linha para um um nico caracter de alimentao de linha (&#A;). Isto raramente de interesse dos autores, mas elimina um nmero de questes de portabilidade de plataformas cruzadas.
Normalizao dos valores de atributos

O processador XML executa a normalizao dos valores de atributos em valores de atributos: referncias a caracteres so substitudas por caracteres referenciados, referncias a entidades s resolvidas (recursivamente) e os espaos em branco so normalizados.
Identificao da linguagem

Muitas aplicaes de processamento de documentos podem se beneficiar da informao sobre a linguagem natural com a qual o documento foi escrito. A XML define o atributo xml:lang para identificar a linguagem. Visto que o propsito deste atributo padronizar a informao entre as aplicaes, a especificao XML tambm descreve como as linguagens devem ser identificadas.

Validao
Dada a discusso precedente de declaraes de tipos, conclui-se que uns documentos so vlidos e outros no. Existem duas categorias de documentos XML: bem formatados e vlidos. Documentos Bem Formatados Um documento somente pode ser bem formatado se ele obedece a sintaxe da XML. Um documento que inclui seqncias de caracteres de

marcao que no podem ser analisadas ou so invlidas no podem ser bem formatados. Alm disso, o documento deve atender a todas as seguintes condies (subentendendo-se que algumas destas condies podem exigir experincia com SGML): A instncia do documento deve estar conforme a gramtica dos documentos XML. Em particular, algumas construes de marcaes (referncias a entidades parmetro, por exemplo) so somente permitidas em locais especficos. O documento no bem formatadose tais ocorrerem em outros locais, ainda que o documento esteja bem formatado nos outros casos. O texto de substituio para todas as entidades parmetro referenciadas dentro de uma declarao de marcao consiste em zero ou mais declaraes de marcaes completas. (Nenhuma entidade usada no documento pode consistir de somente uma parte de uma declarao de marcao.) Nenhum atributo pode aparecer mais do que uma vez na mesma marca de incio. Valores de atributos cadeias de caracteres no podem conter referncias a entidades externas. Marcas no-vazias devem ser apropriadamente aninhadas. Entidades parmetro devem ser declaradas antes de serem usadas. Todas as entidades devem ser declaradas, exceto as seguintes: amp, lt, gt, apos e quot. Uma entidade binria no pode ser referenciada no fluxo do contedo; ela pode ser usada somente em um atributo declarado como ENTITY ou ENTITIES.

Nem a texto ou entidades parmetro so permitidas recursividade, direta ou indiretamente.

Por definio, se um documento no est bem formatado, ele no XML. Isto significa que no h documento XML que no seja bem formatado e os processadores XML no fazem nada com tais documentos. Documentos Um documento bem formatado vlido somente se ele contm uma declarao de tipo de documento e se o documento obedece as restries da declarao (seqncia e aninhamento de elementos vlido, atributos necessrios so fornecidos, valores de atributos so do tipo correto, etc.). A especificao XML identifica todos os creitrios em detalhes.

Ligao
As especificaes XPointer e XLink, atualmente em desenvolvimento, introduz um modelo ligao padro para a XML. Em considerao ao espao e o fato de que rascunho da XLink ainda est sendo desenvolvido, o que segue um exame dos recursos da XLink, em vez de uma descrio detalhada da especificao. Em XLink, um link expressa um relacionamento entre recursos. Um recurso qualquer local (um elemento, o seu contedo, ou uma parte do seu contedo, por exemplo) que enderevel em um link. A natureza exata do relacionamento entre os recursos depende da aplicao que processa o link e da informao semntica fornecida. Alguns destaques da XLink so: a XLink lhe d controle sobre a semntica do link. a XLink introduz Links Extendidos. Links Extendidos podem envolver mais de dois recursos. a XPointer introduz Ponteiros Extendidos (XPointers). Os XPointers fornecem um mtodo sofisticado de localizar recursos. Em particular, os XPointers lhe permitem localizar recursos arbitrrios em um documento, sem que seja necessrio que o recurso seja identificado com um atributo ID.

Visto que a XML no tem um conjunto fixo de elementos, o nome do elemento de ligao no pode ser usado para localizar links. Em vez disso, os processadores XML identificam os links pelo reconhecimento do atributo xml:link. Outros atributos podem ser usados para fornecer informaes adicionais ao processador XML. Um recurso de renomeao de atributos existe para contronar colises de nome em aplicaes existentes.

Dois atributos, show e actuate lhe permitem exercer algum controle sobre o comportamento da ligao. O atributo show determina se o documento para o qual est se fazendo a ligao est embutido no documento atual, substitui o documento atual ou mostrado em uma nova janela quando o link acionado. actuate determina como o link acionado, ou automaticamente ou quando selecionado pelo usurio. Algumas aplicaes iro necessitar de um controle muito mais acurado sobre os comportamento dos links. Para estas aplicaes, locais padro so fornecidos onde a semntica adicional pode ser expressa.

Links Simples
Um link simples lembra fortemente um link HTML <A>: <link xml:link="simple" href="locator">Texto do Link</link> Um link simples identifica um link entre dois recursos, um dos quais o prprio contedo do elemento do link. Este um link in-line. Um localizador identifica o outro recurso. Um localizador pode ser um URL, uma consulta ou um Ponteiro Extendido.

Links Extendidos
Links extendidos lhe permitem expressar relacionamentos entre mais de dois recursos: <elink xml:link="extended" role="annotation"> <locator xml:link="locator" href="text.loc">Texto</locator> <locator xml:link="locator" href="annot1.loc">Anotaes</locator> <locator xml:link="locator" href="annot2.loc">Mais Anotaes</locator> <locator xml:link="locator" href="litcrit.loc">Literatura Crtica</locator> </elink> Este exemplo mostra como os relacionamentos entre um trabalho literrio, anotaes e literatura crtica deste documento podem ser expressos. Note que este link separado de todos os recursos envolvidos. Links extendidos podem ser in-line, para que o contedo do elemento de ligao (outro que no dseja elemento localizadores) participe no link como um recurso, mas esse no necessariamente o caso. O exemplo acima um link out-of-line link, pois no usa seu contedo como um recurso.

Ponteiros Extendidos
Referncias cruzadas com o mecanismo XML ID/IDREF (que similar ao mecanismo #fragment em HTML) requer que o documento para o qual se est ligando tenha ncoras definidas, onde os links so desejados (e tecnicamente requer que ID e

IDREF ocorram no mesmo documento). Este pode no ser sempre o caso, e algumas vezes no possvel modificar o documento que voc deseja ligar. Os XML XPointers tomam emprestados conceitos de HyTime e da Text Encoding Initiative (TEI). Os XPointers oferecem a sintaxe que lhe permite localizar um recurso atravs da rvore de elementos do documento que contm o recurso. Por exemplo: criana(2,piada).(3,.) locazida a terceira criana (qulaquer que possa ser) da segunda piada no documento. Os XPointers podem expandir as regies da rvore. A expanso XPointer span(criana(2,piada),criana(3,piada)) seleciona a segunda e terceira oldjoke no documento. Alm da seleo atravs de elementos, os XPointers permitem a seleo por ID, valores de atributos e correspodncia de cadeias de caracteres. Neste trabalho, o XPointer span(raiz()criana(3,set1)string(1,"Aqui",0), raiz()ctriana(3,set1)string(1,"Aqui",4)) seleciona a primeira ocorrncia da palavra "Aqui". O link pode ser estabelecido por um link extendido sem modificar o documento alvo. Note que o alcance de um XPointer pode expandir uma seo estruturamente invlida do documento. A especificao XLink no especifica como as aplicaes devem tratar tais alcances.

Grupos de Links Extendidos


Links out-of-line introduzem a possibilidade de que um processador XML possa precisar processar vrios arquivos para mostrar corretamento o documento de hipertexto. De acordo com o exemplo de texto de antoao acima, e assumindo que o texto , na verdade, somente para leitura, o processador XML deve carregar pelo menos o texto e o documento que contm o link extendido. A XLink define os Grupos de Links Extendidos para este propsito. Grupos de Links Extendidos podem ser usados recursicamente, e um atributo steps fornecido para limitar o nvel da recursividade.

Entendendo as Partes
Alguns documentos, particularmente documentos compostos que colaboram com XLinks, so provavelmente compostos de elementos de mltiplos conuntos de marcas. Por exemplo, um artigo tcnico pode ser escrito usando-se um DTD, mas inclui equaes matemticas escritas em MathML e grficos vetoriais escritos em um terceiro DTD. A fim de uma aplicao de processamento associar a semntica correta com um elemento, ela deve conhecer que conjunto de marcas o elemento possui. A XML

resolve este problema com nomes espaados. Nomes espaados em XML descreve este sistema em detalhes. O princpio permitir a um prefixo delimitado por dois pontos associar-se com alguma semntica externa atravs de uma URI. O uso deste prefixo identifica o elemento como tendo a semntica descrita pela URI. Por exemplo: <bk:para>A frao 3/4 pode ser expressa em MathML como: <ml:cn type="rational">3<ml:sep/>4</ml:cn>.</bk:para> O elemento para neste exemplo identificado explicitamente como sendo o nome espaado identificado pelo prefixo bk, que deve ter sido definido anteriormente no documento, e os elementos cn e sep so do elemento ml (presumivelmente associado de alguma maneira com MathML).

Estilo e Substncia
Os navegadores HTML so de difcil codificao. Embora alguns navegadores possam basear sua formatao em Cascading Style Sheets (CSS), eles ainda contm convenes de difcil codificao para documentos que no fornecem uma folha de estilos. Um cabealho de primeiro nvel aparece da maneira correta, pois o navegador reconhece a marca <h1>. Novamente, visto que os documentos XML no tm um conjunto fixo de marcas, testa aproximao no funcionar. A apresentao de um documento XML dependente de uma folha de estilos. A linguagem de folha de estilos padro para os documentos XML a Extensible Style Language (XSL). Outras linguagens de folhas de estilos, como Cascading Style Sheets, tambm so suportadas.

Você também pode gostar