You are on page 1of 21

Introduo

A XML (eXtensible Markup Language, ou Linguagem de Marcao Estendida) um subconjunto da !ML ( tandard !enerali"ed Markup Language, ou Linguagem de Marcao #adro !enerali"ada) $ue permite $ue uma marcao espec%&ica seja criada para especi&icar idias e compartil'()las na rede* Ela tem as +irtudes da !ML e da ,-ML sem $ual$uer das limita.es /b+ias* Pontos fortes da XML
Inteligncia: a XML inteligente para $ual$uer n%+el de comple0idade* A marcao pode ser alterada de uma marcao mais geral como 123456 Lassie 2734561 para uma mais detal'ista, como 123456 28E9,A:#A;A:3A A6 235LLIE6 Lassie 2735LLIE6 278E9,A:#A;A:3A A6 2734561* As idias so bem marcadas para $ue 128E9<5:<5I 6 duplo 278E9<5:<5I 61 e 12MAI :LI35;6 duplo 27MAI :LI35;61 sejam sempre +alores di&erentes* A in&ormao con'ece a si mesma* 9o necess(ria mais nen'uma idia indesej(+el= Adaptao: a XML a l%ngua)me de outras linguagens* Assim, linguagens como <ickML e >aneML tornaram)se poss%+eis* A adaptao in&inita* Marca.es personali"adas podem ser criadas para $ual$uer necessidade* e uma marcao $ue descre+a como uma pi""a pepperoni di&erente de uma pi""a calabresa &or necess(ria, ela pode ser &eita= Manuteno: a XML &(cil de manter* Ela contm somente idias e marca.es* ?ol'as de estilos e links +@m em separado, e no escondidas no documento* 3ada um pode ser alterado separadamente $uando preciso com &(cil acesso e &(ceis mudanas* 9o preciso mais se ac'ar em uma baguna de marca.es= Ligao: a XML possui uma maneira de ligar $ue inclui todas as &ormas de ligao* 9o s/ isso= ela liga de maneiras $ue a ,-ML no pode* A ,-ML pode &a"er de uma maneira simples, onde um objeto se liga a outro* A XML &a" isso, mas tambm pode ligar dois ou mais pontos a uma idia* E0istem ainda links g@meos $ue ligam todas as ide%as dentro de uma mesma* Aual$uer link entre uma idia pode ser manipulado de uma Bnica maneira= Simplicidade: a XML simples* Cm usu(rio de mdia e0peri@ncia $ue ol'a a XML pode ac'()la di&%cil de acreditar no $ue +@* 3omparada com a ,-ML no* 3omparada com a !ML um estudo de simplicidade* A especi&icao da !ML tem DEE p(ginas* A da XML, DD* Idias obscuras e desnecess(rias &oram retiradas em &a+or de idias concisas* A XML +ai direto ao ponto= Portabilidade: a XML de &(cil portabilidade* A ra"o da sua e0ist@ncia &ora e portabilidade* A !ML tem &ora* A ,-ML tem portabilidade* A XML tem ambas* A XML pode ser na+egada com ou sem o seu <-< (<ocument -Fpe <e&inition, ou <e&inio de -ipo de <ocumento ) as normas $ue de&inem como as tags so estruturas nos documentos XML), tornando o doGnload mais r(pido* -udo $ue um na+egador precisa para +er XML ter a noo $ue ela pr/pria e a &ol'a de estilos controlam a apar@ncia* e uma +alidao estrita necess(ria, o seu <-< pode acompan'()lo e &ornecer detal'es e0atos da sua marcao*

Objeti os do desen ol imento da XML A especi&icao da XML primou pelos seguintes objeti+osH
<e+eria ser claro usar a XML na Internet=

A XML de+eria suportar uma grande +ariedade de aplica.es= A XML de+eria ser compat%el com !ML= <e+eria ser &(cil escre+er programas $ue processem documentos XML= 5 nBmero de recuros opcionais em XML de+eria ser mantido em um m%nimo absoluto, idealmente "ero= 5s documentos XML de+eriam ser leg%+eis pelos seres 'umanos e ra"oa+elmente claros= 5 projeto XML de+eria ser preparado rapidamente= 5 projeto XML de+eria ser &ormal e conciso= 5s documentos XML de+eriam ser &(ceis de serem criados= A conciso na marcao em XML de m%nima importIncia*

!omo a XML " definida A XML de&inida pelas seguintes especi&ica.esH


#$tensible Mar%up Language &XML' ()*: de&ine a sinta0e da XML= XML Pointer Language &XPointer' e XML Lin%ing Language &XLin%': de&ine um padro para representar os links entre os recursos* Alm dos links simples, como a tag 2A6 da ,-ML, a XML possui mecanismos para ligar recursos mBltiplos e di&erentes* A X#ointer desce+e como enderear um recurso, e a XLink descre+e como associar dois ou mais recursos= #$tensible St+le Language &XSL': de&ine a linguagem de &ol'as de estilos pado para a XML*

<ocumentos
e +oc@ j( est( acostumado com a ,-ML ou a !ML, os documentos XML parecer)l'e)o &amiliar* Cm documento XML simples apresentado a seguirH #$emplo (: um documento XML simples ,-$ml ersion./()*/-0 ,piada0 ,1oo02iga ,citao0boa noite,3citao04 Maria),31oo0 ,1os"0,citao05oa noite4 Maria),3citao0,31os"0 ,aplausos30 ,3piada0 Algumas coisas podem sobressair)se para +oc@H

5 documento comea com uma instruo de processamentoH <? xml ...?>* Esta a declarao XML* Embora no seja obrigat/ria, a sua presena e0pl%cita identi&ica o documento como um documento XML e indica a +erso da XML com a $ual ele &oi escrito* 9o '( declarao do tipo do documento* <i&erentemente da !ML, a XML no re$uer uma declarao de tipo de documento* Entretanto, uma declarao de tipo de documento pode ser &ornecida= alm disso, alguns documentos iro precisar de uma para serem entendidos sem ambigJidade* Elementos +a"ios (<aplausos/> neste e0emplo) tem uma sinta0e modi&icada* En$uanto $ue a maioria dos elementos em um documentos en+ol+em algum conteBdo, elementos +a"ios so simplesmente marcadores onde alguma coisa ocorre (uma separador 'ori"ontal para a marca em <hr> em ,-ML, por e0emplo, ou uma re&er@ncia cru"ada para <ocKookLs para a marca <xref>)* 5 &inal 30 na sinta0e modi&icada indica a um programa $ue processa o documento XML $ue o elemento +a"io e uma marca de &im correspondente no de+e ser procurada* 8isto $ue os documentos XML no re$uerem uma declarao de tipo de documento, sem esta pista seria imposs%+el para um analisador XML determinar $uais marcas so intencionalmente +a"ias e $uais teriam sido dei0adas +a"ias por um erro* A XML sua+i"ou a distino entre elementos declarados como EMPTY e elementos $ue meramente no t@m conteBdo* Em XML, +(lido usar uma marca de elemento +a"io para $ual$uer um destes casos* -ambm +(lido usar um par de marcas in%cio)&im para elementos +a"iosH <aplausos></aplausos>* e a interoperabilidade interessa, mel'or reser+ar a sinta0e de marcas de elementos +a"ios para elementos declarados como EMPTY e usar a marca de elemento +a"io somente para estes elementos*

5s documento XML so compostos de marcas e conteBdos* E0istem seis tipos de marca.es $ue podem ocorrer em um documento XMLH elementos, re&er@ncias a entidades, coment(rios, instru.es de processamento, se.es marcadas e declara.es de tipos de documento* As se.es seguintes introdu"em cada um destes conceitos de marcao*

#lementos Elementos so a mais comum &orma de marcao* <elimitados pelos sinais de menor e maior, a maioria dos elementos identi&icam a nature"a do conteBdo $ue en+ol+em* Alguns elementos podem ser +a"ios, como +isto acima= neste caso eles no t@m conteBdo* e um elemento no +a"io, ele inicia com uma marca de in%cio , <element>, e termina com uma marca de trmino, </element>*
Atributos

Atributos so pares de +alores nomeados $ue ocorrem dentro dasmarcas de in%cio ap/s o nome do elemento* #or e0remploH
,di classe./pref6cio/0

um elemento div cujo atributo class possui o +alor prefcio* Em XML, todos os +alores de atributos de+em estar entre aspas*

7eferncias a #ntidades A &im de introdu"ir a marcao em um documento, alguns documentos &oram reser+ados para identi&icar o in%cio da marcao* 5 sinal de menor, 2 , por e0emplo, identi&ica o in%cio de uma marca de inicio ou trmino* #ara inserir estes caracteres em seu documento como conteBdo, de+e 'a+er uma alternati+a para represent()los* Em XML, entidades so usadas para representar estes caracteres especiais* As entidades tambm so usadas para re&erenciar um te0to &re$Jentemente repetido ou alterado e inclu%)lo no conteBdo de ar$ui+os e0ternos* 3ada entidade de+e ter um nome Bnico* A de&inio dos seus pr/prios nomes de entidades discutido na seo declara.es de entidades* #ara usar uma entidade, +oc@ simplesmente a re&erencia pelo nome* As re&er@ncias Ms entidades iniciam com o E comercial e terminam com um ponto)e)+%rgula* #or e0emplo, a entidade lt insere um literal 2 em um documento* A cadeia de caracteres <element> pode ser representada em um documento XML como ,&lt;element>* Cma &orma especial de re&er@ncia a entidades, c'amada de re&er@ncia a caracter, pode ser usada para inserir arbitrariamente caracteres Cnicode em seu documento* Este um mecanismo para inserir caracteres $ue no podem ser diretamente digitados pelo seu teclado*

;e&er@ncias a caracter podem ter uma das duas &ormasH re&er@ncias decimais, &#8478;, e re&er@ncias 'e0adecimais, &#x211E;* Ambas se re&erem ao caracter Cnicode nBmero CNOPPE*

!oment6rios 3oment(rios iniciam com <!-- e terminam com -->* 5s coment(rios podem conter $ual$uer dado, e0ceto a literal "--1* 8oc@ pode colocar coment(rios entre marcas em $ual$uer lugar em seu documento* 3oment(rios no &a"em parte de um conteBdo te0tual de um documento XML* Cm processador XML no preciso para recon'ec@) los na aplicao*

Instru8es de Processamento Instru.es de processamento (#Is) so &ormas de &ornecer in&orma.es a uma aplicao* Assim como os coment(rios, elas no so te0tualmente parte de um documento XML, mas o processador XML necess(rio para recon'ec@)las na aplicao* As instru.es de processamento t@m a &ormaH <?nome dadospi?>* 5 nome, c'amado de al+o #I, identi&ica a #I na aplicao* As aplica.es processariam somente os al+os $ue eles recon'ecem e ignoram todas as outras #Is* Aual$uer dado $ue segue oal+o #I opcional= para a aplicao $ue recon'ece o al+o* 5s nomes usados em #Is podem ser declarados como nota.es a &im de identi&ic()los &ormalmente* 5s nomes de #I $ue iniciam com xml so reser+ados para a padroni"ao da XML* Se8es !2A9A Em um documento, uma seo CDATA instrui o analisador para ignorar a maioria dos caracteres de marcao* 3onsidere um c/digo)&onte em um documento XML* Ele pode conter caracteres $ue o analisador XML iria normalmente recon'ecer como marcao (< e &, por e0emplo)* #ara pre+enir isto, uma seo 3<A-A pode ser usada*
,:;!2A9A; <p . =>?

b . &i ,. @'? AA0

Entre o in%cio da seo, <![C !"![, e o &im da seo, ##>, todos os dados de caracteres so passados diretamente para a aplicao, sem interpretao* Elementos, re&er@ncias a entidades, coment(rios e instru.es de processamento so todos irrecon'ec%+eis e os caracteres $ue os comp.em so passados literalmente para a aplicao* A Bnica cadeia de caracteres $ue no pode ocorrer em uma seo 3<A-A "]]>"*

2eclara8es de 9ipos de 2ocumentos Cma grande porcentagem da especi&icao da XML trata de +(rios tipos de declara.es $ue so permitidas em XML* e +oc@ tem e0peri@ncia com !ML, +oc@ recon'ecer( estas declara.es dos !ML <-<s (<e&ini.es de -ipos de <ocumentos)* e +oc@ j( +iu isto antes, o seu signi&icado pode no ser imediatamente /b+io* Cm dos maiores poderes da XML $ue ela permite $ue +oc@ crie seus pr/prios nomes para marcas* Mas, para uma dada aplicao, pro+(+el no ser signi&icati+o para marcas $ue ocorrer em uma ordem completamente arbitr(ria* 3onsidere o e0emplo P* Isto teria signi&icadoQ ,1oo02iga ,citao0boa noite,3citao04 Maria),31oo0 ,1os"0,citao05oa noite4 Maria),3citao0,31os"0 ai totalmente do $ue normalmente esperamos $ue ten'a senso* implesmente no significa nada* Entretanto, de um ponto de +ista estritamente sint(tico, no '( nada de errado com este documento XML* Assim, se o documento de+e ter signi&icado, e certamente '( se +oc@ esti+er escre+endo uma &ol'a de estilos ou aplicao para process()lo, de+e 'a+er alguma restrio na se$J@ncia e anin'amento das marcas* <eclara.es so onde estas restri.es podem ser e0pressadas* Mais genericamente, as declara.es permitem a um documento comunicar meta)in&orma.es ao analisados a respeito do seu

conteBdo* Meta)in&ormao inclui as se$J@ncias e anin'amentos permitidos para as marcas, +alores de atributos e seus tipos e padr.es, os nomes de ar$ui+os e0ternos $ue podem ser re&ernciados e se eles podem ou no conter XML, o &ormato de algum dado (no) XML) e0terno $ue pode ser re&erenciado e as entidades $ue podem ser encontradas* ,( $uatro tipos de declara.es em XMLH declara.es de tipos de elementos, declara.es de listas de atributos, declara.es de entidades e declara.es de nota.es*
2eclara8es de 9ipos de #lementos

<eclara.es de tipos de elementos identi&icam os nomes dos elementos e a nature"a do seu conteBdo* Cma declarao de tipo de elemento t%pica se parece com istoH ,:#L#M#B9 piada &1ooC4 1os"4 aplausos-'0 Esta declarao identi&ica o elemento nomeado como piada* eu modelo de contedo segue o nome do elemento* 5 modelo de conteBdo de&ine o $ue um elemento pode conter* 9este caso, uma piada de+e conter $o%o e $os& e pode conter aplausos* As +%rgulas entre os nomes dos elementos indicam $ue eles de+em ocorrer em sucesso* 5 sinal de adio ap/s $o%o indica $ue ele pode ser repetido mais de uma +e", mas de+e ocorrer pelo menos uma +e"* 5 ponto de interrogao ap/s aplausos indica $ue ele opcional (pode estar ausente ou ocorrer somente uma +e")* Cm nome sem pontuao, como $os&, de+e ocorrer somente uma +e"* As declara.es para todos os elementos usados em $ual$uer modelo de conteBdo de+e estar presente para $ue um processador XML +eri&i$ue a +alidade do documento* Alm dos nomes de elementos, o s%mbolo especial '(C !"! reser+ado para indicar dados de caracter* A cl(usula P!2A9A signi&ica dado de caracter analis(+el* 5s elementos $ue cont@m somente outros elementos so ditos $ue t@m contedo de elementos* 5s elementos $ue cont@m outros elementos e '(C !"! so ditos $ue t@m contedo misturado* #or e0emplo, a de&inio para $os& pode ser
,:#L#M#B9 1os" &DP!2A9A E citao'<0

A barra +ertical indica um relacionamento 1ou1 e o asterisco indica $ue o conteBdo opcional (pode ocorrer "ero ou mais +e"es)= por esta de&inio, portanto, $os& pode conter "ero ou mais caracteres e marcas cita)%o, misturadas em $ual$uer ordem* -odos os modelos de conteBdo misturado de+em ter esta &ormaH '(C !"! de+e +ir primeiro, todos os elementos de+em ser separados por barras +erticais e o grupo inteiro de+e ser opcional* 5utros dois modelos de conteBdo so poss%+eisH *+(", indica $ue o elemento no possui conteBdo (e, conse$Jentemente, no tem marca de trmino) e !-, indica $ue qualquer conteBdo permitido* 5 modelo de conteBdo !-, algumas +e"es Btil durante a con+erso de documentos, mas de+eria ser e+itado ao m(0imo em um ambiente de produo, pois desabilita toda a +eri&icao do conteBdo deste elemento* A$ui est( um conjunto completo das declara.es de elementos para o E0emplo PH #$emplo F: declara8es de elementos para #$emplo (
2RELEME9- piada (>ooN, >os, aplausosQ)6 2RELEME9- >oo (S#3<A-A T citao)U6 2RELEME9- >os (S#3<A-A T citao)U6 2RELEME9- citao (S#3<A-A)U6 2RELEME9- aplausos EM#-V6 2eclara8es de Listas de Atributos

<eclara.es de listas de atributos identi&icam $ue elementos podem ter atributos, $ue atributos eles podem ter, $ue +alores os atributos podem suportar e $ual +alor o padro* Cma dclarao de lista de atributos t%pica se parece com istoH ,:A99LIS9 piada nome I2 D7#GHI7#2 rItulo !2A9A DIMPLI#2

estado & engraada E noengraada ' JengraadaJ0 9este e0emplo, o elemento piada possui tr@s atributosH nome, $ue um I< e obrigat/rio= r.tulo, $ue uma cadeia de caracteres (dados de caracter) e no obrigat/rio= e estado, $ue de+e ser ou en/ra)ada ou n%oen/ra)ada e por padro en/ra)ada, se nen'um +alor especi&icado* 3ada atributo em uma declarao tem tr@s partesH um nome, um tipo e um +alor padro* 8oc@ tem liberdade para selecionar $ual$uer nome desejado, sujeito a algumas pe$uenas restri.es, mas os nomes no podem ser repetidos no mesmo elemento* E0istem seis tipos de atributos poss%+eisH
() !2A9A

Atributos 3<A-A so cadeias de caracteres= $ual$uer te0to permitido* 9o con&unda atributos 3<A-A com se.es 3<A-A= eles no t@m relao*
F) I2

5 +alor de um atributo I< de+e ser um nome* -odos os +alores usados para I<s em um documento de+em ser di&erentes* 5s I<s identi&icam unicamente elementos indi+iduais em um documento* 5s elementos podem ter um Bnico atributo I<*
@) I27#K

ou 0 1*23 5 +alor de um atributo I<;E? de+e ser o +alor de um Bnico atributo I< em algum elemento no documento* 5 +alor de um atributo I<;E? pode conter +alores I<;E? mBltiplos separados por espaos em branco*
L) #B9I9M

ou *-"0"0*3 5 +alor de um atributo E9-I-V de+e ser o nome de uma Bnica entidade (+eja sobre declara.es de entidades abai0o)* 5 +alor de um atributo E9-I-IE pode conter +alores de entidades mBltiplos separados por espaos em branco*

N) BM9OO#B

ou -+"45*-3 Atributos de s%mbolos de nome so uma &orma restrita do atributo de cadeia de caracteres* Em geral, um atributo 9M-5WE9 de+e consistir de uma Bnica pala+ra, mas no '( restri.es adicionais para a pala+ra= no tem $ue estar associado com outro atributo ou declarao* 5 +alor de um atributo 9M-5WE9 pode conter +alores 9M-5WE9 mBltiplos separados por espaos em branco* P) Hma lista de nomes 8oc@ pode especi&icar $ue o +alor de um atributo de+e ser pego de uma lista espec%&ica de nomes* Isto &re$Jentemente c'amado de tipo enumerado, por$ue cada um dos +alores poss%+eis est( e0plicitamente enumerado na declarao* Alternati+amente, +oc@ pode especi&icar $ue os nomes de+em atender a um nome de notao (+eja sobre declara.es de notao abai0o)* ,( $uatro +alores padro poss%+eisH
D7#GHI7#2

5 atributo de+e ter um +alor e0plicitamente especi&icado em cada ocorr@ncia do elemento no documento*
DIMPLI#2

5 +alor do atributo no re$uerido, e nen'um +alor padro &ornecido* e um +alor no especi&icado, o processador XML de+e proceder sem um* / alor/ Aual$uer +alor +(lido pode ser dado a um atributo como padro* 5 +alor do atributo no re$uerido em cada elemento no documento, e se ele esti+er presente, ser( dado a ele o +alor padro*
DKIX#2

/ alue/ Cma declarao de atributo pode especi&icar $ue um atributo tem um +alor &i0o* 9este caso, o atributo no re$uerido, mas se ele ocorrer de+e ter o +alor especi&icado* e no esti+er presente, ser( dado a ele o +alor padro* Cm uso de atributos &i0os para associar

semIntica e um elemento* Cma discusso completa +ai alm do prop/sito deste trabal'o, mas +oc@ pode ac'ar +(rios e0emplos de atributos &i0os na especi&icao de XLink* 5 processador XML e0ecuta a normalizao dos valores dos atributos nos +alores dos atributosH as re&er@ncias de caracter so substuitu%das por caracteres re&erenciados, re&er@ncias a entidades so resol+idas (recursi+amente) e espaos em branco so normali"ados*
2eclara8es de #ntidades

<eclara.es de entidades l'e permitem associar um nome com algum outro &ragmento de conteBdo* Essa construo pode ser um pedao de te0to normal, um pedao de uma declarao de tipo de documento ou uma re&er@ncia a um ar$ui+o e0terno $ue contm ou te0to ou dados bin(rios* <eclara.es de entidades t%picas so mostradas no E0emplo D* #$emplo @: declarao de entidades tQpica
,:#B9I9M A9I /Arbor9e$t4 Inc)/0 ,:#B9I9M boilerplate SMS9#M /3standard3legalnotice)$ml/0 ,:#B9I9M A9Ilogo SMS9#M /3standard3logo)gif/ B2A9A RIKSTA0 E0istem tr@s tipos de entidadesH

Entidades Internas Entidades internas associam um nome com uma cadeia de caracteres ou te0to literal* A primeira entidade no E0emplo D uma entidade interna* Csando &!"0; em $ual$uer lugar do documento inserir( 1Arbor-e0t, Inc1 na$uele local* Entidades internas permitem a +oc@ de&inir atal'os para te0tos &re$Jentemente digitados ou te0tos $ue se espera $ue sejam alterados, como o estado de re+iso de um documento* Entidades internas podem incluir re&er@ncias para outras entidades internas, mas errado elas serem recursi+as* A especi&icao XML pr)de&ine cinco entidades internasH
&lt;

produ" o sinal de menor, <

&/t;

produ" o sinal de maior, > produ" o E comercial, & produ" um ap/stro&o, ' produ" aspas, "

&amp;

&apos; &6uot;

Entidades E0ternas Entidades e0ternas associam um nome com o conteBdo de um outro ar$ui+o* Entidades e0ternas permitem a documento XML re&erenciar o conteBdo de um outro ar$ui+o= elas contm ou te0to ou dados bin(rios* e elas contm te0to, o conteBdo do ar$ui+o e0terno inserido no ponto de re&er@ncia e analisado como parte do documento re&erente* <ados bin(rios no so analisados e podem somente ser re&erenciados em um atributo= eles so usados para re&erenciar &iguras e outro conteBdo no)XML no documento* A segunda e a terceira entidades no E0emplo D so entidades e0ternas* 5 uso de &7oilerplate; inserir( o contedo do ar$ui+o /standard/ le/alnotice.xml no local da re&er@ncia da entidade* 5 processador XML analisar( o conteBdo deste ar$ui+o como se ele ocorresse literalmente no local* A entidade !"0lo/o tambm uma entidade e0terna, mas o seu conteBdo bin(rio* A entidade !"0lo/o pode ser usada somente como o +alor de um atributo E9-I-V (ou E9-I-IE ) (em um elemento /rap8ic, tal+e")* 5 processador XML passar( esta in&ormao para a aplicao, mas ele no tenta processar o conteBdo de /standard/lo/o./if* #ntidades ParUmetro A entidade parImetro somente pode ocorrer na declarao de tipo de documento* Cma declarao de uma entidade parImetro identi&icada por 19 1 (porcento e espao) de&ronte ao seu nome na declarao* 5 sinal de porcento tambm usado em re&er@ncias para entidades parImetro, ao in+s do E comercial* As re&er@ncias a entidade parImetro so imediatamente e0pandidas na declarao de tipo de documento e seu te0to de substituio parte da declarao, onde as re&er@ncias a entidades normais no so e0pandidas* Entidades parImetro no so recon'ecidas no corpo de um documento*

8oltando Ms declara.es de elementos no E0emplo O, +oc@ perceber( $ue dois deles t@m o mesmo modelo de conteBdoH
,:#L#M#B9 1oo &DP!2A9A E citao'<0 ,:#L#M#B9 1os" &DP!2A9A E citao'<0

At o momento, estes dois elementos so a mesma coisa somente por$ue eles t@m a mesma de&inio literal* A &im de tornar mais e0pl%cito o &ato de $ue estes dois elementos so semInticamente a mesma coisa, usada uma entidade parImetro para de&inir seus modelos de conteBdo* ,( duas +antagens em se usar uma entidade parImetro* #rimeiramente, ela l'e permite dar um nome descriti+o ao conteBdo, e segundo $ue l'e permite alterar o modelo de conteBdo em somente um local, se +oc@ desejar atuali"ar as declara.es do elemento, garantindo $ue elas sempre &i$uem as mesmasH
,:#B9I9M V pessoascontentes /DP!2A9A E citao/0 ,:#L#M#B9 1oo &Vpessoascontentes?'<0 ,:#L#M#B9 1os" &Vpessoascontentes?'<0 2eclara8es de Botao

<eclara.es de notao identi&icam tipos espec%&icos de dados bin(rios e0ternos* Estas in&orma.es so passadas para a aplicao de processamento, $ue pode &a"er o uso $ue $uiser ou $ue desejar* Cma declarao de notao t%pica H
,:BO9A9IOB RIKSTA SMS9#M /RIK/0 #u preciso de uma 2eclarao de 9ipo de 2ocumento-

3omo &oi +isto, o conteBdo XML pode ser processado sem uma declarao de tipo de documento* Entretanto, e0istem alguns casos onde a declarao necess(riaH Ambientes de autoria A maioria dos ambientes de autoria precisa ler e processar declara.es de tipo de documento a &im de entender e re&orar o modelo de conteBdo do documento* 8alores padr.es de atributos e um documento XML conta com +alores padr.es de atributos, pelo menos uma parte da declarao de+e ser processada a &im de se obter os +alores padr.es corretos* Manipulao de espaos em branco

A semIntica associada com espao em branco em conteBdo de elementos di&erem da semIntics associada com espao em branco em conteBdo misturado* em um <-<, no '( maneira para o processador distingJir os casos, e todos os elementos so e&eti+amente conteBdo misturado* #ara mais detal'es, +eja a seo c'amada Manipulao de Espaos em Kranco, neste trabal'o* Em aplica.es onde uma pessoa comp.e ou edita os dados, um <-< pro+a+elmente +ai ser preciso se $ual$uer estrutura de+e ser garantida*
Incluindo uma 2eclarao de 9ipo de 2ocumento

e presente, a declarao de tipo de documento de+e ser a primeira coisa em um documento depois de coment(rios e instru.es de processamento opcionais* A declarao de tipo de documento identi&ica o elemento rai" do documento e pode conter declara.es adicionais* -odos os documentos XML de+em ter um elemento rai" Bnico $ue conten'a todo o conteBdo do documento* <eclara.es adicionais podem +ir de um <-< e0terno, c'amado de subconjunto e0terno, ou ser inclu%do diretamente no documento, o subconjunto interno, ou ambosH
,-XML ersion./()*/ standalone./no/-0 ,:2O!9MP# cWapter SMS9#M /dboo%)dtd/ ; ,:#B9I9M Vulin%)module /IRBO7#/0 ,:#L#M#B9 ulin% &DP!2A9A'<0 ,:A99LIS9 ulin% $ml:lin% !2A9A DKIX#2 /SIMPL#/

$mlXattributes !2A9A DKIX#2 /Y7#K H7L/ H7L A0 ,cWapter0))),3cWapter0 !2A9A D7#GHI7#20

Este e0emplo re&erencia um <-< e0terno, d7oo:.dtd, e inclui declara.es de elementos e atributos para o elemento ulin: no subconjunto interno* 9este caso, ulink d( a semIntica de um link simples da especi&icao XLink* 9ote $ue as declara.es no subconjunto interno no le+a em conta as declara.es no subconjunto e0terno* 5 processador XML l@ o

subconjunto interno antes do e0terno e a primeira declarao tem preced@ncia* A &im de determinar se um documento +(lido, o processador XML de+e ler a declarao de tipo de documento inteira (ambos os subconjuntos)* Mas para algumas aplica.es, a +alidao pode no ser precisa, e pode ser su&iciente para o processador ler somente o subconjunto interno* 9o e0emplo acima, se a +alidade no importante e a Bnica ra"o para ler a declarao de tipo de documento identi&car a semIntica de ulin:, a leitura do subconjunto e0terno no necess(ria* 8oc@ pode comunicar estas in&orma.es na declarao de documento standalone* A declarao de documento standalone, standalone;"<es" ou standalone;"no", ocorre na declarao XML* Cm +alor <es indica $ue somente declara.es internas precisam ser processadas* Cm +alor no indica $ue ambas as declara.es interna e e0terna de+em ser processadas* Outras >uest8es de marcao Alm da marcao, e0istem algumas outras $uest.es a considerarH manipulao de espaos em branco, normali"ao de +alores dos atributos e a linguagem com a $ual o documento &oi escrito*
Manipulao de #spaos em 5ranco

A manipulao de espaos em brancos uma $uesto sutil* 3onsidere o seguinte &ragmento de conteBdoH
,piada0 ,1oo02iga ,citao0boa noite,3citao04 Maria),31oo0

5 espao em branco (a no+a lin'a entre <piada> e <$o%o> ) signi&icanteQ #ro+a+elmente no* Mas como +oc@ pode a&irmar istoQ 8oc@ somente pode determinar se um espao em branco signi&icante se +oc@ con'ece o modelo de conteBdo dos elementos em $uesto* Em resumo, um espao em branco signi&icante em conteBdo misturado e insigni&icante em conteBdo de elemento* A regra para os processadores XML $ue eles de+em passar por todos os caracteres $ue no so marcao na aplicao* e o processador um processador de +alidao, ele tambm de+e in&ormar M aplicao se os caracteres espaos em branco so signi&icantes*

5 atributo especial xml=space pode ser usado para indicar e0plicitamente $ue os espaos em branco so signi&icantes* Em $ual$uer elemento $ue inclua a especi&icao de atributo xml=space;>preserve>, todos os espaos em branco na$uele elemento (e dentro dos subelementos $ue no alteram e0plicitamente xml=space) sero signi&icantes* 5s Bnicos +alores +(lidos para xml=space so preserve e default* 5 +alor default indica $ue o processamento padro desejado* Em um <-<, o atributo xml=space de+e ser declarado como um tipo enumerado com somente estes dois +alores* Cma Bltima obser+ao sobre espaos em brancoH em te0to analis(+el, os processadores XML so re$ueridos para normali"ar todas as marcas de &inal de lin'a para um um Bnico caracter de alimentao de lin'a (XSA=)* Isto raramente de interesse dos autores, mas elimina um nBmero de $uest.es de portabilidade de plata&ormas cru"adas*
BormaliZao dos alores de atributos

5 processador XML e0ecuta a normali"ao dos +alores de atributos em +alores de atributosH re&er@ncias a caracteres so substitu%das por caracteres re&erenciados, re&er@ncias a entidades s resol+idas (recursi+amente) e os espaos em branco so normali"ados*
Identificao da linguagem

Muitas aplica.es de processamento de documentos podem se bene&iciar da in&ormao sobre a linguagem natural com a $ual o documento &oi escrito* A XML de&ine o atributo xml=lan/ para identi&icar a linguagem* 8isto $ue o prop/sito deste atributo padroni"ar a in&ormao entre as aplica.es, a especi&icao XML tambm descre+e como as linguagens de+em ser identi&icadas*

8alidao
<ada a discusso precedente de declara.es de tipos, conclui)se $ue uns documentos so +(lidos e outros no* E0istem duas categorias de documentos XMLH bem &ormatados e +(lidos* 2ocumentos 5em Kormatados Cm documento somente pode ser bem &ormatado se ele obedece a sinta0e da XML* Cm documento $ue inclui se$J@ncias de caracteres de

marcao $ue no podem ser analisadas ou so in+(lidas no podem ser bem &ormatados* Alm disso, o documento de+e atender a todas as seguintes condi.es (subentendendo)se $ue algumas destas condi.es podem e0igir e0peri@ncia com !ML)H A instIncia do documento de+e estar con&orme a gram(tica dos documentos XML* Em particular, algumas constru.es de marca.es (re&er@ncias a entidades parImetro, por e0emplo) so somente permitidas em locais espec%&icos* 5 documento no bem &ormatadose tais ocorrerem em outros locais, ainda $ue o documento esteja bem &ormatado nos outros casos* 5 te0to de substituio para todas as entidades parImetro re&erenciadas dentro de uma declarao de marcao consiste em "ero ou mais declara.es de marca.es completas* (9en'uma entidade usada no documento pode consistir de somente uma parte de uma declarao de marcao*) 9en'um atributo pode aparecer mais do $ue uma +e" na mesma marca de in%cio* 8alores de atributos cadeias de caracteres no podem conter re&er@ncias a entidades e0ternas* Marcas no)+a"ias de+em ser apropriadamente anin'adas* Entidades parImetro de+em ser declaradas antes de serem usadas* -odas as entidades de+em ser declaradas, e0ceto as seguintesH amp, lt, /t, apos e 6uot* Cma entidade bin(ria no pode ser re&erenciada no &lu0o do conteBdo= ela pode ser usada somente em um atributo declarado como *-"0", ou *-"0"0*3*

9em a te0to ou entidades parImetro so permitidas recursi+idade, direta ou indiretamente*

#or de&inio, se um documento no est( bem &ormatado, ele no XML* Isto signi&ica $ue no '( documento XML $ue no seja bem &ormatado e os processadores XML no &a"em nada com tais documentos* 2ocumentos Cm documento bem &ormatado +(lido somente se ele contm uma declarao de tipo de documento e se o documento obedece as restri.es da declarao (se$J@ncia e anin'amento de elementos +(lido, atributos necess(rios so &ornecidos, +alores de atributos so do tipo correto, etc*)* A especi&icao XML identi&ica todos os creitrios em detal'es*

Ligao
As especi&ica.es X#ointer e XLink, atualmente em desen+ol+imento, introdu" um modelo ligao padro para a XML* Em considerao ao espao e o &ato de $ue rascun'o da XLink ainda est( sendo desen+ol+ido, o $ue segue um e0ame dos recursos da XLink, em +e" de uma descrio detal'ada da especi&icao* Em XLink, um link e0pressa um relacionamento entre recursos* Cm recurso $ual$uer local (um elemento, o seu conteBdo, ou uma parte do seu conteBdo, por e0emplo) $ue endere(+el em um link* A nature"a e0ata do relacionamento entre os recursos depende da aplicao $ue processa o link e da in&ormao semIntica &ornecida* Alguns desta$ues da XLink soH a XLink l'e d( controle sobre a semIntica do link* a XLink introdu" Links E0tendidos* Links E0tendidos podem en+ol+er mais de dois recursos* a X#ointer introdu" #onteiros E0tendidos (X#ointers)* 5s X#ointers &ornecem um mtodo so&isticado de locali"ar recursos* Em particular, os X#ointers l'e permitem locali"ar recursos arbitr(rios em um documento, sem $ue seja necess(rio $ue o recurso seja identi&icado com um atributo I<*

8isto $ue a XML no tem um conjunto &i0o de elementos, o nome do elemento de ligao no pode ser usado para locali"ar links* Em +e" disso, os processadores XML identi&icam os links pelo recon'ecimento do atributo xml=lin:* 5utros atributos podem ser usados para &ornecer in&orma.es adicionais ao processador XML* Cm recurso de renomeao de atributos e0iste para contronar colis.es de nome em aplica.es e0istentes*

<ois atributos, s8o? e actuate l'e permitem e0ercer algum controle sobre o comportamento da ligao* 5 atributo s8o? determina se o documento para o $ual est( se &a"endo a ligao est( embutido no documento atual, substitui o documento atual ou mostrado em uma no+a janela $uando o link acionado* actuate determina como o link acionado, ou automaticamente ou $uando selecionado pelo usu(rio* Algumas aplica.es iro necessitar de um controle muito mais acurado sobre os comportamento dos links* #ara estas aplica.es, locais padro so &ornecidos onde a semIntica adicional pode ser e0pressa*

Lin%s Simples
Cm link simples lembra &ortemente um link ,-ML <A>H <lin: xml=lin:;"simple" 8ref;"locator">"exto do @in:</lin:> Cm link simples identi&ica um link entre dois recursos, um dos $uais o pr/prio conteBdo do elemento do link* Este um link in)line* Cm localizador identi&ica o outro recurso* Cm locali"ador pode ser um C;L, uma consulta ou um #onteiro E0tendido*

Lin%s #$tendidos
Links e0tendidos l'e permitem e0pressar relacionamentos entre mais de dois recursosH ,elin% $ml:lin%./e$tended/ role./annotation/0 ,locator $ml:lin%./locator/ Wref./te$t)loc/09e$to,3locator0 ,locator $ml:lin%./locator/ Wref./annot()loc/0Anota8es,3locator0 ,locator $ml:lin%./locator/ Wref./annotF)loc/0Mais Anota8es,3locator0 ,locator $ml:lin%./locator/ Wref./litcrit)loc/0Literatura !rQtica,3locator0 ,3elin%0 Este e0emplo mostra como os relacionamentos entre um trabal'o liter(rio, anota.es e literatura cr%tica deste documento podem ser e0pressos* 9ote $ue este link separado de todos os recursos en+ol+idos* Links e0tendidos podem ser in)line, para $ue o conteBdo do elemento de ligao (outro $ue no dseja elemento locali"adores) participe no link como um recurso, mas esse no necessariamente o caso* 5 e0emplo acima um link out)o&)line link, pois no usa seu conteBdo como um recurso*

Ponteiros #$tendidos
;e&er@ncias cru"adas com o mecanismo XML I<7I<;E? ($ue similar ao mecanismo #fr !"en# em ,-ML) re$uer $ue o documento para o $ual se est( ligando ten'a Incoras de&inidas, onde os links so desejados (e tecnicamente re$uer $ue I< e

I<;E? ocorram no mesmo documento)* Este pode no ser sempre o caso, e algumas +e"es no poss%+el modi&icar o documento $ue +oc@ deseja ligar* 5s XML X#ointers tomam emprestados conceitos de ,F-ime e da -e0t Encoding Initiati+e (-EI)* 5s X#ointers o&erecem a sinta0e $ue l'e permite locali"ar um recurso atra+s da (r+ore de elementos do documento $ue contm o recurso* #or e0emploH crian)aABCpiadaD.AEC.D loca"ida a terceira crian)a ($ula$uer $ue possa ser) da segunda piada no documento* 5s X#ointers podem e0pandir as regi.es da (r+ore* A e0panso X#ointer spanAcrian)aABCpiadaDCcrian)aAECpiadaDD seleciona a segunda e terceira oldFo:e no documento* Alm da seleo atra+s de elementos, os X#ointers permitem a seleo por I<, +alores de atributos e correspod@ncia de cadeias de caracteres* 9este trabal'o, o X#ointer spanAraiGADcrian)aAECsetHDstrin/AHC"!6ui"CIDC raiGADctrian)aAECsetHDstrin/AHC"!6ui"CJDD seleciona a primeira ocorr@ncia da pala+ra 1A$ui1* 5 link pode ser estabelecido por um link e0tendido sem modificar o documento al+o* 9ote $ue o alcance de um X#ointer pode e0pandir uma seo estruturamente in+(lida do documento* A especi&icao XLink no especi&ica como as aplica.es de+em tratar tais alcances*

Rrupos de Lin%s #$tendidos


Links out)o&)line introdu"em a possibilidade de $ue um processador XML possa precisar processar +(rios ar$ui+os para mostrar corretamento o documento de 'iperte0to* <e acordo com o e0emplo de te0to de antoao acima, e assumindo $ue o te0to , na +erdade, somente para leitura, o processador XML de+e carregar pelo menos o te0to e o documento $ue contm o link e0tendido* A XLink de&ine os !rupos de Links E0tendidos para este prop/sito* !rupos de Links E0tendidos podem ser usados recursicamente, e um atributo steps &ornecido para limitar o n%+el da recursi+idade*

#ntendendo as Partes
Alguns documentos, particularmente documentos compostos $ue colaboram com XLinks, so pro+a+elmente compostos de elementos de mBltiplos conuntos de marcas* #or e0emplo, um artigo tcnico pode ser escrito usando)se um <-<, mas inclui e$ua.es matem(ticas escritas em Mat'ML e gr(&icos +etoriais escritos em um terceiro <-<* A &im de uma aplicao de processamento associar a semIntica correta com um elemento, ela de+e con'ecer $ue conjunto de marcas o elemento possui* A XML

resol+e este problema com nomes espaados* 9omes espaados em XML descre+e este sistema em detal'es* 5 princ%pio permitir a um pre&i0o delimitado por dois pontos associar)se com alguma semIntica e0terna atra+s de uma C;I* 5 uso deste pre&i0o identi&ica o elemento como tendo a semIntica descrita pela C;I* #or e0emploH ,b%:para0A frao @3L pode ser e$pressa em MatWML como: ,ml:cn t+pe./rational/0@,ml:sep30L,3ml:cn0),3b%:para0 5 elemento para neste e0emplo identi&icado e0plicitamente como sendo o nome espaado identi&icado pelo pre&i0o 7:, $ue de+e ter sido de&inido anteriormente no documento, e os elementos cn e sep so do elemento ml (presumi+elmente associado de alguma maneira com Mat'ML)*

#stilo e SubstUncia
5s na+egadores ,-ML so de di&%cil codi&icao* Embora alguns na+egadores possam basear sua &ormatao em 3ascading tFle 'eets (3 ), eles ainda cont@m con+en.es de di&%cil codi&icao para documentos $ue no &ornecem uma &ol'a de estilos* Cm cabeal'o de primeiro n%+el aparece da maneira correta, pois o na+egador recon'ece a marca <h1>* 9o+amente, +isto $ue os documentos XML no t@m um conjunto &i0o de marcas, testa apro0imao no &uncionar(* A apresentao de um documento XML dependente de uma &ol'a de estilos* A linguagem de &ol'a de estilos padro para os documentos XML a E0tensible Language (X L)* 5utras linguagens de &ol'as de estilos, como 3ascading suportadas* tFle tFle

'eets, tambm so

You might also like