XML_Livro_resumo

download XML_Livro_resumo

of 42

Transcript of XML_Livro_resumo

  • 7/29/2019 XML_Livro_resumo

    1/42

    PREFCIOUm utilizador de XML, normalmente, quer fazer alguma coisa com os documentos que vai criando.Para isso, necessrio transformar os documentos XML.PARTE I XMLCAP.1 INTRODUO1.1. Motivao90% da informao correspondem a textos que so produzidos e circulam dentro da instituio ou

    entre instituies. Ento temos de estruturar esses textos.Documentos estruturados so documentos que tm uma estrutura explcita, as suas componentesesto identificadas. A estrutura definida formalmente atravs de regras.Este probelam, de tentar manter viva a informao correspondente aos 90% do patrimnio deuma instituio, fornece a primeira motivao para a utilizao da tecnologia de anotao (XML,XSL).O segundo mote vem de uma rea relacionada: a publicao electrnica.Acrescenta tambm metainformao aos documentos, que uma espcie de registo bibliogrficoque se agrega a um documento de modo a disponibilizar facilmente informao como a data dasua criao, autores, memria descritiva.Recentemente, uma das reas que tem registado significativos contributos e que tem evoludo

    muito a da representao abstracta de documentos ou de objectos com a forma de documento.Aqui os problemas comeam logo pela definio de documento (texto a ser vivo).1.2. Estrutura do LivroNo cap. 2 expem-se os conceitos subjacentes aos documentos estruturados: contedo eanotao, linguagem de anotao.No cap. 3 apresenta-se o XML, a norma para definio de linguagens de anotao e criao dedocumentos estruturados.No cap. 7 apresenta-se um cap. inteiramente dedicado a uma das mais recentes normas, o XMLSchema. Sero abordados os temas da esdpecificao e da utilizao de schemas. termina comcasos de estudo onde, para cada um, so apresentados o DTDs, o Schema e uma instnciadocumental.A segunda parte do livro dedicada transformao e formatao de documentos XML. H 2

    abordagens: a declarativa (nica que estudaremos) baseia-se na norma XSL, desde a criao destylesheets simples at s de 2 gerao.

    CAP.2 DOCUMENTAO ESTRUTURADAPara que os documentos tenham valor necessrio que sejam fceis de lovcalizar, de consumir(interpretar, validar, reutilizar. A estrutura de um documento a chave para a informao que neleest contida e pode determinar o seu valor.As vantagens da explicitao da estrutura:- Acesso permite que os elementos dos documentos sejam rapidamente localizados emanipulados. Por ex., pode-se seleccionar todos os ttulos de captulos de um livro para fazer umndice alfabtico.- Validao A verificao de que a informao apresentada est completa e de acordo com as

    regras estruturais.- Reutilizao localizar alguns elementos e utiliz-los para outro fim (cartes de tarefa de ummanual).- Normalizao Com a publicao e posterior adopo de DTDs, possvel normalizar acriao de documentos de um determinado tipo.2.1. AnotaoPor analogia, a publicao electrnica adoptou a mesma designao para a tarefa de colocarmarcas no texto para instruir os programas de formatao e impresso.Generalizando, pode-se definir uma anotao de um texto como um meio de tornar explcita umainterpretao desse texto 8ex. carta comercial). Para o computador ser muito mais fcilprocessar este tipo de documento se ele estiver anotado, ie, etiquetado o que o cabealho, aassinatura, a data,...A anotao serve 2 propsitos:- Divide o documento em componentes

    - d organizao lgica (explicitamente)

  • 7/29/2019 XML_Livro_resumo

    2/42

    - D indicaes para o processamento (implicitamente)- Reala o texto

    - D interpretao (inmplicitamente)- D instrues de formatao (explicitamente)

    H 3 passos distintos na tarefa de anotao 8que requer esforo e consome tempo):- Primeiro, h que analisar a estrutura da informao e os atributos que a caracterizam- Depois, h que determinar, quais as funes de processamento que produziro o

    formato/transformao desejado para cada elemento- Po ltimo, h que inserir as anotaes no texto.Quanto ao gnero, ou estilo, das marcas, distinguem-se 2 tipos de anotao: procedimental edescritiva. a primeir a mais orientada para os aspectos tipogrficos, o utilizador tem conscinciado impacto fsico. A 2 preocupa-se mais com os aspectos lgicos e estruturais.2.1.1. Anotao ProcedimentalEx. 1 uma carta anotadaComit Organizador da confernciaSistemas de Informao para o Futuro.vspace.... tab4 of 4Pode muito rapidamente tornar-se complexa, mas permite controlo directo sobre os aspectosvisuais. S para imprimir, no para armazenar e reutilizar.2.1.2. Anotao DescritivaAo contrrio, usa cdigos que apenas classificam as componentes do documento.Ex.

    em htmlEx.2 Poema Anotado

    Soneto J Antigo(lvaro de Campos)

    Olha, Daisy:quando eu morrer

    tu hs-de...completo na pg. 14H anotaes como quadra, terceto e verso que esto relacionadas com a estrutura dodocumento e h outras como nome e lugar que esto relacionadas com a semntica que sepretende associar ao contedo.As vantagens: o mesmo documento susceptvel de ser tratado, sem nenhuma alterao, porvrios processadores diferentes, podendo, cada um destes, aplicar funes de processamentodistintas s vrias componentes do documento.2.1.3. Linguagens de AnotaoO conjunto de anotaes, utilizado por uma dada comunidade de utilizadores num determinadocontexto, designa-se por Linguagens de Anotao. Como se ver mais frente, existemmecanismos formais para definio destas linguagens. No definem apenas quais as anotaes

    que se podero utilizar num determinado contexto, mas tambm especifica qual a ordem em queessas anotaes devem ou podem ser usadas.Ex. LaTex, RTF, SGML, WordStar (texto) e mais actuais utilizadas na anotao de documentospara a web: HTML, XML.2.1.4. Perspectivas de AnotaoH 3 abordagens bsicas tarefa de anotar:- Anotao orientada ao formato- estrutura- Ao contedo.Uma boa linguagem de anotao ter de surgir de um equilbrio destas 3 aproximaes.Anotao Orientada ao FormatoEx. Texto carregado, itlico, quebra de pgina, tabelas, paginao.ex:...

  • 7/29/2019 XML_Livro_resumo

    3/42

    Olha, Daisy>/realado>: quando eu morrer tu hs-deO perigo o de no permitir, no futuro, utilizaes alternativas do contedo do documento. Ex.quisssemos obter lista de nomes ou lugares.A anotao orientada ao formato descreve o aspecto visual de um elemento, mas no o identificanem especifica qual a sua funo.Anotao Orientada EstruturaBaseia-se na hierarquia genrica. Ex. documento com seces; cada seco pode conter novas

    seces, listas e pargrafos.O uso abusivo pode levar a situaes em que elementos diferentes em termos de contedo masque ocorrem na mesma posio hierrquica sejam anotados com a mesma marca.Anotao Orientada ao Contedo o corao da anotao genrica. a identificao dos elementos pelo seu contedo e propsito,em lugar da sua forma ou posio hierrquica, faz com que se atinja o expoente mximo daflexibilidade no contexto aplicacional.Mais uma vez, o uso abusivo pode levar a situaes problemtica. Em situaes extremas pode-se estar a anotar elementos com marcas diferentes sem que, mais tarde, se tire partido dessasanotaes e as anotaes pesam no processamento do documento.Uma Anotao EquilibradaDepois do que vimos, torna-se claro que a soluo bvia usar os 3 de forma equilibrada.Uma das mais usadas pela indstria da publicao electrnica, o DocBook, esto representadosos 3 paradigmas como se exemplifca:- Formato - EMPH para realar texto e TABLE para organizar visualmente a informao- Estrutura SECT1, SECT2 e SECT3 para marcar os nveis de seces e subseces.- Contedo - NAME, AUTHOR, PUBDATE, COMMAND, ... para marcar vrios itens deinformao.2.2. Evoluo das Linguagens de AnotaoComeou nos anos 60.A associao americana Graphic Communications Association (GCA) criou a GenCode paradesenvolver anotaes para os documentos dos seus clientes, que usavam diferentes aplicaese formatos para os seus documentos.

    A IBM criou a GML (Generalized Markup Language) para resolver os seus problemas internos depublicao electrnica. O mesmo documento podia produzir um livro, um relatrio ou edioelectrnica, atravs de processamento.No incio dos 80s os representates do GenCode e GML juntaram-se num esforo de normalizaoformando um comit ANSI Computer Languages for the Processing of Text. O objectivo eranormalizar a metodologia de especificao, a definio e a utilizao de anotaes emdocumentos, o qual foi atingido com a criao do SGML (Standardized Generalized MarkupLanguage) que foi lanada em 1986 como a norma ISO 8879. Desenhada com o objectivo depermitir a definio e utilizao de formatos de documentos. suficientemente formal parapermitir validar os dcumentos, tem estrutura suficiente para permitir a especificao emanuseamento de documentos complexos e extensvel de modo a suportar a gesto degrandes repositrios de informao.

    No CERN escolheu um conjunto de anotaes SGML e adoptou-as como linguagem da suaaplicao. Em Nexus, o editor e navegador original da www, ele usou essas anotaes, folhas deestilo para formatar visualmente as pginas e aquilo que lanou definitivamente este gnero deaplicaes: links.Em 1993 aparece o Mosaic. Mesmo a ltima verso do HTML, a 4.0, lanada em 1997, forneceapenas um conjunto limitado de anotaes.Desde 1992, o HTML evoluiu de uma sintaxe adhoc para uma linguagem de anotao definida emSGML (ideia-ferramentas genricas). Mas isso era complicado pois as pessoas queriam era poucacoisa para saberem tirar partido. Foi um 1 esforo.Ento apareceu o XML, eXtensible markup Language: por um lado o reconhecimento do SGMLcomo uma boa metodologia para estruturar e representar documentos, por outro, a identificaode limitaes do conjunto fixo de anotaes do HTML.2.2.1. HTML versus XML

  • 7/29/2019 XML_Livro_resumo

    4/42

    O HTML o formato universal para quem produz documentos para a www. O seu sucessoencontra-se associado sua pobreza semntica. O XML uma alternativa mais rica. OXML/SGML possibilita a criao do contexto especfico para cada comunidade.O HTML s se pode estender atravs de ps-processamentos especficos e no atravs de novoselementos adicionados linguagem.Pelo contrrio, o XML possibilita 3 funcionalidades crticas:- Extensibilidade o autor pode definir novas anotaes, relacion-las com as existentes na

    estrutura e acrescentar-lhe os atributos que desejar.- Estrutura O autor pode definir uma estrutura para uma dada famlia ou classe de documentosque pode mais tarde ser associada s instncias documentais.- Validao o autor pode proceder, ou solicitar, a validao do contedo do documentorelativamente estrutura.

    CAP.3 XML...Um documento XML composto por 3 partes distintas:- Declarao obrigatoriamente e no incio. ex: O objectivo dar algumas indicaes sobre a natureza do documento: verso do XML, qual atabela de caracteres utilizada, qual a especificao de estilo, etc.- DTD (Document Type Declaration) em conjunto especificam um tipo de documento. opcional. Documentos com estrutura diferente (carta, memo, livro, artigo, manual, ...) tero DTDsdistintos.- Texto anotado (instncia) Contm a informao, as anotaes e, opcionalmente, umareferncia ao DTD, que pode ser externo (armazenado noutro ficheiro).

    Um DTD:- Define qual a estrutura de uma famlia (classe ou tipo) de documentos.- Especifica quais as anotaes/marcas disponveis para anotar cada um dos elementosconstituintes dos documentos deste tipo.- Especifica quais os atributos que esto associados a cada elemento. Para cada atributo, indica

    qual o domnio e quais os valores por omisso.- Define a estrutura do contedo de cada elemento: que subelementos tem; em que ordem; onde que pode aparecer texto normal; onde que podem aparecer dados que no sejam texto.O XML, com os DTDs opcionais, veio criar dosi novos conceitos: o de documento vlido e o dedocumento bem-formado.

    3.2.1. Documento Vlido vs. Bem-FormadoO DTD corresponde gramtica e o parser ao verificador.No entanto, o XML foi pensado para suportar aplicaes web, pelo que o DTD e as respectivasverificaes podem tornar-se um fardo bem pesado. Ento introduziram-se 2 nveis de verificao:vlido, se tiver um DTD associado e o texto estiver de acordo com as especificaes; bem-formado se obedecer a:

    - Tiver um ou mais elementos;- Tiver um s elemento raiz;- Todas as anotaes estiverem aninhadas correctamente.

    3.3. Ciclo de Vida de um Documento XMLComea numa fase de anlise. O resultado a definio de um DTD ou Schema. As fasesseguintes so: edio/criao; validao; armazenamento; e formatao/transformao.

    3.3.1. Anlise Documental a modelao da informao. O objectivo compreender todas as componentes, ou elementos,que constituem uma dada famlia de documentos, bem como as relaes entre eles. uma tarefa subjectiva.O XML pode facilmente albergar pequenas variaes da estrutura da mesma informao.Os resultados so tanto melhores quanto maior e mais representativo for o envolvimento defuturos utilizadores da aplicao na equipa de anlise.

  • 7/29/2019 XML_Livro_resumo

    5/42

    composta pelas seguintes etapas:1. Identificao dos tipos de documentos no universo em causa;2. Definio de uma estratgia para o DTD;3. Identificao dos utilizadores;4. Escolha de um nome para o DTD;5. Reconhecimento dos elementos lgicos do tipo de documento em causa;6. Escolha entrte elementos e atributos;

    7. Determinao da estrutura hierrquica.

    Identificao dos Tipos de Documento no Universo em CausaA ideia agrupar documentos com propriedades semelhantes em classes.

    Defino de uma Estratgia para o DTDUm DTD desenhado de raiz para documentos que vo ser criados diferente de um DTDdesenhado para suportar documentao j existente compatibilidade.

    Identificao dos UtilizadoresSo as pessoas que vo produzir ou manipular os documentos XML anotados segundo o DTDque vai ser definido, para quentodos sejam ouvidos.

    O Nome do DTDO XML reduz o grau de liberdade do utilizador. O nome deve ser elucidativo do tipo de documento

    Elementos Lgicos do DTDNesta fase, o objectivo obter uma descrio da estrutura do documento; interessa,portanto, encontrar e distinguir os elementos que compem o documento a nvel lgico. Ex.memo:MEMO tem um emissor e um destinatrio, que designamos por DE e PARA. O resto pode induziralguma subjectividade, mas podemos dizer que tem um CORPO e este est estruturado porpargrafos designados por P. Podemos ainda identificar elementos como ASSUNTO e

    ASSINATURA, ou mesmo um elemento mais complexo que visa registar o percurso dodocumento dentro da instituio.Durante este processo h questes que devem estar sempre presentes: ser necessariodistinguir este elemento? O que que se pretende fazer com ele?Convm cobrir todos os ngulos do problema.Por ltimo, devem ter-se presentes os processamentos a que iro ser submetidos os documentos.Cada processamento pode ter implicaes na estrutura.

    Elemento ou Atributo?No mundo real h casos fronteira; a hesita-se entre um elemento e um atributo. ex. links em html.Este problema crtico e tem de ser resolvido caso a caso, baseando-nos, no entanto, nosseguintes princpios:

    - A informao estrutural? Um objecto que por natureza deve estar presente um bomcandidato a elemento.- A informao qualifica o contedo ou faz parte de um padro repetitivo? Uma carta pode serprivada ou de negcios. No est relacionada estruturalmente com o elemento carta, apenasqualifica ou cataloga o documento (lista numerada). um bom candidato a atributo.- A informao est relacionada com o aspecto visual? -> elemento

    - A informao requer um processamento especial? -> elemento.

    Determinao da Estrutura HierrquicaAgora necessario especificar as relaes: quem contm quem, em que ordem, qual o n deocorrncias, etc.Neste momento pode colocar-se a questo de como representar a estrutura para facilitar a escritade um DTD. A rvore estrutural do documento d uma boa maneira de visualizar a sua estrutura.No entanto no tem informao sobre a frequncia de cada um dos elementos (opcionais e

  • 7/29/2019 XML_Livro_resumo

    6/42

    repeties). Ento introduzem-se os diagramas de estrutura ou o ELM-tree (Element Lucid Model tree), formal.

    3.3.2. Edio de Documentos XMLCorresponde criao. Em princpio basta ediotor de texto, mas se se quiser tirar partido do DTD,usa-se um Editor de XML. um editor estruturado parametrizvel pelo DTD, isto , um editor que, lendo um DTD, vai ser

    contextualmente sensvel a esse DTD. Ajudam o escritor a marcar o seu texto sem ter de saber decor a sintaxe de todas as anotaes em uso na medida em que lhe mostram, em cada momento(em cada contexto), a lista de todas as marcas que a se podem usar; alm disso, possibilitam avalidao estrutural imediata do documento que est a ser editado. ex: XMetal da Softquad.No editor de XML preciso fazer a sua configurao relativamente ao DTD, que no mais que asua compilao com uma ferramenta prpria que acompanha o editor. Depois de compilado adicionado biblioteca de DTDs do editor.

    3.3.3. Validao uma das mais-valias da documentao estruturada tem para o processamento dedocumentao. Esta validao estrutural e verifica se um dado documento respeita umdeterminado DTD. feita por um parser configurvel por uma especificao de estrutura, um DTD. Normalmenteaparecem integrados noutras aplicaes como esditores estruturados.Produz 2 resultados: um uma lista de erros; outro um texto declarativo correspondente travessia da estrutura de dados interna usada para guardar o documento durante o processo dereconhecimento. Relativamente linguagem/formato usado para a sada dos dados da travessia,pode haver algumas variaes, mas h uma assumida como norma: o ESIS Element StructureInformation Set.Ex:(MEMO(DE- Camarada Napoleo

    ) DE(PARA- Bola de neve)PARA(CORPO(P-Na obra intitulada A Quinta dos Animais, ... \\n(P- Ser que o XML--- Qual a tua opinio?)P)CORPO)MEMO

    Elementos principais:(elem-id Incio do elemento com o identificador elem-id. Se tiver atributos, eles j apareceram emlinhas precedentes com o prefixo A)elem-id Fim...-texto Contedo do ltimo elemento indicadoAnome valor O prximo elemento a ser iniciado ter um atributo de nome nome e com o valorvalor.?proc-inst Instruo de processamento proc-instMuitas vezes o documento processado para obter o formato ESIS que preciso para aformatao.ex de parsers: expat Xerces XML for C++Depois de acabar de escrever o DTD a altura de pensar no estilo de apresentao. uma tarefacomplexa.

    3.3.4. Formatao e Transformao

    http://n/http://n/
  • 7/29/2019 XML_Livro_resumo

    7/42

    Quem opta por uma soluo XML separa o contedo da formatao.De uma maneira geral, o que se pretende fazer com um documento XML transform-lo:simplesmente traduzi-lo para RTF, PDF ou HTML;Uma soluo seria ferramenta de configurao do parser, mas isso contraria o objectivo deindependncia das plataformas.Em 1996, foi publicado o DSSSL, Document Style and Semantics Specification Language, anorma ISO/IEC 10179:1996 (o Assembly...). Entretanto foi desenvolvida uma nova linguagem

    XML, com a mesma funcionalidade mas com nvel de abstraco mais elevado o XSL eXtended Stylesheet Language.

    3.3.5. ArmazenamentoPara o trabalho com os documentos preciso extrair partes, executar procuras inteligentes, criarindces, etc.O leque de solues de armazenamento so 3:1. Armazenar os documentos no sistema de ficheiros do prprio sistema2. Armazenar os documentos numa base de dados relacionalParece bvia, mas no . Existem 2 grandes famlias de documentos XML: orientados informao e orientados ao texto. Para estes h uma ordem linear inerente sua essncia, queno h nas bases de dados, resultando daqui uma perda.No entanto, devido a baixos custos, esta soluo foi implementada Omnimark Micro-DocumentArchitecture MDA.3. Armazenar os documentos numa base de dados orientada a objectos. cara mas eficaz. O modelo hierrquico de objectos modela directamente qualquer rvoredocumental.O sistema de ficheiros um recurso utilizado at ao limite.

    CAP. 4 DOCUMENTOS XML BEM FORMADOSUm documento XML formado por dados e anotaes. Num documento XML, os dados so osblocos de texto.A anotao de um documento descreve a sua estrutura e induz uma interpretao do seu

    contedo. A anotao composta por: marcas de incio de elementos, marcas de fim deelementos, marcas de elementos vazios, referncias a entidades, comentrios, limitadores deseces especiais de texto (CDATA-seco 4.6), declaraes de tipo de documento e instruesde processamento.Uma anotao comea sempre por

    4.1. A declarao XMLUm documento XML deve comear sempre por uma declarao XML.Podem ser usados 3 atributos numa declarao XML:version obrigatriostandalone opcional. yes indica que o documento est autocontido, isto , no temreferncias a entidades externas.

    encoding opcional e indica qual a codificao usada para os caracteres. O valor por omisso UTF-8. Para caracteresd portugueses iso-8859-1

    4.2. ComentriosUm comentrio pode aparecer em qualquer ponto de um documento XML. Comea pela marcaExistem algumas restries:- No podem aparecer antes da declarao- No podem aparecer dentro de uma anotao- No se podem usar as sequncias de caracteres -- dentro de um comentrio.Alm da sua funod e documentao usam-se para remover temporariamente partes dodocumento.

    4.3. Instrues de Processamento

  • 7/29/2019 XML_Livro_resumo

    8/42

    Comea por ;id-processador dever indicar a que tipo deprocessamento a instruo se destina.ex: estas instrues de processamento identificam ordens que devero ser executadasaquando da transformao deste documento para HTML.

    4.4. Elementos

    Determinam os blocos lgicos em que o texto global pode ser partido ou decomposto.Cada elemento composto pela sua anotao de incio ( ), pelo seu contedo e pela suaanotao de fim ( ).Um elemento tem de estar completamente contido noutro elemento, excepto o ancestral de todosos elementos (o elemento raiz). Algumas estruturas hierrquicas podem ser recursivas, o quepode causar problemas no momento de processar a informao.As regras de formao do nome de um elemento:1. O primeiro caractr dever ser uma letra, um underscore ou um sinal de dois pontos;2. Os caracteres seguintes podem ser letras, dgitos, underscores, hfens, pontos e dois pontos.3. O espao em branco no pode aparecer no nome de uma anotao.Em XML h distino entre maisculas e minsculas.Por outro lado, no contedo de um elemento, nunca devero aparecer os caracteres < e >. Emlugar deles deve-se usar as entidade < e >

    4.4.1. Tipos de ContedoOs elementos podem incluir outros elementos (ditos elementos filho) e texto. H os que nocontm texto directamente so os estrutrantes. ex: RECEITAS.Os caracteres brancos (espaos, mudanas de linha, tabulaes) so irrelevantes e no soconsiderados como fazendo parte do documento.Um elemento que contenha apenas texto designado como tendo contedo textual. ex:Meia dzia de ovosQuando contm simultaneamente texto e elementos filho, designa-se por elemento de contedomisto. ex: Olha, Daisy:quando...

    Um elemento pode no ter qualquer contedo elemento diz-se vazio. So normalmente usadospelo seu significado posicional. ex: BR e HR do HTML (so um pouco procedimentais).H, no entanto, elementos vazios puramente descritivos, como o caso dos que representamreferncias. Para alm da posio, contm informao nos atributos. ex:Como ser discutido num captulo mais frente () Estes elementos tm forma abreviada.

    4.5. AtributosVisam qualificar o elemento a que esto associados. definido por um par constitudo por umnome e um valor, que devem estar separados pelo sinal = e o valor deve estar dentro de aspas

    simples ou duplas. As regras de formao do nome so as mesmas que vimos para os elementos.Problema: no existe fronteira e o problema no simples a escolha entre elemento e atributo.

    4.5.1. Atributos ReservadosH caractersticas universais que o contedo dos elementos pode partilhar em diferentesaplicaes. Normalmente, incluem-se nestas caractersticas a lngua utilizada e a importncia doscaracteres brancos. Para evitar conflitos com os nomes do utilizador, a norma reservou o prefixoxml. Na norma h apenas 2 atributos reservados, xml:lang e xml:space.xml:lang este atributo pode ser associado a qualquer elemento e indica qual a lngua em que otexto desse elemento est escrito. til em ambientes multilingusticos.xml:space associvel tambm a qualquer elemento e pode ter 2 valores: default8indica que oespao no contedo do elemento no relevante) e preserve.

    4.6. Seces Especiais de TextoSe se pretender usar os caracteres < > e & devem ser usadas antes entidades < > &

  • 7/29/2019 XML_Livro_resumo

    9/42

    No caso em que estes caracteres abundem, o XML dispe do mecanismo Seces Marcadas deTexto, onde se pode escrever livremente, sem ser necessrio substituir aqueles caractres pelasentidades correspondentes. sempre iniciada por >>.]>

    4.7. Regras de Bem Formao

    - Um documento XML deve ter sempre uma declarao XML no incio- Um documento deve incluir um ou mais elementos- Todos os elementos tm anotaes de incio e fecho- Os elementos devero estar aninhados correctamente.- Os valores de atributos tm de estar entre aspas

    4.8. NameSpacesNo XML h liberdade total de atribuir nomes a elementos e atributos. Mas, assim, h possibilidadede conflitos de nomes, nomeadamente quando se importam pedaos de outros documentos XMLescritos por outros autores. ex: livro de catlogo e de encomenda.Os NasmeSpaces so a soluo do problema.Um NameSpace uma superetiqueta formada pelo nome da anotao ao qual concatenado umprefixo. Esse prefixo definido pelo utilizador e dever ser nico. Para garantir tal unicidade,convencionou-se que se usaria a sintaxe dos URL para o prefixo. Assim, partindo do princpio deque cada utilizador tem um URLprprio acabam-se os conflitos.

    4.8.1. Criao de NameSpacesO World Wide Web Consortium (W3C) publicou recomendao que define NameSpace:Uma coleco de nomes, identificados por uma referncia URI (Universal Resource Identifier) que usada nos documentos XML como prefixo dos nomes de elementos e de atributos.Na mesma recomendao dizem como devem ser criados e declarados os NameSpaces.Convencionou-se existir um atributo global xmlns. ex:xmlns=http://xml.di.uminho.pt/XMLSamples/livro.dtd

    4.8.2. PrefixosEsta string identificadora de um NameSpace demasiado grande para ser manipulada. Assim,associa-se-lhe uma abreviatura, que pode ser mais tarde usada como referEncia do NameSpace.xmlns:catalogo=http://xml.di.uminho.pt/XMLSamples/livro.dtdExemplo 28: Utilizao de NameSpaces com prefixo

    XML: da teoria prtica

    Um bom ponto de partida...Livro que cobrer duma maneira geral mas com

    alguma profundidade a temtica XML....

    4.8.3. NameSpaces LocaisO atributo xmlns pode ser usado em qualquer elemento. Logo, para tornar mais explcito, podia ters declarado o jcr a seguir ao jcr:opiniaoA declarao do NameSpace fica assim junto do elemento que faz uso dela.

    4.8.4. NameSpaces por Omisso

    http://xml.di.uminho.pt/XMLSamples/livro.dtdhttp://xml.di.uminho.pt/XMLSamples/livro.dtdhttp://xml.di.uminho.pt/Samples/livro.dtdhttp://xml.di.uminho.pt/XMLSamples/livro.dtdhttp://xml.di.uminho.pt/XMLSamples/livro.dtdhttp://xml.di.uminho.pt/Samples/livro.dtd
  • 7/29/2019 XML_Livro_resumo

    10/42

    O atributo xmlns pode ser utilizado isoladamente sem a declarao de um prefixo. Nesse casodeclarou-se por omisso. Todos os elementos filho do elemento onde se declarou o NameSpacepertencem agora a esse NameSpace. Deixo de usar catalogo, por exemplo.

    4.9. Forma Cannica de Documentos XMLPreocupao actual: como representar, de uma forma abstracta, a informao num documentoXML de modo a ser possvel comparar documentos? Reduzi-los a XML cannico.

    Isto conseguido base de uma sintaxe bastante estrita: s permitida a codificao decaracteres em UTF-8, os pares CR/LF so substitudos por LF, nos elementos textuais assequncias de caracters brancos sosubstitudos por um nico espao... Os pacotes j trazemredutor ex: Alphaworks, o XML4J da IBM.

    CAP. 5 DOCUMENTOS XML VLIDOSNa maioria dos caso em que o utilizador que edita e manipula os documentos XML, hnecessaidade de estipular um conjunto de regras que estabeleam a valaidade dos documentos. especificao de um tipo de documentos d-se o nome de DTD ou XML Schema.Neste captulo veremos em detalhe a linguagem com a qual se especifica um DTD.

    5.1. Componentes de um Documento XML VlidoUm documento XML vlido composto por 2 grandes e distintas partes: o DTD e a Instncia. ODTD define as regras a que a instncia tem de obedecer para pertencer ao tipo de documentodefinido pelo DTD.Pode dizer-se que um DTD composto por um conjunto de declaraes. Existem quatro tipos dedeclaraes: elementos, atributos, entidades e instrues de processamento.

    5.2. Elementosidentificador o nome do elemento, o qual depois usado nas anotaes. Pode ser formado porletras, dgitos, dois pontos, hfens, underscores e pontos. Mas s pode comear por letra,underscore ou dosi pontos.

    expresso-contedo a definio do contedo do elemento escrita numa linguagem deexpresses regulares que obedece a uma lgebra. essa expresso especifica que subelementospodem aparecer, em que ordem e em que nmero.ex: Relativamente ao contedo, pode ser:vazio este tipo de elemento tem apenas um valor posicionaltextualestruturado o contedo do elemento formado por uma combinao de outros elementosmisto o contedo do elemento texto no meio do qual podero surgir alguns elementossoltoslivre o contedo do elemento no tem qualquer restrio, pode ser uma mistura de texto comuma combinao qualquer de outros elementos definidos no DTD; este tipo de elementos ser

    usado apenas nos estados iniciais do desenvolvimento de uma aplicao.

    5.2.1. lgebra do ContedoContedos AtmicosElementos vazios: a constante EMPTYex: depois, na instncia:Elementos Textuais: a constante #PCDATA (Parsed Characater Data) depois, na instncia:Este livro tenta dar uma viso...Note que #PCDATA o nico tipo de dados primitivo possvel. Mesmo os elementos cujocontedo seja numrico ou temporal tero de ser especificados como textuais. Esta uma daslimitaes dos DTD que os XML Schemas resolvem.

    Contedos Compostos

  • 7/29/2019 XML_Livro_resumo

    11/42

    neste tipo de elementos que surge a lgebra. Para definir a combinao de elementos temos 2operadores: Operadores de Conexo e Operadores de Ocorrncia

    Operadores de ConexoSo normalmente colocados entre 2 elementos e define a ordem em que estes podem ocorrer oucombinar-se., operador de sequncia (a,b) significa que o elemento tem de ser composto por um elemento a

    e um elemento b, e que a deve preceder b.| operador de alternativa (a|b) significa que o elemento composto por um elemento a ou porum elemento b.

    Operadores de OcorrnciaSo aplicados a um termo e visam limitar o n de ocorrncias desse termo.? (0 ou 1 vez) a?* (0 ou mais vezes) a*+ (1 ou mais vezes) a+

    Elementos Mistos um elemento textual, onde podem ocorrer livremente, entre o texto, alguns elementospreviamente identificados.So aqueles que mais problemas levantam. No entanto h situaes em que no possvel evit-los. Um dos exemplos mais comuns o elemento pargrafo:

    Elementos Livres: a constante ANYAcabam por ser elementos de contedo misto onde, no meio do texto, pode aparecer livrementequalquer um dos outros elementos definidos na DTD, um n de vezes tambm livre.

    5.2.2. Exemplos: o DTD Agenda e o DTD PoemaComo exemplo da primeira superclasse, informao estruturada, apresentamos a agnda decontactos. E, como exemplo do segundo caso (semi-estruturada), um poema.

    Note que a definio do elemento grupo recursiva.

  • 7/29/2019 XML_Livro_resumo

    12/42

    Como foi dito, note-se que temos agora um lemento com contedo misto: verso. Este eleemtno,que corresponde ao conedo semi-estruturado do poema, est definido como uma mistura detexto com elementos nome e lugar.Podamos generalizar para qualquer n de quadras e tercetos ou at para qualquer n de estrofes,mas avisa-se que a generalizao pode ser perigosa pois implica perdas semnticas. O ideal

    termos o objectivo final bem claro.

    5.3. ATRIBUTOSNo caso da agenda, pensando bem, TIPO uma caracterstica do elemento ENTRADA e no umdos seus elementos constituintes, por isso pode passar a atributo (subjectivo, sempre). Por seulado, IDENT e REF devem ser vistos como um par pois com os seus valores que se monta ummecanismo de referenciao. Ora, para este fim, existe no XML, um par de tipos de atributos, ID eIDREF que tm a eles associada a validao que garante que a referenciao est bem feita.Logo:A primeira declarao associa um atributo de nome IDENT ao elemento ENTRADA.N ltimo caso, foi necessrio criar um elemento, REFERENCIA, ao qual pudesse ser associado oatributo REF.

    5.3.1. Declarao

    att1-id att1-tipo att1-class att1-val-omissaoattn-id attn-tipo attn-class attn-val-omissao

    >Usar uma declarao deste tipo ou declarar um de cada vez, s depende do gosto pesoal.

    5.3.2. TiposSo 10 e apenas eles, isto , no so permitidos tipos definidos pelo utilizador nem tiposcompostos.CDATA o mais geral. qualquer texto livre sem anotaes. Usado para preos, URLs,endereos de email, etc.ID deve conter um identificador que nico em todo o documento. Este tipo de atributos deveser usado para associar identificadores nicos a elementos.IDREF aponta para um atributo do tipo ID de outro elemento no documento. Usadonormalmente para implementar relaes entre elementos, em que cada relao representadapor um par de atributos ID/IDREF.As razes podem ser simples de um para um ou de um para muitos, ou complexas de muitos

    para muitos.Ex:...

    ...

    ...

    Note-se que poupei, usando REF=e1 na entrada da mesma pessoa, agora par um grupo.As relaes de muitos para muitos representam outra situao onde necessrio utilizar este tipode atributos, para evitar repetio de informao. Ex. caso de autores e livros.IDREFS til quando se pretende fazer referncia a mais que um elemento. ex:

  • 7/29/2019 XML_Livro_resumo

    13/42

    id ID #REQUIRED>poderamos ter:

    ......Enumerado No utiliza uma palavra chave. Em vez disso, oferece uma lista (ou eneumerao) devalores possveis para esse atributo. ex:

    IDENT ID #REQUIREDTIPO (PESSOA | EMPRESA | INSTITUICAO) pessoa>

    ENTITY pode conter como valor o nome de uma entidade (declarada algures no DTD. Emdesuso. ex:

    IDENT ID #REQUIREDTIPO (PESSOA | EMPRESA | INSTITUICAO) pessoaFOTO ENTITY>

    Se no DTD existisse uma entidade de nome paulo com a fotografia do Paulo Jos, podia usar-seeste atributo para associar a entidade entrada:...

    Paulo Jos Bastos...

    ...ENTITIES contm o nome de vrias entidades declaradas algures no DTD. ex: cada slide deuma apresentao uma imagem declarada como uma entidade no DTD. ENTITIES indica aordem de visonameno do slides:...

    NOTATION o menos utilizado. usado para associar um tipo de dados externo a um

    determinado atributo ou elemento.NMTOKEN Os valores de atributos deste tipo so identificadores no contexto do XML.

    semelhante ao tipo ID, s que em termos semnticos no tem a restrio da unicidade. Emdesuso.NMTOKENS Quando o valor de um atributo precisa de ser composto por uma lista deNMTOKEN separados por espao, usa-se este tipo. Em desuso. Usa-se numa situao a evitart:quando se coloca a informao nos atributos em vez de nos elementos. ex:ALCUNHA NMTOKENSna entrada ALCUNHA=trinca espinhas

    5.3.3. CLASSESA classe de um atributo interfere directamente com a tarefa de validao e de processamento,indicando qual o comportamento esperado do utilizador relativamente ao atributo: se o atributo opcional, se obrigatrio ou se tem um valor fixo. H 3 classes de atributos:#IMPLIED o atributo opcional.#REQUIRED o atributo obrigatrio

  • 7/29/2019 XML_Livro_resumo

    14/42

    #FIXED o atributo constante e imutvel e o seu valor ser sempre o que estiver na declarao frente da palavra chave #FIXED. ex:

    tipo CDATA #FIXED data>Ex: de definio do tipo data para posterior transformao, j que o XML no o tem.A indicao da classe na declarao de um atributo opcional. Se no for especificado, os

    processadores assumem #FIXED.

    5.3.4. Valores Por OmissoO valor por omisso uma string, entre aspas.

    5.4. Associao de um DTD a um DocumentoEsta declarao especifica que o elemento raiz do documento agenda e que o DTD pode serencontrado no sistema, no ficheiro agenda.dtdDeve aparecer sempre aps a declarao XML e antes do elemento raiz.5.4.1. Redefinio Parcial de um DTDA sintaxe da declarao DOCTYPE pode ter um bloco extra onde possvel redefinir partes doDTD; para o caso do documento ter necessidades especficas. ex:...

    ]>...Nesta instncia de agenda, as entradas podero ter um URL associado.

  • 7/29/2019 XML_Livro_resumo

    15/42

    CAP. 6 ESTRUTURA FSICA: ENTIDADESUm documento XML pode estar espalhado por vrios ficheiros do sistema. Facilita-se destamaneira a reutilizao de subcomponentes.6.1. CONCEITOSO XML tem um mecanismo que permite isolar fisicamente e armazenar separadamente qualquerparte de um documento (ex. cada cap. de um livro, ou figuras). Cada uma destas unidades deinformao designada por entidade e tem um identificador nico associado pelo qual

    referenciada. A nica excepo a entidade correspondente ao documento principal, que noprecisa do identificador, pois normalmente referenciada pelo nome do ficheiro que a contm.Uma entidade definida numa declarao prpria que normalmente aparece no incio do DTD.Nesta declarao atribudo um nome entidade e -lhe associado um contedo ou umareferncia para um ficheiro externo onde est esse contedo.As entidades so usadas por referncia, isto , o autor coloca uma referncia no texto queidentifica univocamente uma entidade.Mais tarde, quando o documento for processado, as referncias so substitudas pelosrespectivos contedos. No so permitidas referncias cclicas.Deve-se ter cuidado; o seu uso abusivo aumenta a complexidade do tratamento do documento.H no entanto situaes em que deve ser considerada:

    - quando a mesma informao utilizada algumas vezes no documento.- quando a informao tem representaes diferentes em sistemas incompatveis.- quando a informao diz respeito a um grande documento que deve ser separado em

    unidades mais pequenas de modo a facilitar a manuteno.- quando a informao composta por dados num formato diferente do XML (imagem,...)

    Entidades Gerais so usadas como mecanismo de abreviatura para strings de grande dimensoque se iro repetirEntidades Carcterrepresentam a maneira de codificar caracteres especiaisEntidades Externas servem para referenciar ficheiros externosEntidades Paramtricas so usadas como variveis na escrita de um DTD

    6.2. ENTIDADES GERAIS

    Sintaxe da declrao: Exemplo: Sintaxe da referncia: &identificadorExemplo: Este livro descreve o XML(&XML;)...pode ser mais que texto pode ser txto anotadoExemplo 37: Entidades Gerais com anotaesJos Carlos RamalhoNa instncia:...

    &jcr;

    ...

    6.3. ENTIDADES CARCTERA norma XML ao adoptar o Unicode, tornou obsoleta a utilizao deste tipo de unidades. H, noentanto, uma situao em que leas ainda so utilizadas: na representao de alguns caracteresespeciais do XML.Entidade/Carcter: &/& /> "/ '/Os caracteres so representados pelo seu valor decimal ou hexadecimal.Sinatxe da referncia: cdigo decimal; igo hexadecimalExemplo: O ( ou ); deste livro da FCA

    6.4. ENTIDADES EXTERNASPodem ser de 2 espcies: representar um pedao do documento XML e, neste caso, o seucontedo analisado e validado; ou um bloco de informao binria.6.4.1. Entidades Externas Textuais

  • 7/29/2019 XML_Livro_resumo

    16/42

    Quando um documento cresce e atinge dimenses considerveis, a sua edio pode tornar-sepenosa e difcil. Este livro por exmplo podia encontrar-se repartido em vrios ficheiros XML umpor captulo.Esta filosofia implementada em XML atravs de entidades externas, que corresponde a uma dasparties do documento original. No documento principal, colocam-se referncias s entidadesexternas no local onde devem ser inseridos os respectivos ficheiros XML.

    [PUBLIC identificador-pblico]Os blocos entre [ e ] so opcionais, mas pelo menos um deles dever estar presente. Os 2 blocosdizem repeito aos 2 mtodos possveis de endereamento dos ficheiros externos: directamente,atravs do nome e local do ficheiro no sisteme ou indirectamente, atravs de identificador pblico.O mtodo indiorecto surge para facilitar a gesto dos ficheiros dentro do sistema. Pressupes aexistncia de um ficheiro com o nome catalog, que faz o emparelhamento entre identificadorespblicos e nomes de ficheiros. Um identificador pblico uma string que obedece a um conjuntode requisitos estipulados na Formal Public Identifiers. ex:temos de ter o catalog. ex:PUBLIC -//jcr//Capitulo 2 da tese//PT a:cap2.xmlA utilidade mais bvia deste mecanismo a movimentao de ficheiros, alterando apenas osrespectivos paths no catlogo.As externas textuais:Sintaxe da referncia: &identificadorExemplo: ... &capitulo1;...6.4.2. Entidades Externas Binriasno DTD

    SYSTEM imagens/fotojcr.jpgNDATA jpeg>

    NotaesNDATA especifica o tipo de dados. Mas para ser reconhecido como iomagem haque definir

    algures no DTD:Variam de aplicao para aplicao.Exemplo 41: Entidades Binrias...

    SYSTEM imagens/fotopaulo.jpgNDATA jpeg>

    ...

    no documento:...Este mecanismo muito pouco suportado pelas aplicaes existentes. Da:Exemplo 42: Esquema alternativo par incluso de dados binrios...

    path CDATA #REQUIREDformato CDATA #IMPLIED

    no documento:

  • 7/29/2019 XML_Livro_resumo

    17/42

    6.5. ENTIDADES PARAMTRICASNum DTD, h sempre subconjuntos de elementos que tm listas de atributos em comum oumesmo parte da sua definio estrutural.Se fssemos definir o DTD sem colocar em evidncia as partes comuns, iramos ter mltiplasdeclaraes do mesmo objecto com a agravante de que, sempre que quisssemos alterar esseobjecto, teramos de alterar todas as definies.Enquanto as entidades vistas at aqui so usadas para expanso do documento XML, uma

    entidade paramtrica normalmente usada para abreviar a escrita de partes constantes. ex:

    \%at-base;ficheiro CDATA #REQUIREDformato (gif | jpeg | png>

    6.5.1. Redefinio de Entidades ParamtricasAs entidades paramtricas so particularmente poderosas pois podem ser redefinidas.As redefinies so feitas no bloco DOCTYPE usando entre [ ]Podemos at levar ao extremo de definir o contedo de todos os elementos e atributos comoentidades paramtricas.

    6.5.2. Modularidade na Especificao de um DTDUm DTD pode ser modular se forem utilizadas entidades paramtricas externas na suaespecificao. Declara-se da mesma maneira que as normais s que, em vez de um texto desubstituio, leva a palavra chave SYSTEM seguida da string indicativa do ficheiros ao qual se

    pretende associar a entidade. ex: 46 DTD Modular...\%estrutura;\%dados;...

    6.6. INCLUSO CONDICIONALUsado na gesto de modularidade. Em XML, existe uma directiva IGNORE que indica aoprocessador que no deve analisar um determinado conjunto de declaraes.

    ]]>Esta directiva e a INCLUDE podero parecer inteis. Porm podem ser usadas atravs deentidades paramtricas e no directamente. Se for o caso:Comeamos por definir uma entidade soneto:Agora podemos usar essa entidade paramtrica no lugar da directiva:

    ]]>Como uma entidade paramtrica pode ser redefinida num bloco de redeclaraes de um DTD,esta combinao fornece-nos um mecanismo muito poderoso para especificar e utilizar um DTD.com esta utilizao de incluses condicionais e entidades paramtricas, possvel desenvolver

  • 7/29/2019 XML_Livro_resumo

    18/42

    um DTD de grandes dimenses que pode ser parametrizado no instante da criao das instnciasdocumentais como se demonstra no ex. 47 seguinte: Um DTD para poemas mais verstil:

    ]]>

    ]]>

    ...depois podemos redefinir:]>

    Os grandes DTDs que se afirmaram na indstria documental usam este mecanismo deparametrizao para tornar mais amplo o seu universo de aplicaes e para permitir que outilizador tenha uma maneira de personalizar o DTD, desencorajando-o, desta forma, dedesenvolver um DTD especfico.

  • 7/29/2019 XML_Livro_resumo

    19/42

    CAP. 7 XML SCHEMASconceitos bsicos.7.1. IntroduoO XML Schema foi desenvolvido numa tentaiva de dar resposta a alguns problemas que sesentiam na utilizao de um DTD, sobretudo porque esta no era suficientemente poderosa eexpressiva para a especificao de restries ao contedo dos documentos XML. As vantagensso:

    - Escrevem-se em XML- Suportam os tipos de dados comuns maior parte das linguagens de programao e permitem,adicionalmente, que o utilizador defina outros tipos de dados.- Fornecem um poderoso sistema de classes e tipos que permite a extenso e a reutilizao deestruturas no prprio XML Schema (mais poderoso que paramtricas)- Suportam utilizao de Namespaces -> modularidade mais fcil- Disponibilizam vrias facilidades importantes para o tratamento de elementos de contedo misto.

    7.2. O Primeiro Exemplo

    4238Jos Alberto RodriguesLESI

    XML Schema que torna este documento XML bem formado num documento XML vlido

    O XML auto-descritivo, como vemos.

    7.3. Tipos SimplesOs tipos simples (simple types) restringem o texto que pode aparecer no valor de um atributo ouno contedo de um elemento textual (um elemento textual contm apenas texto, no temelementos filho nem atributos.H 4 tipos primitivos para sequncias de caracteres (texto):

    stringanyURINOTATION uma declarao de um link para um documento externo num formato diferente do XMLQName um nome qualificado; segue as regras do nome de um elemento ou atributoExistem 3 tipos primitivos para dados numricos:decimalfloat um n de vrgula flutuante de preciso simples (32 bits)double - ... dupla preciso (64 bits)Suporta 9 tipos de dados para representao de datas e dados temporais:durationdateTime um instante preciso no tempodate uma data especfica

    time um isntante no tempo (hh,mm,ss)gYearMonth um ano e um msgYear um ano

  • 7/29/2019 XML_Livro_resumo

    20/42

    gMonthDaygMonthgDayEx. 49 (parte)...123

    Ex. 50 (parcial) tipos de dados numricos10.25129.1E-1Ex. 51 (parcial) tipos de dados temporaisuma instncia do tipo duration obedece norma ISO 8601 e tem o seguinte formato:PnYnMnDTnHnMnS, em que n um n, P um designador que indica que o contedo da stringcorresponde a um perodo, T o separador da data e do tempo em horas. ex:O perodo associado ao atributo durao corresponde a 11 anos, 7 meses, 9 dias, 0 horas, 23minutos e 3,5 segundos.O tipo date tem a forma yyy-mm-dd. Instanciando ex.

    7.4 Tipos CompostosA declarao de um tipo composto usada para definir um elemento do tipo estruturado, isto ,permite especificar quais so os elementos filho, como se compem esses filhos, a cardinalidadedos elementos filho, os atributos, a obrigatoriedade dos atributos, etc.regra: Se um elemento tem elementos filho ou atributos, ento um elemento do tipo composto.Forma elegante e verstil de definir o nosso ex. inicial usar separadamente um tipo de dadosabstracto.

    Isto torna possvel algumas funcionalidades importantes:- possvel declarar mais elementos como sendo do tipo abstracto definido sem repetir o bloco dasua definio- possvel, em qualquer momento, alterar o tipo abstracto e essas alteraes sero propagadas.

    7.4.1. Contedo de um Tipo CompostoPara se especificar um tipo composto como uma combinao de outros elementos, tem de se

    usar um dos 3 operadores de composio disponveis: sequence, choice e allsequencepermite especificar um contedo formado por vrios elementos que tm de obedecer a umaordem fixa.choice permite especificar um contedo formado por um elemento escolhido arbitrariamenteentre um conjunto de elementos alternativos.all todos os elementos contidos num compsitor all podem aparecer uma ou nenhuma vez epodem aparecer em qualquer ordem. mas tem algumas restries: s pode aparecer no nvelmais elevado eos elementos nele contidos tm de ser todos de um tipo simples.Ex.52 submisso electrnica de trabalhos prticos verso 2Vamos, ento, registar os dados de uma submisso electrnica de um trabalho prtico atendendoaos seguintes considerandos: a equipa de trabalho constituda por um conjunto de alunos at aomximo de 3; alm dos alunos, dever ser registada a data e hora da submisso e o nome doficheiro enviado.

  • 7/29/2019 XML_Livro_resumo

    21/42

    De acordo com este XML Schema, o documento XML seguinte representa uma instncia de umasubmisso electrnica

    4238Jos Alberto RodriguesLESI

    4140Jos Carlos RamalhoLESI

    4156Paulo Jorge DominguesLESI

    ZXcomplier.zip1986-03-26T16:05:13

    7.4.2. Especificao de OcorrnciaO XML Schema possui um mecanismo que permite especificar o n de ocorrncias de umdeterminado elemento. implementado com 2 atributos: minOccurs e maxOccurs.Com estes atributos, os seus pares de valores podem corresponder aos operadores de ocorrncianum DTD:

    http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema
  • 7/29/2019 XML_Livro_resumo

    22/42

    minOccurs=0, maxOccurs=1 torna o elemento opcional (? no DTD)minOccurs=0, maxOccurs=unbounded 0 ou mais vezes (+ no DTD)minOccurs=1, maxOccurs=unbounded 1 ou + vezes (+ no DTD).no Schema anterior era s pr e assim era escusado repetir 3 vezesa mesma coisa A ausncia do minOccurs significa, por omisso, 1. O valor por omisso do maxOccurs o valorde minOccurs.

    7.5. Tipos Simples Derivados (a partir de um tipo simples primitivo existente)especifica-se utilizando um mecanismo de restries.Ex 53 o dia do ms

    e j podamos declarar elementos ou atributos do tipo:e perante instncias do tipo 43 a validao daria erro.Estas restrio designada de domnio ou intervalo.Um operador de restrio tem a forma de um elemento XML e contm um atributo de nome valueonde especificado o valor para arestrio correspondente.Enumerao de alguns operadores de restrio existentes no XML:minInclusive fechadominExclusive semelhante mas abertomaxInclusivemaxExclusiveLength permite fixar o tamanho de um contedo textualpattern permite especificar uma expresso regular a que o contedo dos lementos associados

    ao tipo deve obedecerenumeration permite especificar cada um dos valores de uma lista fixa de valores de um tipoenumerado.Combinaes so infinitasex. 54 Tipo simples derivado: o n de telefonerestries:- os ns tm todos 9 dgitos; so todos da zona de Braga; hfen a separar dgitos de zona dosoutros. claramente uma restrio de formato, pelo que se deve usar o operador pattern, que um dosmais poderosos:

    Outro dos mais usados o EnumerationEx. 55 o dia da semanaEste tipo de restrio em que se quer limitar o contedo de um elemento a um dos valorespredefinidos de uma lista, chama-se restrio por enumerao.

    7.6. Atributos

  • 7/29/2019 XML_Livro_resumo

    23/42

    Como j foi discutido nos cap. 3 e 4, um documento XML tambm pode ter atributos que visamcaracterizar os elementos aos quais se aplicam.Em XML Schema, um atributo definido de modo semelhante ao de um elemento. as principaisdiferenas so:- no pode conter elementos ou atributos filho- sempre de um tipo simples (+ imp. tipo primitivo ou derivado pelo utilizador)- No ordenado

    Um elemento que tenha atributos do tipo composto.ex 56 Submisses (verso 3)Pretende-se acrescentar um atributo ao elemento aluno para indicar o seu estatuto: ordinrio,trabalhador-estudante ou militar:

    7.6.1. Ocorrncia de AtributosPor omisso opcional.Para especificar o tipo de ocorrncia de um atributo, recorre-se ao atributo use do XML Schema,que pode ter um dos seguintes valores:- required o atributo tem de estar presenta- optional opcional ( o valor por omisso)- prohibited o atributo no pode aparecer, dever ser omitido

    7.6.2. Restries ao valor de um atributo.

    Para alm do default, podemos especificar que o valor do atributo deve ser o igual ao prescrito noschema, quer o atributo esteja presente ou no na instncia documental, podemos, em vez dedefault, usar fixed, que tem uma utilidade um pouco marginal. default e fixed so conhecidos comorestries ao valor de um atributo, pois restringem os valores que um determinado atributo podeter.

    7.6.3. Restries ao tipo de um atributoPor ex. para indicar que um determinado atributo s pode ter valores num determinado intervaloou que o seu valor ter de pertencer a uma lista de valores predefinida.Ex. 57 Restries ao tipo de um atributo...

  • 7/29/2019 XML_Livro_resumo

    24/42

    7.7. Elementos VaziosNo tem contedo textual nem elementos filho. S pode pois conter atributos, caso contrrio nopassa duma simples marca, o que raro.Ex. 59: Declarao de Elementos Vazios 2 caso mais comum.Pretende-se especificar um elemento que assinale a incluso de uma imagem num documento.Para isso vamos especificar um elemento imagem com atributos path e formato:

    7.8. Elementos de Contedo Misto uma combinao de elementos filhos e texto. A necessidade quando um autor temnecessidade de associar um significado ou uma nfase especial a um bocado do texto.Por ex. no caso do verso para especificar nomes e lugares, vimos que no DTD se fazia: pelo que no era possvel restringir nem a ordemnem o n de ocorrncias.Num XML Schema teremos:

    Ex. 60 Elementos de contedo mistoVoltando ao caso das submisses electrnicas, o sistema devia responder com uma mensagemtpica, com restries de ordem (nome, ttulo e data-hora) e apenas 1 vez. Ento:

    7.9 Contexto: Elementos Globais versus Locais- Declaraes de elementos globais so filhas do elemento raiz schema- Declaraes de elementos locais esto aninhadas algures na estrutura de um schema e noso filhas directas do elemento schema.Se for declarado globalmente qualquer outro elemento do tipo composto pode usar aqueladeclarao criando uma referncia para ela, para evitar repeties em documentos que contmblocos estruturais repetidos.Ex. 61 Declaraes de elementos globais e sua reutilizao

  • 7/29/2019 XML_Livro_resumo

    25/42

    Nas submisses o bloco estrutural aluno repete-se. A soluo at agora era declarar um tipoabstracto Taluno. A declarao de um elemento global Aluno permite:

    No XML Schema no h indicao explcita do elemento raiz e todos os elementos irmosdeclarados sob o elemento schema so potenciais razes de instncias documentais desse

    schema. O anterior garante a validao de documentos que servem de registo de submisseselectrnicas, mas tambm garante a validade a documentos que contenham dados de um aluno.Pode-se portanto concluir que a utilizao de elementos globais tem algumas utilidades: permite areutilizao desses elementos, permite validar parcialmente um documento e permite, quandolevada ao exagero, ter vrios tipos de documento especificados no mesmo schema.O que vimos permite construir schemas para 75% dos problemas que podem surgir.

    7.10 Exemplos: os schemas Agenda e Poema correspondem aos DTDs de 5.2.2.Vamos usar, como descrevemos, tcnicas de modularidade, usando tipos abstractos paramodularizar e a seguir uma metodologia top-down. depois h uma nova soluo com elementosglobais.Exemplo 62: A agenda de contactos com tipos de dados abstractos

    attributeFormDefault=unqualified>

    http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema
  • 7/29/2019 XML_Livro_resumo

    26/42

    minOccurs=0 maxOccurs=1/>

    Schema da Agenda com Elementos Globais

    PARTE II XSLO XML cada vez mais usado para estruturar e representar informao, quer em aplicaes web,quer em aplicaes ditas empresariais. A beleza do XML reside na sua simplicidade, um formatotextual (e, assim, independente de paltaformas) e extensvel (permite sempre acrescentar novasdescries para a informao em causa). Fornece, pois, uma maneira de descrever a informaosem nenhuma preocupao sobre a utilizao final que se quer dar a essa informao, criandouma separao entre contedo e forma.

    Mas um documento XML, um texto anotado, por si s, no apropriado para ser lidooumanipulado por quem no est interessado na estrutura. Para distribuir informao no formatoXML, necessrio preservar o seu contedo fazendo desaparecer as marcas, ou anotaes,substituindo-as pela formatao ou transformao apropriada; por ex., T pode sertransformado em T para poder ser visionado num browser HTML. A norma XSL eXtensible Stylesheet Language foi desenvolvida para dar resposta a este problema.Nesta segunda parte do livro, discutida uma famlia de normas do World Wide Consortium(W3C) derivadas de uma proposta inicial para uma linguagem de especificao de estilo chamadaXSL. contudo, durante a sua incubao, esta proposta dividiu-se em 3:A primeira, XPath, define um mtodo de localizao de informao em documentos XML, e temdiversas utilizaes nomeadamente, na transformao e an formatao.A segunda, XSLT (XSL Transformations), fornece uma metodologia para transformar documentosXML em outros formatos de dados, incluindo linguagens de formatao.E, finalmente, XSLFO (XSL Flow Objects), ou simplesmente XSL, usada para especificar aforma pretendida para os documentos XML.

  • 7/29/2019 XML_Livro_resumo

    27/42

    Estas 3 normas juntas constituem um meio de formatar documentos XML.O XSLT atingiu a maturidade h j algum tempo e devido ao atraso do XSLFO, comeou por serusado para converter documentos XML em HTML, para efeitos de apresentao e de distribuiode contedos XML. Devido ao grande n de aplicaes que so desenvolvidas diaraiamente nesteparadigma, este ser o cerne desta segunda parte do livro.

    CAP. 8 O PASSADO: DSSSL E CSS

    Como j foi referido, o XSL surge como uma evoluo de duas outras tecnologias j existentes: oDSSSL Document Style Semantics and specification Language e o CSS Cascading styleSheets.8.1. DSSSLComo j vimos, o XML especifica apenas a estrutura, no fornece qualquer facilidade para aespecificao de aparncia visual ou formato. Ento, cada editor tinha a sua linguagem prpriapara associar estilo aos documentos XML. A portabilidade estava assim ameaada.Foi pois na tentativa de normalizar o que faltava que o comit ISO lanou a norma ISO/IEC1079:1996, hoje conhecida como DSSSL, que foi primeiro penasod para o SGML (antecessor doXML). O DSSSL muito complexo, havendo pouca literatura. uma linguagem de especificao na qual se podem distinguir 4 sublinguagens: 2 principais parapreparar o documento final e format-lo:- uma para especificar a transformao de um ou mais documentos XML, num ou maisdocumentos XML- uma para especificar a aplicao de atributos de formatao a um documento XML (nicaterminada)e 2 auxiliares:- uma de interrogao (Standard document Query Language SDQL), que se usa para identificare seleccionar partes de um documento XML- uma funcional de clculo de expresses (subconjunto da Scheme)8.1.1. Modelo conceptualCompreende 2 partes (independentes):- uma especificao de transformao h situaes em que o contedo do documento final

    pretendido difere do original, um subconjunto ou corresponde ainda a uma reordenao docontedo inicial (XML -> XML)- uma especificao de estilo que vai dirigir a formatao (XML -> RTF, PDF, HTML, Postscript,etc.) definio de matgens, tipo de letra, tamanho, etc. embora haja muita cois j estabelecidapor cada processador.8.1.2. Linguagem de TransformaoPermite especificar processos de modificao (alterao/criao). Pode compreender operaescomo:- Rearranjo de estruturas (reordenao ou agrupamento). Ex. registo de alunos que se quer agoraordenado por nome de aluno- Construo de novos elementos relacionados com outros elementos j existentes o analistaespecifica como os novos se obtm dos existentes ex. notas de rodap agrupadas e colocadas

    no fim do cap.- Associao de novas caractersticas a sequncias especficas de contedo ex. 1 pargrafo decap. pode ter incio com estilo diferente- Associao de novas caractersticas a componentes especficos de contedo8.1.3. O Processo de TransformaoO processo de transformao, XML Tree Transformation Process (XTTP) compreende as etapas:construo da rvore Documental Abstracta (ADA); transformao propriamente dita; gearo deXML.Construo da rvore Documental Abstracta ADA feita por um parser. A estrutura pode ser bastante complexa. No entanto conclui-se que aestrutura mnima para representar um documento estruturado seria a seguinte (usa-se o XMLSchema como notao na especificao formal da ADA)....

    CAP. 9 XSL: eXtended Stylesheet Language

  • 7/29/2019 XML_Livro_resumo

    28/42

    O XSL comeou a ser desenvolvido em 1997 e baseou-se em 2 normas existentes, DSSSL eCSS; foi partido em 2 normas que seguiram percursos diferentes: o XSLT e o XLSFO.O XSLFO define um conjunto de objectos grficos atravs dos quais possvel especificar como que os dados XML devem ser apresentados. Um processador de XSLFO, tambm chamado deformatador, usa esses objectos grficos para converter a informao para o formato final, por ex.PDF. Ainda tem pouca maturidade e por isso pouco usada.O assunto do resto do livro pois o XSLT. Na verso 1.0, juntamente com uma norma acessria,

    o XPath tornaram-se numa recomendao W3C em fins de 1999 e, desde ento tem sido aplataforma para a transformao de documentos XML.O XPath permite navegar e localizar elementos em documentos XML e uma parte vital doprocesso de transformao, permitindo-nos especificar que partes do documento queremostransformar. semelhana do DSSSL, o XSLT usado para transformar informao referente a documentosXML, de uma estrutura para outra, o que tem como fins:- A criao de novos contedos- A converso da ADA noutra ADA com estrutura diferente- A extraco de partes do contedo- A execuo de queries estruturais sobre o contedo dos documentos XMLO XSLT tambm muito usado para transformar os documentos XML em documentos numformato apropriado para apresentao ou distribuio, tais como:- Gerao de HTML, CSS, JavaScript, e outros, para distribuir contedos na web- Gerao de VRML ou VoiceXML, para browsers no convencionais- Gerao de representaes grficas para o contedo como SVG9.1. Folhas de Estilo XSLTUma folha de estilo XSL composta por um conjunto de modelos ou templates e instruesbaseadas em expresses XPath que indicam ao processador de XSLT como aplicar as templatesaos nodos do documento XML a transformar. Para cada template, o processador percorre odocumento at encontrar um nodo seleccionvel pela template. A seguir aplica as instrues datemplate ao contedo do nodo. O resultado pode ser um novo documento XML, HTML ou textosimples.

    9.2. XSLT: Modelo de ProcessamentoPermite 2 abordagens na especificao da transformao pretendida: funcional ou declarativa, noqual o processador reage aos elementos XML medida que os for encontrando, e outra,imperativa, na qual o processador explicitamente instrudo para realizar uma srie de aces.Ex. 75: Duas abordagens alternativas ao processamento de XMLConsiderando o ex. da submisso electrnica, pretende-se converter esse documento numapgina HTML.Seguindo uma abordagem declarativa, a descrio da transformao :- Quando o elemento submisso for encontrado, gera-se o elemento h2 com o contedo Registoduma Submisso Electrnica dum TP e, a seguir, processam-se os elementos pertencentes aocontedo de submisso.- Quando o elemento equipe for encontrado, gera-se o elemento h3 com o contedo Work Team e

    gera-se um elemento table com o contedo processado de equipe, depois de se ter gerado umcabealho com um elemento tr e 3 elementos th- Quando o elemento aluno for encontrado, gera-se o elemento tr com o contedo processado dealuno- Quando o elemento numero for encontrado, gera-se o elemento td com o contedo processadode numero; idem para nome e curso.- Quando o elemento fich-env for encontrado no se faz nada (o contedo deste elemento filtrado)- Quando o elemento data-hora for encontrado, gera-se o elemento h3 com o contedo Data eHora: e coloca-se o contedo do elemento.Na abordagem imperativa:- coloca na sada um elemento h2 com o contedo Registo duma Submisso Electrnica dum TP- coloca na sada um elemento h3 com o contedo Work Team seguido de um elemento table, porsua vez, seguido dum cabealho com um elemento tr e 3 th- Para cada elemento aluno, gera-se o elemento tr com o seguinte contedo:

  • 7/29/2019 XML_Livro_resumo

    29/42

    - um elemento td com o contedo de numero; idem para nome e curso.- Coloca na sada um elemento h3 com o contedo Data e Hora: seguido do contedo doelemento data-hora.Conclui-se do exemplo que a abordagem declarativa mais reutilizvel.9.3. FerramentasActualmente h muitos processadores de XSLT, destando:saxon completo, pequeno e rpido

    xt inclui algumas fune sextra como possibilidade de vrios ficheiros de sadasablotron desenvolvido em C++Xalan Open source Apache9.4. Utilizao do XSLO XML por si s no nos permite implementar aplicaes ou tirar partido da informao nelearmazenada. Temos de conseguir manipular, interrogar, transformar e distribuir essa informao.Com o XSL possvel:- converter documentos entre diferentes formatos XML- formatar contedos XML para distribuio- Integrar o processamento de XML no servidor de aplicaes web- utilizar XSLFO e CSS para produzir documentos de alta qualidade a partir de documentos XML- interrogar e seleccionar partes do contedo de um documento XML.

    CAP. 10 XML Path Language (XPath)Vimos que as transformaes XSLT so determinadas pela estrutura lgica do documento XML(ADA) que se quer transformar e pelas templates na stylesheet XSLT. As expresses XPathincludas nas templates so responsveis pela definio de qual a template que aplicada adeterminado nodo.Em termos funcionais os objectivos do XPath so:- Seleco de nodos para processamento- Especificao de condies permitindo diferentes modos de processamento do mesmo nodo- Gerao de texto a ser includo na rvore final (ADA resultante).O XPath uma sintaxe usada para descrever partes de um documento XML. possvel ento

    referenciar o primeiro elemento aluno, o atributo regime de aluno, todos os elementos nome cujocontedo contm Jos, etc. Uma stylesheet XSLT usa expresses XPath em 2 atributos, match eselect, que estoa ssociados a vrios elementos do XSLT e que permitem guia a transformao.O XPath foi desenvolvido para ser utilizado como valor de um atributo num documento XML. Asintaxe uma mistura da linguagem de expresses com a linguagem para especificao docaminho numa estrutura de directorias. Adicionalmente fornece um conjunto de funes paramanipulao de texto, Namespaces e outras funcionalidades.Outro pormenor importante que o XPath trabalha com a verso do documento XML processadapelo parser, isto , com a s entidades de texto expendidas e as seces especiais de texto(CDATA) convertidas para texto.10.1. O Modelo de Dados do XPathDo ponto de vista do XPath, um documento XML uma ADA, ou seja, uma rvore de nodos. Para

    o XPath, h 7 tipos de nodos:- o nodo raiz (um por documento)- nodos elemento- nodos atributo- nodos texto- nodos comentrio- nodos instruo de processamento- nodes namespace.

    EX: Usando a verso do poema (ex.35)10.1.1. Nodo Raiz o nodo que contm o documento inteiro. No nosso caso contm o elemento poema. representado por / em XPath. No tem pai e tem pelo menos 1 filho o nodo que representa odocumento. Tambm pode conter comentrios (h 1) e instrues de processamento (no nosso

  • 7/29/2019 XML_Livro_resumo

    30/42

    caso h 1 xml) que estejam fora do elemento que representa o documento, e que so pois filhosda raiz.O valor textual do nodo raiz corresponde concatenao de todos os nodos texto existentes nasua descendncia.10.1.2. Nodos ElementoTodos os elementos so representados por um nodo. No nosso caso poema, titulo, autor, corpo,etc. Os filhos de um nodo elemento podem ser nodos texto, elemento, comentrio e instruo de

    processamento que ocorrem nesse elemento. O valor textual a concatenao dle com os filhos.Como todas as referncias a entidades foram expandidas, no se pode manipular entidadesgerais ou carcter em XPath.10.1.3. Nodos AtributoTem sempre um pai que um nodo elemento. No nosso caso, por ex. o nodo elemento poema pai de um nodo atributo com o nome tipo e valor soneto.Este tipo tem algumas funcionalidades distintas dos outros tipos de nodos:- No so filhos do pai (elemento). Os filhos deste so elementos texto, elemento, cometrio,instruo. Se se quiser seleccionar os nodos atributo tem de se indicar explicitamente, o que djeito e o que se pretende.- Em circunstncias normais o processador cria um nodo atributo para todos os atributosinstancados no documento original e para os atributos que tenham um valor por omissodeclaradao no DTD ou no Schema.10.1.4. Nodos TextoSo os mais simples, apenas contendo o texto do elemento correspondente. Se no documentooriginal existem referncias a entidades estas sero resolvidas antes do nodo ser criado, um nodotexto contm apenas texto puro. No tem irmos na ADA.10.1.5. Nodos Comentrio muito simples. Contm apenas texto. Contm todo o contedo do comentrio original exceptoas marcas 10.1.6. Nodos Instruo de ProcessamentoTem 2 partes, um nome e um valor textual, que tudo o que aparece a seguir ao nome, excepto amarca de fecho ?>

    10.1.7. Nodos namespace raramente usados.10.2. XPath como Selector de NodosO selector uma expresso XPath e esta a utilizao mais comum do XPath em XSLT.10.2.1. ContextoTudo aquilo que se faz em XPath relativo ao contexto. Por analogia, podemos ver a ADA comouma rvore de directorias e o contedo dos seus nodos como ficheiros.10.2.2. Selectores Simples/ no incio, selecciona o nodo raiz da ADA; no meio de uma expresso, funciona apenas comoseparador de 2 nveis da rvore.. representa o contexto actual; selecciona o nodo corrente.. selecciona o pai do nodo correspondente ao contexto actualEstes operadores podem combinar-se em expresses XPath mais complexas. EXpls:

    /poema/corpo/quadra selecciona todos os nodos do tipo quadra que so filhos de nodos corpo,que so filhos do nodo poema (s h um, o elemento raiz do documento), que, por sua vez, filho do nodo raiz da ADA (/)../verso/nome../titulo10.2.3. Selectores Relativos e Selectores AbsolutosA expresso absoluta facilita a vida ao processador de XSL, mas complica a vida ao programadordificultando a reutilizao. A relativa o contrrio, e mais universal (por ex. aplica-se aos ternose quadras do nosso poema)10.2.4. Seleccionar: Para Alm de Elementos (tb. se pode ter em conta o contexto)Seleco de AtributosUsa-se o carcter @ como prefixo do nome do atributo. Ex. /poema/@tipo.Seleco do Texto dum ElementoUsa-se uma funo selectora do XPath de nome text() se o nodo for intermdio corresponde concatenao do texto de todos os filhos. Ex.

    mailto:/poema/@tipomailto:/poema/@tipo
  • 7/29/2019 XML_Livro_resumo

    31/42

    /poema/titulo/text()/poema/text()Seleco de Comentrios e Instrues de Processamentocomment() e processing-instruction() - uso espordico.10.2.5. Selectores Complexos1. * selecciona todos os elementos no contexto corrente (s nodos elemento)2. @* selecciona todos os atributos no contexto actual

    3. node() selecciona todos os nodos no contexto actual// no meio de uma expresso significa que entre as 2 barras podem ocorrer zero ou maiselementos. Ex. //verso selecciona todos os versos do poema quer sejam filhos de quadra outerno.Expls:/poema/corpo/*/verso//nome//@*//*//node()//coment()//quadra/text()2 Parte do XPath:10.3. Eixos de NavegaoNo entanto, em muitas aplicaes, necessario seleccionar nodos segundo uma perspectivadiferente da relao pai-filho, como por ex:- Todos os nodos ancestrais do nodo corrente- Todos os nodos descendentes do nodo corrente- Todos os nodos irmos precedentes ( esquerda) ou sequentes ( direita) do nodo corrente.Para isso o XPath disponibiliza um mecanismo eixo de navegao (conceito fulcral do XPath).Ao todo so 13.Podemos afirmar que qualquer expresso XPath usa uma determinada relao (EN) entreelementos para encaminhar a seleco ao longo da ADA. J era nas anteriores mas por ser a

    mais simples pode-se omitir.Para se usar um EN numa expresso indic-se o nome do EN seguido de (::) seguido do nome doelemento que se quer seleccionar. Ex. quadra/verso equivalente a child::quadra/child::verso.ENs:- child Selecciona os filhos do nodo corrente (a omisso corresponde a este eixo). so includosnodos elemento, comentrio, IP e textuais; no atributo nem namespace.- parent selecciona o nodo pai do nodo corrente. Equivale ao ..- self Selecciona o nodo corrente. Equivale ao . self::* = .- attribute Selecciona os atributos do nodo corrente. equivale ao @- ancestor - ancestor-or-self- descendant mesmas limitaes do child

    - descendant-or-self- preceding-sibling Selecciona todos os nodos que tm o pai do nodo corrente e que aparecemantes do nodo corrente no documento XML.- following-sibling- preceding selecciona todos os nodos que aparecem antes do nodo corrente no documento,excepto os nodos ancestrais e os nodos atributo e namespace- following - ... descendentes ...- namespace selecciona os nodos namespace do nod correntever expls. pg. 215 e 216 embora frente apaream integrados em ex. prticos.10.4. Predicados um filtro que restringe os nodos seleccionados por uma expresso XPath. So avaliados emtempo de execuo e do como resultado um valor booleano. Se para um determinado nodo, oresultado da avaliao do predicado for verdadeiro, esse ndo seleccionado.ex. //quadra/verso[2] selecciona o 2 verso das quadras do poema.

  • 7/29/2019 XML_Livro_resumo

    32/42

    Nmeros predicado constitudo apenas por um n selecciona os nodos que tm essa posioparticular.Atributos Um predicado constitudo por uma seleco de atributo verdadeiro se esse atributoexistir no lemento corrente. Ex./poema[@tipo] selecciona o poema mas s se este tiver o atributo tipo instanciado//*[@*] selecciona qualquer elemento que tenha um qualquer atributo instanciadoFunes um predicado pode conter invocaes de funes XSLT (ver prxima seco). Ex.

    quadra[last()] selecciona a ltima quadra do contexto correnteverso[position() mod 2 = 0] selecciona os versos do contexto corrente que se enecontram nasposies pares.Combinadores de Predicados - and or e unio |

    10.5 FunesExistem algumas expresses de seleco que no possvel especificar com os mecanismosdiscutidos at agora. Por isso usam-se funes, que pode ser divididas em 4 categorias:. Funes para manipulao de listas de nodos Realizam clculos sobre a ADA-position() d como resultado um n correspondente posio do nodo na ADA-last() D como resultado um n correspondente ao total de nodos existentes no nvel da ADA donodo corrente- count(xpath-exp) Resultado um n de nodos seleccionados pela expresso XPath.ex.count(//verso) conta o n de versos do poemacount(quadra[1]/ancestor::*) conta o n de ancestrais da 1 quadra, ie, d o nvel da quadra.- id(identificador) d o nodo que tem um atributo do tipo ID com valor igual a identificador. Funes para manipulao de strings para manipular texto- concat(str1,str2,...)- starts-with(str1,str2) retorna um booleano true se str1 comear por str2- contains(str1,str2)- substring(str,num,comp) retorna uma string que se extrai da string argumento comeando naposio num e de comprimento comp.- substring-before(str1,str2) Retorna uma substring da 1, composta pelos caracteres anteriores

    primeira ocorrncia da 2 string do argumento.- substring-after(str1,str2)- string-length(str)- normalize-space(str) Retorna a string arg. mas com os espaos do incio e fim retirados, etodas as sequncias de caracteres brancos no meio da string so substitudos por um nicoespao em branco.- translate(str1,str2,str3) Retorna a 1 com as ocorrncias de caracteres de str2 substitudos pelorespectivo carctyer (na mesma posio) de str3.. Funes Booleanas- boolean(arg) converte o argumento (pode ser qualquer coisa) num valor booleano- not(bool-exp)- true()

    - false()- lang(str)- string(arg) converte o seu argumento, que pode ser de qualquer tipo, numa string. Utilizao:quando aplicada a elemento de contedo vazio devolve falso, o que nos fornece maneira de testarelementos vazios.. Funes Numricasnumber(arg) converte o seu argumento (qualquer tipo) num n. Se arg. for omitido a funo aplicada ao nodo corrente- sum(xpath-exp) Retorna o resultado da soma da converso para n de todos os elementosseleccionados pela expresso argumento. Se um dos nodos tiver um contedo que no seja umn, retorna NaN.- floor(num) - Retorna o maior inteiro menor ou igual ao argumento- ceiling(num)- round(num)

  • 7/29/2019 XML_Livro_resumo

    33/42

    10.6 Exemplos de Expresses XPath//AAA selecciona o nodo filho da raiz com nome AAA/AAA/CCC Selecciona nodos de nome CCC filhos do nodo principal AAA que filho da raiz//BBB Selecciona todos os nodos de nome BBB existentes na ADA//DDD/BBB todos os BBB que seja filhos de CCCs existentes em qualquer ponto da ADA/AAA/CCC/DDD/*todos os nodos filhos de nodos DDD que, por sua vez, so filhos de nodosCCC...

    /*/*/*/BBB todos os nodos BBB posicionados no 4 nvel//* - todos os nodos do tipo elemento existentes na ADA/AAA/BBB[1] - o 1 filho com nome BBB do AAA que filho da raiz/AAA/BBB/[last()] ltimo filho de nome BBB do AAA//BBB[@ident] todos os nodos com nome BBB que tenham um atributo de nome identinstanciado//BBB[@*] todos os nodos com nome BBB que tenham pelo menos um atributo instanciado.//BBB[@ident=b1] todos os nodos com nome BBB que tenham um atributo de nome identinstanciado com valor b1.//BBB[normalize-space(@nome)=bbb] todos os nodos com nome BBB que tenham um atributode nome nome cujo valor normalizado seja igual a bbb//*[count(*)=2] - todos os nodos que tenham exactamente 2 filhos//*[count(BBB)=2] - todos os nodos que tenham exactamente 2 filhos com nome BBB//*[name()=BBB] todos com nome BBB//*[starts-with(name(),B)] cujo nome se inicie por B//*[contains(name(),C] cujo nome contenha o carcter C//*[string-length(name())=3] cujo nome seja constitudo por 3 caracteres.//BBB | //CCC todos da ADA com nome BBB ou CCC/descendant::* - todos os descendentes do n raiz//CCC/descendant::*/DDD todos os descendentes de nodos com nome CCC e cujo nome sejaDDD

    CAP.11 FOLHAS DE ESTILO - construo

    1 discute-se a arquitectura de uma folha de estilo. Depois os vrios elementos XSL com os quaisse constroem as folhas de estilo.11.1. Conceitos GeraisUma folha de estilo essencialmente constituda por um conjunto de modelos (templates)Um modelo constitudo por 2 partes:- um sleccionador de nodos (expresso XPath)- Um bloco de instrues XSL que aplicado aos nodos que vo sendo seleccionados.Um processador de XSL realiza uma travessia da ADA comeando pelo nodo raiz e visitando osfilhos da esq. para a direita. Sempre que visita um novo nodo, o processador verifica se existe nafolha de estilo algum modelo para lhe aplicar. Se existir aplica-o, se no aplica um por omissopara aquele tipo de n.Um conceito muito importante o contexto.

    11.2. Anatomia de Uma Folha de EstiloUma folha de estilo XSL um documento XML. Por issso, deve ser iniciado pela declarao XML.O elemento principal deste tipo de documentos sempre o mesmo e tem o nome de stylesheet.Como pode haver conflito de nomes entre elementos xsl e instncias XML, deve usar-se umnamespace associado ao prefixo xsl. Assim, forma inicial:

    11.2.1. Elementos de Topo filhos de stylesheet por ordem de utilizao normal:- xsl:import permite importar modelos definidos noutras folhas de estilo. A prioridade serinferior. este elemento vazio e s pode aparecer no incio de uma folha de estilo.Ex.

    http://www.w3.org/1999/XSL/Transformhttp://www.w3.org/1999/XSL/Transform
  • 7/29/2019 XML_Livro_resumo

    34/42

    - xsl:include usa-se quando se pretende desenvolver modularmente uma folha de estilo. Ofuncionamento semelhante ao anterior, mas a prioridade atribuda igual e pode aparecer emqualquer ponto.Quando se desenvolve modularmente uma folha de estilo, colocam-se os modelos genricosnuma folha de estilo parte que, depois, includa por quem precisar de utilizar aqueles modelos.A sintaxe :

    - xsl:strip-space permite especificar os lementos aos quais deve ser retirado o espao embranco a mais. Tem um atributo de nome elements cujo valor dever ser uma lista de nomes deelementos separados por um espao simples. de topo -> s filho de stylesheet.- xsl:preserve-space- xsl:output permite configurar o resultado final da transformao. um lemento vazio e toda ainformao relativa configurao colocada em atributos.

  • 7/29/2019 XML_Livro_resumo

    35/42

    pattern-separator=carcter />Uma instncia deste elemento permite configurar o modo de funcionamento da funo format-number, que tem a sintaxe:format-number(num,string1,string2?)string1 o padro que especifica o formatostring2 opcional e corresponde a um nome(atributo name) de um elemento xsl:decimal-format- xsl:text este elemento coloca o seu contedo na sada

    - xsl:value-of calcula o valor textual da expresso XPath especificada no atributo select e envia-opara a sada.- xsl:namespace-alias especificar um nome alternativo para o namespace sepre que no possaser usado. A utilizao mais comum surge em folhas de estilo que do origem a outras folhas deestilo (aumentar o nvel de abstraco). um elemento de topo, que tem 2 argumentos:stylesheet-prefix o prefixo que ser usado na folha de estilo e que est associado a umnamespace alternativo.result-prefix o prefixo pelo qual ser substitudo quando estiverem a ser enviados para a sada.ver ex. pg. 232.- xsl:attribute-set permite definir uma coleco de atributos que pode depois ser aplicado nacriao de um elemento na sada. sintaxe:

    ...

    Ex de folha de estilo que especifica uma coleco de atributos para elementos imagem que depois utilizada na criao de um elemento IMG do HTML

    012060

    - xsl:attribute permite especificar atributos. Tem um atributo de nome name com o qual se defineo nome do atributo e o seu contedo define o valor do atributo.- xsl:use-attribute-sets=identificador Este atributo indica que se querem colocar neste ponto osatributos definidos na coleco identificada por identificador- scr=@url - As chavetas, quando utilizadas dentro de um atributo, indicam ao processador que

    se quer calcular uma expresso XPath. Neste caso, o clculo da expresso retorna o valor doatributo url do elemento imagem na instncia documental.- xls:variable permite definir uma varivel, que em XSL so constantes. As declaradas comoelementos de topo so globais, as outras locais. Para se aceder ao valor duma varivel coloca-se$ antes do seu nome. Pode ser definida de 2 maneiras:- Com este elemento vazio e usando o atributo select para definir o seu valor atravs de uma exp.XPath...

    http://www.w3.org/1999/XSL/Transformmailto:%7B@url%7Dmailto:scr%3D@urlmailto:scr%3D@urlhttp://www.w3.org/1999/XSL/Transformmailto:%7B@url%7Dmailto:scr%3D@url
  • 7/29/2019 XML_Livro_resumo

    36/42

    - Se no for vazio, o seu contedo define o valor da varivel:...

    - xsl: param permite especificar o nome e o valor por omisso de um parmetro que, mais tarde,poder ser usado por um modelo. O seu valor pode ser definido da mesma maneira que o valorde uma varivel. Tb. h globais e locais.Ex. 77 Passagem de valores da linha de comandoEsta folha de estilo imprime o nmero que lhe passado na linha de comando e faz isso qualquerque seja o documento a que aplicada.

    esta folha de estilo quando invocada na linha de comando com o saxom d o seguinte resultado:saxon rel.xml par-linha-com.xsl num=123123

    - xsl:template com este tipo de elementos que se especifica o conjunto de aces que se querver realizado por uma folha de estilo. Agrupa um conjunto de instrues (elementos xsl) quedevem ser aplicados aos nodos seleccionados pela expresso XPath especificada num dos seusatributos. sintaxe:... Instrues ...

    name permite associar um nome ao template para usar mais tarde como uma subrotina.

    mode h muitos problemas cuja soluo implica realizar vrias travessias ao documento.Quando uma folha de estilo contm a especificao de mais do que uma travessia (mais que umconjunto de modelos) necessrio saber que modelo pertence a que travessia. A cada travesia associado um identificador e todos os modelos pertencentes a uma determinada travessia tm oatributo mode instanciado com o identificador dessa travessia.

    Vamos agora discutir a parte comportamental: como que uma folha de estilo executada ecomo que se pode controlar e alterar essa execuo.11.2.2. Modelosex: A Folha de Estilo mais simples

    http://www.w3.org/1999/XSL/Transformhttp://www.w3.org/1999/XSL/Transformhttp://www.w3.org/1999/XSL/Transformhttp://www.w3.org/1999/XSL/Transform
  • 7/29/2019 XML_Livro_resumo

    37/42

    Qual o resultado quando aplicado a um documento? No string vazia. o contedo textual dodocumento XML. Isto deve-se ao facto de no existir nenhum modelo definido nesta folha de estiloe sempre que no h, para qualquer nodo, a norma XSL prev a aplicao dum modelo poromisso.Modelos Por Omisso- Modelo para nodos do tipo elemento e raiz qualquer que seja a travessia, aqueles ns sovisitados.

    Modelo para nodos do tipo texto e atributo copia o texto dos nodos textuais e os valores dosatributos para a sada. Para que este modelo seja aplicado, a travessia dos respectivos nodos terde ser explicitamente invocada.

    Modelo para nodos do tipo comentrio e instruo de processamento no faz nada, tem acode filtragemModelos para nodos do tipo namespace idemimp.- xsl:apply-templates se quisermos continuar a processar os nodos filho temos de o indicarexplicitamente, caso contrrio ser filtrdao. sintaxe:

  • 7/29/2019 XML_Livro_resumo

    38/42

    ndice de EntradasEntradas

    by jcr 2002

    // especificou-se o modelo principal que coordena a execuo dos restantes modelos. invocadaa travessia que ir gerar o ndice de acesso directo s entradas e desencadeada a travessia.

    Grupo:

    [Email:

    Telefone:

    mailto:%7B@gid%7Dmailto:%7B@id%7Dmailto:%7B@gid%7Dmailto:%7B@id%7D
  • 7/29/2019 XML_Livro_resumo

    39/42

    // No modelo que trata as referncias vai-se buscar a informao da entrada referenciada. Utiliza-se a tabela de acesso directo i-entrada para aceder ao nodo da entrada referenciada e de lextrair a informao pretendida.

    [a href=#{@id}>

    [a href=#{@gid}>

    //Estes 3 ltimos modelos criam o ndice no incio da Pgina 39 de 42

    11.3. Elementos de ControloO XSLT tem 3 elementos que podem modificar a ordem de execuo de uma folha de estilo.11.3.1. xsl:if como um if normal

    Se o resultado da expresso for verdadeiro ento os elementos filhos de xsl:if so processados.Ex.

    O nmero de entradas j maior que 100 Entradas =

    A avaliao de test tem de ser booleano. Regras:- number (nmeros) zero, neagtivo ou NaN falso- node-set (conjunto de nodos) um conjunto vazio falso- string string vazia falso11.3.2. xsl:choose

    equivalente instruo case ou switch. Pode tb. servir para implementar if-then-else11.3.3 xsl:for-each uma alternativa ao elemento xsl:apply-templates, com uma diferena a nvel do paradigma que imperativo.

  • 7/29/2019 XML_Livro_resumo

    40/42

    O resultado da transformao seria:

    IntroduoAnotao de DocumentosXMLXSL

    11.4. Ordenao de ElementosEm alguma aplicaes, necessrio visitar os nodos documentais por outra ordem tal como aordem alfabtica de um determinadao atributo ou subelemento. Para isso preciso reorganizar alista de nodos que foram seleccionados.

    Pode aparcer como filho do elemento xsl:apply-templates ou do elemento xsl:for-each.Por omisso do atributo data-type a ordem alfabtica, que no d para ns.EXEMPLO 81: O Ficheiro de AlunosConsidere o contexto em que uma disciplina leccionada a alunos de vrios cursos. A avaliao

    contnua dos alunos foi registada num nico documento XML com a seguinte forma:

    Processamento Estruturado de documentos 2001

    Jos, Carlos [email protected]://www.di.uminho.pt/~jcr/

    JOSE ALVES DE CASTRO23187LMCC16

    BRUNO MIGUEL PEREIRA PINTO24806LESIsn

    FILIPE ALEXANDRE DA SILVA MARTINS24816

  • 7/29/2019 XML_Livro_resumo

    41/42

    LESI18

    ALVARO JOSE DE CASTRO MOREIRA DA SILVA19469LESI

    18

    ANDRE FILIPE AZEVEDO DE SOUSA22639LESI18

    MARIO BENTO AZEVEDO20210LMCC10

    ...

    Para efeitos de registo, necessrio produzir uma listagem dos alunos ordenados por curso edentro do curso por ordem alfabtica de nome. A folha de estilo produzindo uma tablea HTML :

    Avaliao no perodo lectivo 2001/2002

    (ver completo no Altova)Exemplo 82: O Ficheiro de alunos (2)Agora pretende-se uma folha de estilo que produza uma listagem, em texto livre, apenas donmero e nome do aluno, um aluno por linha, e em que os alunos estejam ordenados por nmero.fizeram no saxon. Fazer como exerccio no Altova.Na folha de estilo destacam-se os pontos:- a configurao da sada para texto, atravs do elemento xsl:output;- a template com nome n1 que simplesmente coloca uma mudana de linha na sada e que invocada na template aluno atravs do elemento xsl:call-template- a colocao de um elemento xsl:sort no interior de um elemento xsl:apply-templates com oobjectivo de alterar a ordem natural da travessia da rvore documental.11.5 Tratamento de Referncias/Ligaes

    http://www.w3.org/1999/XSL/Transformhttp://www.w3.org/1999/XSL/Transform
  • 7/29/2019 XML_Livro_resumo

    42/42

    H 3 mecanismos que permitem criar referncias/ligaes entre elementos de um documentoXML.11.5.1. Atributos do tipo IDA mais simples a associao de um at