validando documentos xml vânia maria ponte vidal [email protected]
TRANSCRIPT
![Page 2: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/2.jpg)
Validando Documentos XML
Como em banco de dados, XML pode ter uma espécie de “esquema” o qual consiste de um conjunto de regras que definem a estrutura do documento.
Um documento é válido com relação a um dado esquema XML se obdece este esquema
Documento XML
EsquemaXML
Parser
Documento XML válido
Documento XML inválido
![Page 3: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/3.jpg)
Validando Documentos XML
Linguagens de Esquemas XML
DTD – Document Type Definition
XML Schema
![Page 4: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/4.jpg)
DTD - Document Type Definition
<!ELEMENT livraria (livro)+><!ELEMENT livro (titulo,editora, autor+)><!ELEMENT titulo (#PCDATA)><!ELEMENT editora (#PCDATA)><!ELEMENT autor (#PCDATA)><!ATTLIST livro ISBN CDATA]>
@ISBN titulo editora autor autor
StevenTom D.
livro
autor
livro
livraria
1234 Inside XML
New Riders
Jennifer U.
Elemento Raiz
Definição da DTD: livraria.dtd
![Page 5: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/5.jpg)
DTDs
DTD define uma gramática para validar documentos, isto é, conjunto de regras que definem a estrutura do documento
Em uma DTD são definidos: os elementos contidos no documento. os atributos dos elementos as entidades a hierarquia e a ordem desses elementos
![Page 6: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/6.jpg)
DTDs Descreve os elementos e atributos que
podem aparecer em um 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
![Page 7: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/7.jpg)
DTD Exemplo de aplicações de DTD:
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
![Page 8: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/8.jpg)
Exemplo
Definição da DTD : livraria.dtd
<! --Definição de Tipo de Documento--><!ELEMENT livraria (livro)+><!ELEMENT livro (titulo,autor,preco)><!ELEMENT titulo (#PCDATA)><!ELEMENT autor (#PCDATA)><!ELEMENT preco (#PCDATA)>
![Page 9: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/9.jpg)
Declaração da DTD
A DTD pode ser definida de duas formas: Declarada dentro do documento XML
Utilizando a tag <!DOCTYPE> para apontar para um entidade externa
![Page 10: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/10.jpg)
Declaração da DTD
Internamente
Documento – livraria.xml<!DOCTYPE livraria[<!ELEMENT livraria (livro)*><!ELEMENT livro(titulo,autor,preço)><!ELEMENT título (#PCDATA)><!ELEMENT autor (#PCDATA)><!ELEMENT preço (#PCDATA)>]>…Início do documento XML
![Page 11: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/11.jpg)
Declaração da DTD
Documento – livraria.xml
<!DOCTYPE livraria SYSTEM “livraria.dtd”>
Referencia uma entidade externa
![Page 12: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/12.jpg)
DTD
O DTD contém : Declarações dos tipos de elementos Declarações de listas de atributos Declarações de entidade Declarações de notação
![Page 13: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/13.jpg)
Declaração de Elementos Define um novo elemento e especifica o
conteúdo permitido para o elemento. <!ELEMENT livro (título, autor)> O Elemento pode ser vazio (geralmente
usado para imagens). <!ELEMENT imagem EMPTY>
Quando um elemento é composto por somente texto
<!ELEMENT autor (#PCDATA)>#PCDATA = Parsable Character Data
![Page 14: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/14.jpg)
Declaração de Elemento
Elementos com conteúdo Misto: Quando o conteúdo do elemento
possui #PCDATA e outros elementos.
<!ELEMENT título (#PCDATA|tituloPrincipal|subTitulo)>
![Page 15: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/15.jpg)
Declaração de Elementos Controle de Seqüencia
Conector de sequência. Usa o conector “,” EX <!ELEMENT A (B,C,D)>
Conector de Escolha. Usa o conector “|” EX. <!ELEMENT A (B|C|D)>
Ao misturar os conectores, usa-se () <!ELEMENT A (B, (C|D)>
![Page 16: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/16.jpg)
Declaração de Elementos Seqüência de Elementos
O elemento contém os sub-elementos exatamente na ordem especificada pela seqüência.
<!ELEMENT livro(titulo, autor,preco)><livro><titulo>… <autor>… <preco>…
</livro>
<livro><titulo>… <preco>… <autor>…
</livro>
<livro><titulo>… <preco>… </livro>
Ex: Válido Inválido Inválido
![Page 17: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/17.jpg)
Declaração de Elementos
Escolha de sub-elemento somente um dos elementos pode fazer parte do conteúdo do elemento
<!ELEMENT livro(titulo|autor|preco)>
<livro><titulo>… <preco>… </livro>
Inválido
![Page 18: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/18.jpg)
Declaração de Elementos
Controle de Ocorrência: Especifica a quantidade de vezes que um
sub-elemento pode aparecer em um elemento
Opcional (?) Uma ou mais vezes (+) Zero ou mais vezes (*)
![Page 19: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/19.jpg)
Declaração de Elementos (?): Elemento opcional sem repetição
<!ELEMENT livro(titulo, autor?, preco)>
<livro><titulo>… <preco>… </livro>
<livro><titulo>… <autor>…
<autor>… <preco>…</livro>Válido Inválido
![Page 20: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/20.jpg)
Declaração de Elementos
(+): Elemento requerido e com repetição
<!ELEMENT livro(titulo, autor+, preco)><livro><titulo>… <preco>… </livro>
<livro><titulo>… <autor>…
<autor>… <preco>…</livro>Inválido Válido
![Page 21: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/21.jpg)
Declaração de Elementos
(*): Elemento opcional e com repetição
<!ELEMENT livro(titulo, autor*, preco)>
<livro><titulo>… <preco>… </livro>
<livro><titulo>… <autor>…
<autor>… <preco>…</livro>Válido Válido
![Page 22: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/22.jpg)
Declaração de ElementosExemplos:
<!ELEMENT A (B,C?,D+)> Um elemento A contém um elemento B,
opcionalmente seguido por um elemento C seguido de um ou mais elementos D.
<!ELEMENT A (B,C,(D|E)*)> Um elemento A contém um elemento B
seguido de um elemento C, o qual é seguido por zero ou mais elementos D ou zero ou mais elementos E.
![Page 23: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/23.jpg)
Declaração de ElementosExemplos :
<!ELEMENT A (B,C*,D?)> Um elemento A contém um elemento B, seguido por
zero ou mais elementos C, opcionalmente seguido por um elemento D.
<!ELEMENT A (B,(C|D)+,E)> Um elemento A contém um elemento B seguido por
um ou mais elementos C ou um ou mais elementos D. Este elemento é seguido de um elemento E.
![Page 24: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/24.jpg)
Declaração de Atributos Elementos podem ter atributos e são
declarados separadamente dos elementos, em uma declaração de lista de atributos.
<!DOCTYPE livro [<!ELEMENT livro EMPTY><!ATTLIST livro titulo CDATA
#REQUIRED]>
Nome do atributoTipo do atributo
Palavra reservada
![Page 25: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/25.jpg)
Declaração de Atributos #REQUIRED: Atributos que devem estar presentes
cada vez que o elemento é usado. <!ATTLIST autor codigo CDATA #REQUIRED]>
#IMPLIED: Atributos que podem estar ausente cada vez que o elemento é usado. <!ATTLIST autor EMAIL CDATA #IMPLIED]>
Atributos podem ter valor Default<!ATTLIST autor sexo CDATA “F”]><!ATTLIST autor sexo (F|M) “F”]>
![Page 26: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/26.jpg)
Declaração de Atributos Todo atributo tem um tipo. O tipo de um atributo pode ser:
String ( CDATA) Enumerado ID IDREF/ IDREFS ENTITY/ENTITIES NMTOKEN/NMTOKENS
![Page 27: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/27.jpg)
Declaração de Atributos Tipo String Cadeia de caracteres
de qualquer tamanho <!ATTLIST livro titulo CDATA>
Ex : <livro titulo=“Inside XML”/>
![Page 28: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/28.jpg)
Declaração de Atributos Tipo Enumerado O atributo pode assumir
apenas um dos valores especificados na sua declaração
<!ATTLIST livro gênero(ficção|romance|técnico)>
Exemplo válido: <livro gênero=“romance”/>
Exemplo inválido: <livro gênero=“terror”/>
![Page 29: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/29.jpg)
Declaração de Atributos
Tipo ID O valor deste atributo tem que ser único por todo o documento. (identificam unicamente elementos em um documento). <!ATTLIST livro isbn ID/> Ex: <livro isbn=“243”/>
![Page 30: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/30.jpg)
Declaração de Atributos
Tipo IDREF O valor é uma referência para um ID de um elemento.
<!ATTLIST autor livro IDREF/> Ex: <autor livro=“243”/>
![Page 31: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/31.jpg)
Declaração de Atributos
Tipo IDREFS O valor é um conjunto de valores os quais são referências para IDs.
<!ATTLIST autor livros IDREFS/> Ex: <autor livro=“243 567”/>
![Page 32: Validando Documentos XML Vânia Maria Ponte Vidal vvidal@lia.ufc.br](https://reader033.vdocuments.mx/reader033/viewer/2022052704/5706384b1a28abb8238f5ad3/html5/thumbnails/32.jpg)
Exercício Crie uma DTD externa que valide o documento XML
que está relacionado com o catálogo de Cds
<catalogo><cd ano="2002"><titulo>Dança</titulo><artista>Rei do sucesso</artista><gravadora>EMI</gravadora><faixas><faixa>Boa</faixa><faixa>Melhor</faixa></faixas><preco>10.00</preco></cd></catalogo>