Download - Tópicos de Sistemas de Informação A
![Page 1: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/1.jpg)
Tópicos de Sistemas de Informação A
Carlos Oberdan Rolim
Ciência da Computação
![Page 2: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/2.jpg)
Validação de documentos XML
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: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/3.jpg)
Linguagens de Esquemas XML
DTD – Document Type Definition
XML Schema
![Page 4: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/4.jpg)
XML DTD
Document Type Definition
![Page 5: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/5.jpg)
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.
![Page 6: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/6.jpg)
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 validar documentos, 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
![Page 7: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/7.jpg)
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
![Page 8: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/8.jpg)
Componentes de um documento DTD
Componentes Definição
ElementosRefere-se a qualquer tag criada, ou seja, qualquer cadeia de
caracteres contida dentro dos delimitadores < e >.
TagsSão os elementos marcadores que possuem abertura e
encerramento.
AtributosFornece informações extras sobre os elementos e são
inseridos nas tags iniciais de um elemento.
Entidades São variáveis designadas para conter textos ou documentos.
![Page 9: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/9.jpg)
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.
![Page 10: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/10.jpg)
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.
![Page 11: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/11.jpg)
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.
![Page 12: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/12.jpg)
<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>
<!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)>
]>
XML DTD
![Page 13: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/13.jpg)
Browser validando um documento XML
![Page 14: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/14.jpg)
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.
![Page 15: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/15.jpg)
![Page 16: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/16.jpg)
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.
![Page 17: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/17.jpg)
Caracteres de condições utilizados na declaração dos elementos
Caractere de Condição
Função
+
(Mais)
Indica que o elemento filho será utilizado pelo menos uma vez
dentro do elemento pai (ou mais de uma).
*
(Asterisco)
Indica que o elemento filho será utilizado várias vezes dentro
de um elemento pai, ou nem será utilizado (nenhuma ou mais
de uma).
?
(Interrogação)
Indica que o elemento filho será opcional, podendo ou não ser
utilizado (uma única vez) dentro do elemento pai.
|
(Barra Vertical)
Indica que um ou outro elemento filho será utilizado dentro de
um elemento pai.
![Page 18: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/18.jpg)
Posições dos caracteres de condição
Posições dos caracteres de condição
<!ELEMENT cartao (nome, telefone+, email*, website?)>
<!ELEMENT trecho (ferroviário | aéreo | rodoviário | fluvial)>
<!ELEMENT livro (titulo, autor, editora, ano)*>
![Page 19: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/19.jpg)
Posições dos caracteres de condição
Caractere de
CondiçãoExemplo
+
(Mais)
<!ELEMENT cliente (nome, fone+)>
<cliente>
<nome>... </nome>
<fone> ... </fone>
</cliente>
<cliente>
<nome> ... </nome>
<fone> ... </fone>
<fone> ... </fone>
</cliente>
*
(Asterisco)
<!ELEMENT cliente (nome, fone*)>
<cliente>
<nome>... </nome>
</cliente>
<cliente>
<nome> ... </nome>
<fone> ... </fone>
<fone> ... </fone>
</cliente>
![Page 20: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/20.jpg)
Posições dos caracteres de condiçãoCaractere de
CondiçãoExemplo
?
(Interrogação)
<!ELEMENT cliente (nome, fone?, email?)>
<cliente>
<nome>...</nome>
</cliente>
<cliente>
<nome> ... </nome>
<fone> ... </fone>
</cliente>
<cliente>
<nome>... </nome>
<email>... </email>
</cliente>
<cliente>
<nome> ... </nome>
<fone> ... </fone>
<email> ... </email>
</cliente>
|
(Barra Vertical)
<!ELEMENT cliente (nome, (fone|email))>
<cliente>
<nome>... </nome>
<fone> ... </fone>
</cliente>
<cliente>
<nome> ... </nome>
<email> ... </email>
</cliente>
![Page 21: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/21.jpg)
Variações na declaração dos elementos
Declaração de Sintaxe
Elementos que possuem apenas
texto.<!ELEMENT nome-do-elemento (#PCDATA)>
Única ocorrência para um
elemento.<!ELEMENT nome-do-elemento (elemento_1)>
Elementos que possuem
elementos filhos.
<!ELEMENT nome-do-elemento (elemento_1,
elemento_2, elemento_3, elemento_4)>
Ocorrência de um, os dois, vários
de cada um, ou nenhum dos
elementos para o elemento
principal.
<!ELEMENT nome-do-elemento (elemento_1,
elemento_2)*>
*PCDATA = Parsable Character Data
![Page 22: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/22.jpg)
Variações na declaração dos elementos
Declaração de Sintaxe
Semelhante a anterior, porém
pelo menos um elemento deve
existir dentro do elemento
principal.
<!ELEMENT nome-do-elemento (elemento_1,
elemento_2)+>
Elemento principal pode ser
vazia ou conter apenas um dos
elementos.
<!ELEMENT nome-do-elemento (elemento_1,
elemento_2)?>
![Page 23: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/23.jpg)
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>
![Page 24: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/24.jpg)
Atributo no documento DTD
<!ATTLIST automovel marca NMTOKEN #IMPLIED ><!ATTLIST automovel modelo CDATA #FIXED "1000"><!ATTLIST automovel ano NMTOKEN #REQUIRED >
<!ATTLIST automovel marca NMTOKEN #IMPLIED modelo CDATA #FIXED “1000" ano NMTOKEN #REQUIRED>
![Page 25: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/25.jpg)
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.
![Page 26: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/26.jpg)
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
![Page 27: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/27.jpg)
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
![Page 28: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/28.jpg)
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
![Page 29: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/29.jpg)
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
![Page 30: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/30.jpg)
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 valor moeda CDATA #FIXED “R$">
![Page 31: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/31.jpg)
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
![Page 32: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/32.jpg)
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>
![Page 33: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/33.jpg)
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; >
![Page 34: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/34.jpg)
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>
![Page 35: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/35.jpg)
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
![Page 36: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/36.jpg)
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.
![Page 37: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/37.jpg)
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 >]>
![Page 38: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/38.jpg)
DTD Misto
Podem ser usadas em conjunto:
<!DOCTYPE exemplo SYSTEM “biblioteca.dtd" [
<!ENTITY valor “R$">
]>
* Definições internas sobrepõem elementos já existentes na DTD externa.
![Page 39: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/39.jpg)
Criando um DTD
Avaliar a estrutura do documento XML
Identificar elemento principal/raiz
Identificar elementos filhos
![Page 40: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/40.jpg)
Exercício
Criar DTD externo para o seguinte XML e validar o documento
![Page 41: Tópicos de Sistemas de Informação A](https://reader036.vdocuments.com.br/reader036/viewer/2022062314/56813ac9550346895da2e3d4/html5/thumbnails/41.jpg)
<?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>