Você está na página 1de 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:3AA6 235LLIE6 Lassie
2735LLIE6 278E9,A:#A;A:3AA6 2734561* As idias so bem marcadas para
$ue 128E9<5:<5I6 duplo 278E9<5:<5I61 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*
Objetios do desenolimento 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 01*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, >
&amp; produ" o E comercial, &
&apos; produ" um ap/stro&o, '
&6uot; produ" aspas, "
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 !2A9A D7#GHI7#20
A0
,cWapter0))),3cWapter0
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 tFle
Language (XL)*
5utras linguagens de &ol'as de estilos, como 3ascading tFle 'eets, tambm so
suportadas*

Você também pode gostar