You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Introdução</strong> <strong>ao</strong> <strong>XML</strong> <strong>Schema</strong><br />
<strong>XML</strong> <strong>Schema</strong> é u m a alternativa <strong>ao</strong> DTD baseada em <strong>XML</strong>.<br />
Um esque ma <strong>XML</strong> descreve a estrutura de u m docu mento <strong>XML</strong>.<br />
A linguagem <strong>XML</strong> <strong>Schema</strong> ta mbé m é cha ma da de <strong>XML</strong> <strong>Schema</strong> Definition (XSD).<br />
O que você já precisa saber<br />
Antes de estudar a Linguagem <strong>XML</strong> Sche ma, você deve ter u m enten di mento<br />
básico de <strong>XML</strong> e Names paces <strong>XML</strong>. També m é válido u m entendimento básico de<br />
DTD.<br />
Se você deseja estudar estes assuntos primeiro, visite o tutorial <strong>XML</strong> e o tutorial<br />
DTD.<br />
O que é um <strong>XML</strong> <strong>Schema</strong>?<br />
O pro pósito de u m <strong>XML</strong> Sche ma é definir os blocos de construção per mitidos em<br />
u m docu mento <strong>XML</strong>, como u m DTD.<br />
Um <strong>XML</strong> <strong>Schema</strong>:<br />
• define elementos que po de m aparecer e m u m docu mento<br />
• define atributos que pode m aparecer em u m docu mento<br />
• define que elementos são elementos filhos<br />
• define a orde m dos elementos filhos<br />
• define o n ú mero de elementos filhos<br />
• define se u m elemento é vazio ou pode incluir texto<br />
• define tipos de da dos para elementos e atributos<br />
• define valores pa drão e fixos para elementos e atributos<br />
<strong>XML</strong> <strong>Schema</strong>s são sucessores das DTDs<br />
Nós acredita mos que logo <strong>XML</strong> Sche mas vão ser usados na m aioria das aplicações<br />
Web no lugar de DTDs. Aqui estão algu mas ra zões:<br />
• <strong>XML</strong> <strong>Schema</strong>s são extensíveis para adições futuras<br />
• <strong>XML</strong> <strong>Schema</strong>s são m ais ricos e úteis que DTDs<br />
• <strong>XML</strong> <strong>Schema</strong>s são escritos e m <strong>XML</strong><br />
• <strong>XML</strong> <strong>Schema</strong>s s u porta m tipos de dados<br />
• <strong>XML</strong> <strong>Schema</strong>s s u porta m na mes paces<br />
<strong>XML</strong> <strong>Schema</strong> é uma Recomendação do W3C<br />
<strong>XML</strong> <strong>Schema</strong> foi originalmente proposto pela Microsoft, m as se tornou u m<br />
reco mendação oficial do W3C em Maio de 2001. A especificação está estável e foi<br />
revisada pelos me m bros do W3C. Para u ma visão geral das atividades e status do
W3C, visite o tutorial W3C<br />
<strong>XML</strong> <strong>Schema</strong>s Por que?<br />
Há m uitas ra zões para <strong>XML</strong> <strong>Schema</strong> ser melhor que DTD.<br />
<strong>XML</strong> <strong>Schema</strong> tem suporte a tipos de dados<br />
Uma das gran des vantagens de <strong>XML</strong> Sche mas é o s u porte a tipos de da dos:<br />
• É m ais fácil descrever conteú do de docu mentos per missíveis<br />
• É m ais fácil validar os dados<br />
• É m ais fácil trabalhar com da dos de u m banco de da dos<br />
• É m ais fácil definir restrições <strong>ao</strong>s dados<br />
• É m ais fácil definir padrões /for matos de dados<br />
• É m ais fácil converter dados entre diferentes tipos<br />
<strong>XML</strong> <strong>Schema</strong>s usa sintaxe <strong>XML</strong><br />
Outra gran de força do <strong>XML</strong> Sche ma é ser escrito em <strong>XML</strong>.<br />
Por isso:<br />
• Você não te m que aprender outra linguagem<br />
• Você pode usar seu editor <strong>XML</strong> para editar seus arquivos <strong>XML</strong> Sche ma<br />
• Você pode usar seu parser <strong>XML</strong> para verificar seus arquivos <strong>XML</strong> <strong>Schema</strong><br />
• Você pode m a nipular seu <strong>XML</strong> <strong>Schema</strong> com <strong>XML</strong> DOM<br />
• Você pode usar seu <strong>XML</strong> <strong>Schema</strong> com XSLT<br />
Comunicação segura de dados com <strong>XML</strong> <strong>Schema</strong>s<br />
Quando u m dado é enviado de u m ponto para outro é essencial que as d uas parte<br />
te m a mes ma expectativa sobre o conteú do.<br />
Com <strong>XML</strong> <strong>Schema</strong>s, o re metente pode descrever o da do de for ma que o receptor<br />
vá enten der.<br />
Uma data como "03 - 11 - 2004" vai, em alguns países, ser interpretada como 3 de<br />
Novembro e em outros com 11 de Março, m as u m elemento <strong>XML</strong> com u m tipo de<br />
dado como esse:<br />
20040311<br />
assegura u m entendimento m út uo do conteú do porque o o tipo de da do <strong>XML</strong><br />
requer o for mato YYYY-MM-DD.<br />
<strong>XML</strong> <strong>Schema</strong>s são extensíveis<br />
<strong>XML</strong> <strong>Schema</strong>s são extensíveis, assim como <strong>XML</strong>, porque eles são escritos em <strong>XML</strong>.<br />
Com u ma definição extensível você pode:
• Reutilizar seu <strong>Schema</strong> em outros Sche mas<br />
• Criar seus próprios tipos de da dos derivados dos tipos pa drões<br />
• Referenciar m últiplos esque mas em u m m es mo docu mento<br />
Bem formado não é o bastante<br />
Um docu mento <strong>XML</strong> be m for ma do é u m docu mento que aten de às regras de<br />
sintaxe <strong>XML</strong>:<br />
• deve começar com u m declaração <strong>XML</strong><br />
• deve ter u m elemento raiz ú nico<br />
• todas tags abertas precisam ser fechadas<br />
• tags <strong>XML</strong> são sensíveis à caixa alta / baixa<br />
• todo elemento deve ser fechado<br />
• todo elemento te m que ser propria mente aninha do<br />
• todos valores de atributos precisa m estar entre aspas<br />
• entidades <strong>XML</strong> devem ser usadas para caracteres especiais<br />
Mesmo se os docu mentos são be m for ma dos eles pode m conter erros, e estes<br />
erros po de m ter conseqüências sérias. Imagine essa situação: você compra 5<br />
tonners de impressoras laser, <strong>ao</strong> invés de 5 impressoras laser. Com <strong>XML</strong> <strong>Schema</strong>s,<br />
a m aioria destes erros pode m ser detectados pelo seu software de validação.