1 / 41

Tópicos de Sistemas de Informação A

Tópicos de Sistemas de Informação A. Carlos Oberdan Rolim Ciência da Computação. Documento XML. Documento XML válido. Parser. Documento XML inválido. Esquema XML. Validação de documentos XML. Um documento é válido com relação a um dado esquema XML se obdece este esquema.

althea
Download Presentation

Tópicos de Sistemas de Informação A

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação

  2. Documento XML Documento XML válido Parser Documento XML inválido Esquema XML Validação de documentos XML • Um documento é válido com relação a um dado esquema XML se obdece este esquema

  3. Linguagens de Esquemas XML • DTD – Document Type Definition • XML Schema

  4. XML DTD Document Type Definition

  5. O que é ? • A estrutura de um documento XML é definida no Document Type Definition (Definição do Tipo de Documento), que especifica o conjunto de elementos do documento, seus relacionamentos, seus atributos, entidades e o conjunto de tags associadas para marcar o documento.

  6. Função • A principal função do DTD é definir todas as tags que um documento XML pode conter, determinando a ordem em que elas devem aparecer e se são obrigatórias ou opcionais • Define uma gramática para validardocumentos, isto é, conjunto de regras que definem a estrutura do documento • Descreve a estrutura da árvore que pode ser aceita para o documento • A validação compara um documento em particular com uma DTD correspondente • É necessário que um documento seja bem-formado para ser validado

  7. Exemplos de aplicação • registros médicos • enciclopédias • catálogos de produto • jornais • dicionários • contratos • políticas e procedimentos • artigos científicos • ordens de compra • normas/regulamentos • manuais de usuário

  8. Componentes de um documento DTD

  9. Ao realizar a construção do DTD, é necessário que exista um entendimento muito claro do que se pretende armazenar nos documentos XML, ou seja, qual tipo de informação eles vão guardar e todos os outros elementos envolvidos citados anteriormente.

  10. Validação • Com o DTD é possível ao software processador da XML realizar a validação de um documento, verificando se ele foi criado corretamente, segundo os padrões estabelecidos.

  11. HTML x XML • Quando a HTML é utilizada em uma página da Web, não existe a necessidade de realizar uma declaração do tipo de documento, ou seja, atrelá-la a um DTD. Uma vez que suas tags são fixas, estas são controladas internamente pelo próprio browser. • Já o XML, por sua vez, devido a características de permitir a criação de tags, obriga a criação do DTD, para que o browser, ou qualquer outro interpretador XML, possa verificar a validade das tags utilizadas.

  12. DTD XML <!DOCTYPE company [ <!ELEMENT company ((person|product)*)> <!ELEMENT person (ssn, name, office, phone?)> <!ELEMENT ssn (#PCDATA)> <!ELEMENT name (#PCDATA)> <!ELEMENT office (#PCDATA)> <!ELEMENT phone (#PCDATA)> <!ELEMENT product (pid, name, description?)> <!ELEMENT pid (#PCDATA)> <!ELEMENT description (#PCDATA)> ]> <company> <person> <ssn> 123456789 </ssn> <name> John </name> <office> B432 </office> <phone> 1234 </phone> </person> <person> <ssn> 987654321 </ssn> <name> Jim </name> <office> B123 </office> </person> <product> ... </product> ... </company>

  13. Browser validando um documento XML

  14. Formas de declaração do DTD • A definição das regras de um DTD, não necessita estar armazenada obrigatoriamente em um arquivo externo. Ela pode ser interna, ou seja, definida dentro do próprio documento XML, ou ainda uma parte interna e outra externa.

  15. Declaração • Sintaxe: <!ELEMENT nome-do-elemento (lista de elementos e condições)> • Onde: • <!ELEMENT: palavra reservada que indica a declaração de um elemento, tag. A utilização de letra maiúscula na palavra ELEMENT é obrigatória. • Nome-do-elemento: nome da tag. • Lista de elementos: nome de todas as tags que podem ser utilizadas dentro da tag que está sendo declarada. • Condições: caracteres que são utilizados para indicar opcionalidade e obrigatoriedade para as tags.

  16. Caracteres de condições utilizados na declaração dos elementos

  17. Posições dos caracteres de condição • Posições dos caracteres de condição <!ELEMENT cartao (nome, telefone+, email*, website?)> <!ELEMENT livro (titulo, autor, editora, ano)*> <!ELEMENT trecho (ferroviário | aéreo | rodoviário | fluvial)>

  18. Posições dos caracteres de condição

  19. Posições dos caracteres de condição

  20. Variações na declaração dos elementos *PCDATA = Parsable Character Data

  21. Variações na declaração dos elementos

  22. Atributo no documento DTD • Sintaxe ou então <!ATTLIST elemento atributo1 tipo valor_default> <!ATTLIST elemento atributo2 tipo valor_default> <!ATTLIST elemento atributo1 tipo valor_default atributo2 tipo valor_default>

  23. Atributo no documento DTD <!ATTLIST automovelmarca NMTOKEN #IMPLIED > <!ATTLIST automovelmodelo CDATA #FIXED "1000"> <!ATTLIST automovelanoNMTOKEN #REQUIRED > <!ATTLIST automovelmarca NMTOKEN #IMPLIED modelo CDATA #FIXED “1000" ano NMTOKEN #REQUIRED>

  24. Tipos de dados • CDATA (character data): representa qualquer texto. Pode conter espaços, pontuação, etc. • NMTOKEN (name token): caracteres alfanuméricos. Não pode conter espaços. • NMTOKENS:representa um ou mais NMTOKEN separados por espaços. • ID:tem que conter um nome que seja unívoco no documento. • IDREF:é referência para um ID. • IDREFS:lista de elementos IDREF.

  25. CDATA • O valor de um atributo do tipo String é uma cadeia de caracteres de qualquer tamanho • Ex.: <!ATTLIST livro titulo CDATA> Definição do atributo nome<livro titulo=“Data replication”/> Exemplo válido de elemento produto

  26. ID • Os IDs identificam unicamente elementos individuais em um documento • Todos os valores usados para IDs em um documento devem ser diferentes • Os elementos podem ter um único atributo ID • O valor de um atributo do tipo ID deve ser único em um documento XML a fim de que o documento seja válido • Ex.: <!ATTLIST livro ISBN ID>  Definição do atributo codigo<livro ISBN=“123”/> Exemplo válido de elemento produto

  27. IDREF • O valor de um atributo IDREF deve ser o valor de um único atributo ID algum elemento no documento • Ex.: <!ATTLIST livro bib IDREF>  Definição do atributo <livro bib=“123”/>  Documento válido

  28. IDREFS • É uma variação do tipo IDREF • O valor de um atributo IDREFS pode conter valores IDREF múltiplos separados por espaços em branco. • Ex.: <!ATTLIST livro bib IDREFS>  Definição do atributo <livro bib=“123 456”/>  Documento válido

  29. Valores default • #REQUIRED • preenchimento obrigatório para o atributo.<!DOCTYPE livro [<!ELEMENT livro EMPTY><!ATTLIST livro titulo CDATA #REQUIRED]><livro titulo = “Data Replication”/> • #IMPLIED • o atributo é opcional.<!DOCTYPE livro [<!ELEMENT livro EMPTY><!ATTLIST livro titulo CDATA #IMPLIED]><livro titulo = “Data Replication”/> • #FIXED • o atributo tem um valor fixo. Não pode se alterado. <!ATTLIST valormoeda CDATA #FIXED “R$">

  30. Entidades • Entidades podem ser usadas para representar caracteres especiais • As entidades também são usadas para referenciar um texto freqüentemente repetido ou alterado • Existem diferentes tipos de entidades: • Entidades gerais ou de parâmetro • Entidades internas ou externas

  31. Entidades gerais e de parâmetro • Entidades Gerais • Referências de entidades gerais podem aparecer em qualquer lugar no texto ou na marcação • Geralmente são usadas como abreviação para um texto • As entidades gerais externas podem referenciar outros documentos em formato que não seja XML<!DOCTYPE manual [<!ENTITY Direitos “<p> Este produto é fabricado pela &companhia;. </p>”><!ENTITY companhia “Intel”><!ELEMENT manual (p)+><!ELEMENT p (#PCDATA)>]><manual><p> Este é o manual da &companhia; </p>&Direitos;</manual>

  32. Entidades gerais e de parâmetro • Entidades de parâmetro • Referências de entidade de parâmetro só podem aparecer na DTD • Existe um caractere extra na declaração antes do nome da entidade • As referências de entidade de parâmetro também substituem o símbolo & pelo sinal %<!ENTITY % boolean “(true|false) ‘false’ “> <!ELEMENT telefone (#PCDATA)> <!ATTLIST telefone preferido %boolean; >

  33. Entidades Internas e Externas • Entidades internas • São armazenadas no documento • Permitem definir atalhos para textos freqüentemente digitados ou textos a serem alterados • Entidades externas • Apontam para um identificador • Referenciam um conteúdo que não faz parte do documento atual • <!DOCTYPE manual [<!ENTITY maria SYSTEM “maria.ent”> <!ENTITY pedro SYSTEM “pedro.ent”><!ELEMENT agenda (item)+>]><agenda>&maria; &pedro; </manual> <item><nome> Maria da Silva </nome><fone> 234.4567 </fone></item> <item><nome> Pedro Soares </nome><fone> 256.8934 </fone></item>

  34. Associação de XML com DTD • Digitar após esta linha <?xml version="1.0" encoding=“iso-8859-1"?> a seguinte declaração: <!DOCTYPE elemento_raiz SYSTEM “nome arquivo"> • Em que: • !DOCTYPE vincula o DTD a um documento • elemento_raiz será o nome do elemento principal do documento XML • nome_arquivo é o nome do arquivo que contém o DTD

  35. Associação de XML com DTD <!DOCTYPE biblioteca SYSTEM “biblioteca.dtd"> • Indica ao processador XML que ele deverá verificar sua validade por meio do arquivo biblioteca.dtd, ou seja, a declaração indica que o DTD do documento presente, cujo elemento principal é “biblioteca”, está disponível no arquivo biblioteca.dtd.

  36. DTD Interno • É possível que se insiram as regras do DTD no próprio documento XML. • As regras devem ser inseridas entre [ e ]. • Externa: <!DOCTYPE biblioteca SYSTEM “biblioteca.dtd"> • Interna: <!DOCTYPE biblioteca[<!ENTITY % tipo “(#PCDATA)”><!ELEMENT biblioteca(livro+) ><!ELEMENT livro (titulo, autor+, paginas) ><!ELEMENT titulo %tipo; ><!ELEMENT autor %tipo; ><!ELEMENT paginas %tipo; ><!ATTLIST livro genero CDATA #REQUIRED >]>

  37. DTD Misto • Podem ser usadas em conjunto: <!DOCTYPE exemplo SYSTEM “biblioteca.dtd" [ <!ENTITY valor“R$"> ]> * Definições internas sobrepõem elementosjá existentes na DTD externa.

  38. Criando um DTD • Avaliar a estrutura do documento XML • Identificar elemento principal/raiz • Identificar elementos filhos

  39. Exercício Criar DTD externo para o seguinte XML e validar o documento

  40. <?xml version=”1.0” encoding=”UTF8”?><!DOCTYPE BOOK SYSTEM “book.dtd”><BOOK> <TITLE> O nome da Rosa </TITLE> <AUTHOR> <FULL_NAME> Umberto Eco </FULL_NAME> </AUTHOR> <ISBN> 01233440 </ISBN> <PUBLISHER>Recordx </PUBLISHER > <VENDOR_LIST> <VENDOR order=”1” availableOnline=”yes”> <NAME> Amazon.com </NAME> <PHONE> (800)555-1212 </PHONE > <PHONE> (800)555-1313 </PHONE > <BOOK_PRICE> $24.95 </BOOK_PRICE > </VENDOR> <VENDOR order=”2” availableOnline=”no”> <NAME> Border’s </NAME> <PHONE> (800)615-1313 </PHONE > <BOOK_PRICE > $22.36 </BOOK_PRICE> </VENDOR> </VENDOR_LIST></BOOK>

More Related