Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguado
1º DAMEL
Tarefa 4
Linguagem de
marcação
DTD
E
XML
ESQ
UEMA
1
1 .- Uma empresa utiliza arquivos XML para fazer o inventário, entre outras coisas, de
impressoras. Para cada impressora você deseja salvar seu número de série, marca,
modelo, peso, tamanhos de papel com os quais pode trabalhar, o cartucho que usa, o
tipo, o ano de compra e se está conectado em rede ou não.
<impressoras>
<printer numSerie="i245" type="laser" buy="2010">
<marca>Epson</marca>
<modelo>EPL300</modelo>
<peso>4,52</peso>
<tamanho>A4</tamanho>
<tamanho>A5</tamanho>
<cartucho>C-123BV</cartucho>
<Enred/>
</impressora>
<printer numSerial="i246" type="dot matrix">
<marca>HP</marca>
< modelo >LaserJet 2410</modelo>
<peso>3,2</peso>
<tamanho>A4</tamanho>
<cartucho>C-456P</cartucho>
</impressora>
</impressoras>
Escreva um esquema XML para esses arquivos, escolhendo os tipos de dados mais
apropriados e levando em conta que:
• O peso é um número positivo e não pode ter mais de duas casas decimais.
• Pode haver mais de um tamanho.
• O atributo type só pode assumir os valores 'matrix', 'laser' e 'ink'. É obrigatório.
• O atributo numSeries é necessário e atua como um identificador.
• O cartucho consiste em um C maiúsculo, um hífen, três números e uma ou duas
letras maiúsculas.
• Todos os elementos são obrigatórios, exceto o trabalho em rede.
• O elemento de rede é opcional. Se presente, é um elemento vazio.
• O atributo de compra, opcional, salva o ano da compra. É um inteiro positivo.
• Em cada arquivo há dados para uma ou mais impressoras.
ESQUEMA XML
2
No esquema xml não temos como definir o elemento raiz de uma forma especial,
vamos indicá-lo com <xs:element name="root"> , que definiremos como
complexo se ele abrigar mais elementos dentro e a tag xs:sequence para adicionar
os diferentes elementos que o formam e suas restrições. Dessa forma, teremos um
esquema xml aninhado.
<xmlns printers:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Document1.xsd"> <!--vinculação de
caminho relativo para validar em relação a xsd-->
<marca>Epson</marca>
<modelo>EPL300</modelo>
<peso>4,52</peso>
<tamanho>A4</tamanho>
<tamanho>A5</tamanho>
<cartucho>C-123BV</cartucho>
<Enred/>
</impressora>
<marca>HP</marca>
<peso>3,2</peso>
<tamanho>A4</tamanho>
<cartucho>C-456P</cartucho>
</impressora>
</impressoras>
<xs:anotação>
<xs:documentação>
Define uma lista de impressoras. Pilar Alonso Sole.Tarefa 04.1 DAMEL
</xs:documentação>
</xs:anotação>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:nome do elemento="impressoras">
<xs:complexType>
<xs:sequência>
</xs:sequência>
5
</xs:complexType>
</xs:elemento>
<xs:nome do elemento="impressora">
<xs:complexType>
<xs:sequência>
<!--O peso deve ser um número positivo e não ter mais de duas casas
decimais, pois deve ser declarado dentro de xs:restrição-->
<xs:minInclusive value="1"/>
</xs:restrição>
</xs:simpleType>
<xs:simpleType>
<xs:base de restrição="xs:string">
6
<xs:pattern value="[C][\-][0-9][0-9][0-9][A-Z]{1,2}"/>
</xs:restrição>
</xs:simpleType>
</xs:elemento>
</xs:sequência>
<!--atribuições-->
<!--O atributo Serial Number deve ser necessário e também atuar como o
identificador da impressora-->
<xs:simpleType>
</xs:restrição>
</xs:simpleType>
</xs:atributo>
<!--O atributo type deve ser obrigatório e também deve contemplar apenas os
valores: matriz, laser e tinta-->
<xs:enumeration value="laser"/>
<xs:valor de enumeração="ink"/>
</xs:restrição>
7
</xs:simpleType>
</xs:atributo>
</xs:complexType>
</xs:elemento>
</xs:esquema>
2.- Uma associação de jogadores de mus usa arquivos XML para armazenar as
informações dos torneios que organiza. Para cada torneio você deseja salvar o ano em
que foi realizado, o vencedor anterior (seu ID) e as informações dos participantes. Os
participantes querem armazenar seu identificador, o de seu parceiro, seu nome completo,
idade, país e também se eles são semeados ou não.
<Semente/>
</participante>
<participante idP="j02" par="j01">
<nome>Manuel Gómez</nome>
<idade>25</idade>
<país>Espanha</país>
</participante>
<participante idP="j03" par="j04">
<nome>Ana Puertas</nome>
<idade>22</idade>
<país> E5spaña</país>
<Semente/>
</participante>
<participante idP="j04" par="j03">
<nome>Paco Fraile</nome>
<idade>45</idade>
<país>Espanha</país>
</participante>
</torneio>
Escreva um DTD adequado para esses arquivos, levando em conta que:
8
..DTD
Um DTD é um documento com extensão .dtd e é responsável por garantir que os dados
XML estejam em conformidade com as restrições impostas ao dtd.
Os elementos terminais (não contêm elementos) são declarados assim: <! Nome do
elemento tipo_de_dato>
REQUISITOS DA TAREFA
Como o torneio deve ter participantes, usamos > + para definir um mínimo de 1 ou mais
na cardinalidade do elemento do torneio.
Como idP, ele deve ser um identificador >vamos adicionar ID para declarar o atributo
como um identificador.
9
O atributo par deve se referir ao idP de outro participante para isso usarei IDREF.
Ficaria assim:
]>
<nome>Manuel Pérez</nome>
<idade>23</idade>
<país> Espanha</país>
<Semente/>
</participante>
<nome>Manuel Gómez</nome>
1
0
<idade>25</idade>
<país>Espanha</país>
</participante>
<nome>Ana Puertas</nome>
<idade>22</idade>
<país> E5spaña</país>
<Semente/>
</participante>
<nome>Paco Fraile</nome>
<idade>45</idade>
<país>Espanha</país>
</participante>
</torneio>