SlideShare uma empresa Scribd logo
1 de 26
DTD - Document Type Definition
DTD (http://www.w3.org/TR/2008/REC-
xml-20081126/#dt-markupdecl)
`       Define as regras de formação dos elementos e
        atributos
        `   Quais os elementos que podem aparecer em um
            documento
        `   Em que ordem eles podem aparecer
        `   Qual a hierarquia permitida para os elementos
        `   Quais os atributos que um elemento pode conter




    7
Exemplo que será utilizado na aula
<? xml version=“1.0” ?>
<empregados>
  <empregado cod=“E01” dept=“D01”>
    <nome>João</nome>
    <inicial-meio>S.</inicial-meio>
    <sobrenome>Santos</sobrenome>
  </empregado>
 <empregado cod=“E02” dept=“D01”>
    <nome>Ana</nome>
    <sobrenome>Ferraz</sobrenome>                      empregados
  </empregado>
</empregados>

                                        empregado            cod=“E02”     empregado
                     cod=“E01”
                                                            dept=“D01”
                   dept=“D01”

                                 nome   inicial-meio    sobrenome        nome   sobrenome


                                 João       S.            Santos         Ana      Ferraz
      8
Local da Declaração
DTD Interna                  DTD Externa

`       Definida dentro do   `   Definida fora do
        documento XML            documento XML, em
                                 um arquivo fisicamente
                                 separado (.dtd)
                     DTD                                  DTD
                                 <raiz>
                                   ... <raiz>
           <raiz>                          ... <raiz>
             ...                                 ...

                                 </raiz>
                                      </raiz>
           </raiz>                              </raiz>
    9
DTD interna – no arquivo xml
         <? xml version=“1.0” ?>
         <!DOCTYPE empregados [
         <!ELEMENT empregados (empregado+)>
         <!ELEMENT empregado (nome, inicial-
         meio?, sobrenome)>
         <!ATTLIST empregado
                   cod CDATA #REQUIRED
                   dept CDATA #REQUIRED
         >
         <!ELEMENT nome (#PCDATA)>
         <!ELEMENT inicial-meio (#PCDATA)>
         <!ELEMENT sobrenome (#PCDATA)>
         ]>
         <empregados>
           <empregado cod=“E01” dept=“D01”>
             <nome>João</nome>
             <inicial-meio>S.</inicial-meio>
             <sobrenome>Santos</sobrenome>
           </empregado>
          <empregado cod=“E02” dept=“D01”>
             <nome>Ana</nome>
             <sobrenome>Ferraz</sobrenome>
           </empregado>
 10      </empregados>
DTD externa – arquivos físicos separados
 <!ELEMENT empregados (empregado+)>
 <!ELEMENT empregado (nome, inicial-meio?, sobrenome)>
 <!ATTLIST empregado
               cod CDATA #REQUIRED
               dept CDATA #REQUIRED
 >
 <!ELEMENT nome (#PCDATA)>                              Arquivo emp.xml
 <!ELEMENT inicial-meio (#PCDATA)> xml version=“1.0” ?>
                                 <?
 <!ELEMENT sobrenome (#PCDATA)>  <!DOCTYPE empregados SYSTEM “emp.dtd”>
                                   <empregados>
                                     <empregado cod=“E01” dept=“D01”>
                                       <nome>João</nome>
                                       <inicial-meio>S.</inicial-meio>
Arquivo emp.dtd                        <sobrenome>Santos</sobrenome>
                                     </empregado>
                                    <empregado cod=“E02” dept=“D01”>
                                       <nome>Ana</nome>
                                       <sobrenome>Ferraz</sobrenome>
                                     </empregado>
  11
                                   </empregados>
Declaração da DTD
<? xml version=“1.0” ?>
<!DOCTYPE empregados SYSTEM “emp.dtd”>
<empregados>
  <empregado cod=“E01” dept=“D01”>
    <nome>João</nome>
    <inicial-meio>S.</inicial-meio>
    <sobrenome>Santos</sobrenome>
  </empregado>
 <empregado cod=“E02” dept=“D01”>
    <nome>Ana</nome>
    <sobrenome>Ferraz</sobrenome>
  </empregado>                      Nome do tipo de documento
</empregados>                          e do elemento raiz
                                         devem ser IGUAIS


  12
Declaração de Elemento
`    <!ELEMENT empregados (empregado+)>
     Existe um elemento empregados, cujo conteúdo é constituído de
     um ou mais elementos empregado


`    No documento XML

         <empregados>
                <empregado>...</empregado>
                <empregado>...</empregado>
                <empregado>...</empregado>
         </empregados>




    13
Cardinalidade
`    Cardinalidade: + * ?
     `   + um ou mais
     `   * zero ou mais
     `   ? zero ou um
     `   Se não houver símbolo de cardinalidade ao lado do
         elemento, ele é obrigatório




    14
Exemplo
`    <!ELEMENT empregado (nome, inicial-meio?,
     sobrenome)>
     O elemento empregado é composto de 3 sub-elementos: nome
     (obrigatório), inicial-meio (opcional), e sobrenome (obrigatório)


`    No documento XML

         <empregado>
                <nome>João</nome>
                <sobrenome>Santos</sobrenome>
         </empregado>




    15
Sequência e Escolha
`    <!ELEMENT empregado (nome, inicial-meio, sobrenome)>
     O elemento empregado é composto de 3 sub-elementos: nome,
     inicial-meio, e sobrenome, nessa ordem




`    <!ELEMENT empregado (nome | inicial-meio | sobrenome)>
     O elemento empregado é composto de 1 sub-elemento: ou nome
     ou inicial-meio ou sobrenome




    16
Sequência e Escolha
`    <!ELEMENT empregado (nome, inicial-meio, sobrenome)>
     <empregado>                                     Doc. XML
            <nome>João</nome>
            <inicial-meio>S.</inicial-meio>
            <sobrenome>Santos</sobrenome>
     </empregado>



`    <!ELEMENT empregado (nome | inicial-meio | sobrenome)>

     <empregado>                                     Doc. XML
            <nome>João</nome>
     </empregado>




    17
Elemento Textual
`    <!ELEMENT nome (#PCDATA)>

     #PCDATA significa Parsable Character Data, ou seja, o conteúdo do
     elemento será analisado pelo processador que está lendo o arquivo
     XML


`        No documento XML:

          <nome>João da Silva</nome>




    18
Elemento Vazio
`    <!ELEMENT estudante EMPTY>

     O elemento estudante não possui conteúdo


`    No documento XML:


         <estudante/>




    19
Elemento Misto
`    <!ELEMENT endereco (#PCDATA | cidade)*>

Elemento endereço possui texto, e subelemento(s) cidade


`    No documento XML:


     <endereco>Rua das Flores, 45
               <cidade>Rio de Janeiro</cidade>
               CEP 24220-260
     </endereco>




    20
Conteúdo Misto
`    Existe uma regra importante que deve ser seguida
     quando existe escolha entre texto e elementos filho.

     `   #PCDATA deve ser obrigatoriamente
         `   o primeiro token no grupo
         `   o grupo deve ser de escolha, opcional e com repetição.

     `   Exemplo

<!ELEMENT endereco (#PCDATA | cidade)*>




    21
Qualquer conteúdo
`    <!ELEMENT obs ANY>

`    Neste exemplo, o elemento obs pode conter como
     conteúdo qualquer outro elemento que tenha sido
     declarado na DTD




    22
Declaração de Atributos
`    Declarados em uma declaração ATTLIST
     `   Nome do elemento que contém o atributo
     `   Lista de atributos
     `   Para cada atributo da lista, devem ser declaradas as
         seguintes informações
         `   nome do atributo
         `   tipo do atributo (CDATA, ID, IDREF, etc.), ou lista de valores
             possíveis, separados por “|”
         `   obrigatoriedade (#REQUIRED, #FIXED, #IMPLIED, ou um valor
             default para o atributo, informado entre aspas)




    23
Exemplo
`    <!ATTLIST empregado
         cod CDATA #REQUIRED
         dept CDATA #REQUIRED
     >

     O elemento empregado possui dois atributos cod, e dept
     O tipo de ambos é um texto (CDATA), e ambos são obrigatórios
     (#REQUIRED)




    24
Exemplo
`    <!ATTLIST empregado
         cod CDATA #REQUIRED
         dept CDATA #REQUIRED
     >

`    No documento XML:

     <empregado cod=“E01” dept=“D01”>...</empregado>




    25
Cardinalidade
`    Atributos obrigatórios: utiliza- se a palavra reservada #REQUIRED
     <!ATTLIST empregado cod CDATA #REQUIRED>

`    Atributos opcionais: utiliza- se a palavra reservada #IMPLIED
     <!ATTLIST empregado dept CDATA #IMPLIED>

`    Atributos com valores fixos: #FIXED + valor
     <!ATTLIST empregado empresa CDATA #FIXED "ABC">

` Atributos podem ter valores default
  <!ATTLIST empregado sexo (F | M) "F" >
  <!ATTLIST empregado sexo CDATA "F" >
Neste caso, se o documento XML não fornecer o valor do atributo, o
  parser o adiciona automaticamente na hora do processamento

    26
Declarações múltiplas
`    Um elemento pode ter mais de uma declaração de lista de
     atributos. Exemplo:

<!ATTLIST livro id ID #REQUIRED
                tipo (romance| policial) #REQUIRED>
..... ....
<!ATTLIST livro tipo (pocket| normal) #REQUIRED
                        autor CDATA #IMPLIED>

`    A lista de atributos é combinada
`    No caso de haver atributo com o mesmo nome, a primeira
     declaração é a que vale!



    27
Tipos permitidos para atributos
` CDATA – texto
<ATTLIST documento versao CDATA #REQUIRED>
 Uso: <documento versao="10.10.2001">…</documento>

`NMTOKEN – um name token
Não pode conter branco. Aceita apenas Letter | Digit | '.' | '-' |
     '_' | ':' )
<ATTLIST documento digito_verificacao NMTOKEN #IMPLIED>
 Uso: <documento digito_verificacao="art1">…</documento>

` NMTOKENS – vários name tokens
<ATTLIST documento paginas NMTOKENS #IMPLIED>
 Uso: <documento paginas="elem10 elem45 el77
  ar102">…</documento>

    28
Tipos permitidos para atributos
` ENTITY – entidade
<ATTLIST figura arquivo ENTITY #REQUIRED>
 Uso: <figura arquivo="foto"/>

` ENTITIES – várias entidades
<ATTLIST figura arquivo ENTITIES #REQUIRED>
 Uso: <figura arquivo="foto1ano foto10anos foto15anos"/>



           Veremos mais detalhes, e também para que as
            Entidades são usadas, mais tarde nessa aula



    29
Tipos permitidos para atributos
` ID – um identificador Æ deve ter valor único no documento
<ATTLIST capitulo Nr ID #REQUIRED> Os valores para o tipo ID
 Uso: <capitulo Nr="A1">…</capitulo> seguem as mesmas regras
                                       de construção de nomes de
                                       elementos (devem começar
` IDREF – referência a um ID           por letra, “:” ou “_”)
<ATTLIST referencia cap IDREF #REQUIRED>
 Uso: O capítulo <referencia cap="A1"/> mostra as
  características de …

` IDREFS – referência a vários IDs
<ATTLIST referencia cap IDREFS #REQUIRED>
 Uso: Os capítulos <referencia cap="A2 A3"/> apresentam …

    30
Usando o ID e o IDREF O valor atribuídoou seja, devecap
                      deve ser válido,
                                        ao atributo

`    Na DTD:                            haver um atributo do tipo ID com
                                        aquele valor no doc. XML
<!ELEMENT capitulo(…)>
<!ATTLIST capitulo nr ID #REQUIRED>
<!ELEMENT referencia EMPTY>
<!ATTLIST referencia cap IDREF #REQUIRED>
`    Na instância (documento) XML
…
<capitulo nr="A1">
    …
</capitulo>
<conclusao> Enfim, deve-se … Como apresentado inicialmente no
  capitulo <referencia cap="A1"/> deve-se tomar cuidado ao definir …
</conclusao>
…
    31

Mais conteúdo relacionado

Destaque

COMPLETION OF INTERSHIP 2016 - IRONFX 2
COMPLETION OF INTERSHIP 2016 - IRONFX 2COMPLETION OF INTERSHIP 2016 - IRONFX 2
COMPLETION OF INTERSHIP 2016 - IRONFX 2Alexis Demetriou
 
Palestra sobre Mídia Social
Palestra sobre Mídia SocialPalestra sobre Mídia Social
Palestra sobre Mídia Socialzoemd
 
Actividad De Aprendizaje Huascaran Luci
Actividad De Aprendizaje Huascaran LuciActividad De Aprendizaje Huascaran Luci
Actividad De Aprendizaje Huascaran Luciguest79bed04a
 
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidadrenelc
 
Formatos De Imagen
Formatos  De  ImagenFormatos  De  Imagen
Formatos De Imagenlaur.inet
 
Kafafian.Mark.Resume.Final
Kafafian.Mark.Resume.FinalKafafian.Mark.Resume.Final
Kafafian.Mark.Resume.FinalMark Kafafian
 
Eles só querem amor
Eles só querem amorEles só querem amor
Eles só querem amorMarco Brito
 
Makinak LH 6 A 4. taldea
Makinak LH 6 A 4. taldeaMakinak LH 6 A 4. taldea
Makinak LH 6 A 4. taldeamendigoiti
 
Ámbito de la tecnología: alineamiento con la estrategia de negocio
Ámbito de la tecnología: alineamiento con la estrategia de negocioÁmbito de la tecnología: alineamiento con la estrategia de negocio
Ámbito de la tecnología: alineamiento con la estrategia de negocioDaniel Piret
 
Antiga apresentacao inac_hotel_access_2008
Antiga apresentacao inac_hotel_access_2008Antiga apresentacao inac_hotel_access_2008
Antiga apresentacao inac_hotel_access_2008inaclive
 
Mídias Sociais Unopar 2011
Mídias Sociais Unopar 2011Mídias Sociais Unopar 2011
Mídias Sociais Unopar 2011zoemd
 
David Woodward reference letter
David Woodward reference letterDavid Woodward reference letter
David Woodward reference letterPEARL ALMEIDA
 
Claudia Fernandez - Terminología Filosófica
Claudia Fernandez - Terminología FilosóficaClaudia Fernandez - Terminología Filosófica
Claudia Fernandez - Terminología Filosóficaills
 

Destaque (20)

COMPLETION OF INTERSHIP 2016 - IRONFX 2
COMPLETION OF INTERSHIP 2016 - IRONFX 2COMPLETION OF INTERSHIP 2016 - IRONFX 2
COMPLETION OF INTERSHIP 2016 - IRONFX 2
 
Interview (1)
Interview (1)Interview (1)
Interview (1)
 
Reunião Fundeb 14 de julho 2011
Reunião Fundeb 14 de julho 2011Reunião Fundeb 14 de julho 2011
Reunião Fundeb 14 de julho 2011
 
Palestra sobre Mídia Social
Palestra sobre Mídia SocialPalestra sobre Mídia Social
Palestra sobre Mídia Social
 
Actividad De Aprendizaje Huascaran Luci
Actividad De Aprendizaje Huascaran LuciActividad De Aprendizaje Huascaran Luci
Actividad De Aprendizaje Huascaran Luci
 
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad
3er Congreso nacional nauraleza-sociedad reflexiones desde la complejidad
 
Formatos De Imagen
Formatos  De  ImagenFormatos  De  Imagen
Formatos De Imagen
 
CopyofAngelicaResume
CopyofAngelicaResumeCopyofAngelicaResume
CopyofAngelicaResume
 
Kafafian.Mark.Resume.Final
Kafafian.Mark.Resume.FinalKafafian.Mark.Resume.Final
Kafafian.Mark.Resume.Final
 
Eles só querem amor
Eles só querem amorEles só querem amor
Eles só querem amor
 
ENSEÑANZA
ENSEÑANZAENSEÑANZA
ENSEÑANZA
 
Makinak LH 6 A 4. taldea
Makinak LH 6 A 4. taldeaMakinak LH 6 A 4. taldea
Makinak LH 6 A 4. taldea
 
Ámbito de la tecnología: alineamiento con la estrategia de negocio
Ámbito de la tecnología: alineamiento con la estrategia de negocioÁmbito de la tecnología: alineamiento con la estrategia de negocio
Ámbito de la tecnología: alineamiento con la estrategia de negocio
 
Antiga apresentacao inac_hotel_access_2008
Antiga apresentacao inac_hotel_access_2008Antiga apresentacao inac_hotel_access_2008
Antiga apresentacao inac_hotel_access_2008
 
Mídias Sociais Unopar 2011
Mídias Sociais Unopar 2011Mídias Sociais Unopar 2011
Mídias Sociais Unopar 2011
 
Adsorción2
Adsorción2Adsorción2
Adsorción2
 
David Woodward reference letter
David Woodward reference letterDavid Woodward reference letter
David Woodward reference letter
 
Claudia Fernandez - Terminología Filosófica
Claudia Fernandez - Terminología FilosóficaClaudia Fernandez - Terminología Filosófica
Claudia Fernandez - Terminología Filosófica
 
NBA
NBANBA
NBA
 
Gbi
GbiGbi
Gbi
 

Semelhante a 03 dtd fahad

Semelhante a 03 dtd fahad (7)

Document Type Definition
Document Type DefinitionDocument Type Definition
Document Type Definition
 
XML e Banco de Dados XML Nativo
XML e Banco de Dados XML NativoXML e Banco de Dados XML Nativo
XML e Banco de Dados XML Nativo
 
Aula Xml Schema - XSD
Aula Xml Schema - XSDAula Xml Schema - XSD
Aula Xml Schema - XSD
 
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1Aplicando Transformação em XML usando XSLT e XSL-FO - 1
Aplicando Transformação em XML usando XSLT e XSL-FO - 1
 
O que é html
O que é htmlO que é html
O que é html
 
RCOM 11º Ano - HTML
RCOM 11º Ano - HTMLRCOM 11º Ano - HTML
RCOM 11º Ano - HTML
 
Linguagem html
Linguagem htmlLinguagem html
Linguagem html
 

03 dtd fahad

  • 1. DTD - Document Type Definition
  • 2. DTD (http://www.w3.org/TR/2008/REC- xml-20081126/#dt-markupdecl) ` Define as regras de formação dos elementos e atributos ` Quais os elementos que podem aparecer em um documento ` Em que ordem eles podem aparecer ` Qual a hierarquia permitida para os elementos ` Quais os atributos que um elemento pode conter 7
  • 3. Exemplo que será utilizado na aula <? xml version=“1.0” ?> <empregados> <empregado cod=“E01” dept=“D01”> <nome>João</nome> <inicial-meio>S.</inicial-meio> <sobrenome>Santos</sobrenome> </empregado> <empregado cod=“E02” dept=“D01”> <nome>Ana</nome> <sobrenome>Ferraz</sobrenome> empregados </empregado> </empregados> empregado cod=“E02” empregado cod=“E01” dept=“D01” dept=“D01” nome inicial-meio sobrenome nome sobrenome João S. Santos Ana Ferraz 8
  • 4. Local da Declaração DTD Interna DTD Externa ` Definida dentro do ` Definida fora do documento XML documento XML, em um arquivo fisicamente separado (.dtd) DTD DTD <raiz> ... <raiz> <raiz> ... <raiz> ... ... </raiz> </raiz> </raiz> </raiz> 9
  • 5. DTD interna – no arquivo xml <? xml version=“1.0” ?> <!DOCTYPE empregados [ <!ELEMENT empregados (empregado+)> <!ELEMENT empregado (nome, inicial- meio?, sobrenome)> <!ATTLIST empregado cod CDATA #REQUIRED dept CDATA #REQUIRED > <!ELEMENT nome (#PCDATA)> <!ELEMENT inicial-meio (#PCDATA)> <!ELEMENT sobrenome (#PCDATA)> ]> <empregados> <empregado cod=“E01” dept=“D01”> <nome>João</nome> <inicial-meio>S.</inicial-meio> <sobrenome>Santos</sobrenome> </empregado> <empregado cod=“E02” dept=“D01”> <nome>Ana</nome> <sobrenome>Ferraz</sobrenome> </empregado> 10 </empregados>
  • 6. DTD externa – arquivos físicos separados <!ELEMENT empregados (empregado+)> <!ELEMENT empregado (nome, inicial-meio?, sobrenome)> <!ATTLIST empregado cod CDATA #REQUIRED dept CDATA #REQUIRED > <!ELEMENT nome (#PCDATA)> Arquivo emp.xml <!ELEMENT inicial-meio (#PCDATA)> xml version=“1.0” ?> <? <!ELEMENT sobrenome (#PCDATA)> <!DOCTYPE empregados SYSTEM “emp.dtd”> <empregados> <empregado cod=“E01” dept=“D01”> <nome>João</nome> <inicial-meio>S.</inicial-meio> Arquivo emp.dtd <sobrenome>Santos</sobrenome> </empregado> <empregado cod=“E02” dept=“D01”> <nome>Ana</nome> <sobrenome>Ferraz</sobrenome> </empregado> 11 </empregados>
  • 7. Declaração da DTD <? xml version=“1.0” ?> <!DOCTYPE empregados SYSTEM “emp.dtd”> <empregados> <empregado cod=“E01” dept=“D01”> <nome>João</nome> <inicial-meio>S.</inicial-meio> <sobrenome>Santos</sobrenome> </empregado> <empregado cod=“E02” dept=“D01”> <nome>Ana</nome> <sobrenome>Ferraz</sobrenome> </empregado> Nome do tipo de documento </empregados> e do elemento raiz devem ser IGUAIS 12
  • 8. Declaração de Elemento ` <!ELEMENT empregados (empregado+)> Existe um elemento empregados, cujo conteúdo é constituído de um ou mais elementos empregado ` No documento XML <empregados> <empregado>...</empregado> <empregado>...</empregado> <empregado>...</empregado> </empregados> 13
  • 9. Cardinalidade ` Cardinalidade: + * ? ` + um ou mais ` * zero ou mais ` ? zero ou um ` Se não houver símbolo de cardinalidade ao lado do elemento, ele é obrigatório 14
  • 10. Exemplo ` <!ELEMENT empregado (nome, inicial-meio?, sobrenome)> O elemento empregado é composto de 3 sub-elementos: nome (obrigatório), inicial-meio (opcional), e sobrenome (obrigatório) ` No documento XML <empregado> <nome>João</nome> <sobrenome>Santos</sobrenome> </empregado> 15
  • 11. Sequência e Escolha ` <!ELEMENT empregado (nome, inicial-meio, sobrenome)> O elemento empregado é composto de 3 sub-elementos: nome, inicial-meio, e sobrenome, nessa ordem ` <!ELEMENT empregado (nome | inicial-meio | sobrenome)> O elemento empregado é composto de 1 sub-elemento: ou nome ou inicial-meio ou sobrenome 16
  • 12. Sequência e Escolha ` <!ELEMENT empregado (nome, inicial-meio, sobrenome)> <empregado> Doc. XML <nome>João</nome> <inicial-meio>S.</inicial-meio> <sobrenome>Santos</sobrenome> </empregado> ` <!ELEMENT empregado (nome | inicial-meio | sobrenome)> <empregado> Doc. XML <nome>João</nome> </empregado> 17
  • 13. Elemento Textual ` <!ELEMENT nome (#PCDATA)> #PCDATA significa Parsable Character Data, ou seja, o conteúdo do elemento será analisado pelo processador que está lendo o arquivo XML ` No documento XML: <nome>João da Silva</nome> 18
  • 14. Elemento Vazio ` <!ELEMENT estudante EMPTY> O elemento estudante não possui conteúdo ` No documento XML: <estudante/> 19
  • 15. Elemento Misto ` <!ELEMENT endereco (#PCDATA | cidade)*> Elemento endereço possui texto, e subelemento(s) cidade ` No documento XML: <endereco>Rua das Flores, 45 <cidade>Rio de Janeiro</cidade> CEP 24220-260 </endereco> 20
  • 16. Conteúdo Misto ` Existe uma regra importante que deve ser seguida quando existe escolha entre texto e elementos filho. ` #PCDATA deve ser obrigatoriamente ` o primeiro token no grupo ` o grupo deve ser de escolha, opcional e com repetição. ` Exemplo <!ELEMENT endereco (#PCDATA | cidade)*> 21
  • 17. Qualquer conteúdo ` <!ELEMENT obs ANY> ` Neste exemplo, o elemento obs pode conter como conteúdo qualquer outro elemento que tenha sido declarado na DTD 22
  • 18. Declaração de Atributos ` Declarados em uma declaração ATTLIST ` Nome do elemento que contém o atributo ` Lista de atributos ` Para cada atributo da lista, devem ser declaradas as seguintes informações ` nome do atributo ` tipo do atributo (CDATA, ID, IDREF, etc.), ou lista de valores possíveis, separados por “|” ` obrigatoriedade (#REQUIRED, #FIXED, #IMPLIED, ou um valor default para o atributo, informado entre aspas) 23
  • 19. Exemplo ` <!ATTLIST empregado cod CDATA #REQUIRED dept CDATA #REQUIRED > O elemento empregado possui dois atributos cod, e dept O tipo de ambos é um texto (CDATA), e ambos são obrigatórios (#REQUIRED) 24
  • 20. Exemplo ` <!ATTLIST empregado cod CDATA #REQUIRED dept CDATA #REQUIRED > ` No documento XML: <empregado cod=“E01” dept=“D01”>...</empregado> 25
  • 21. Cardinalidade ` Atributos obrigatórios: utiliza- se a palavra reservada #REQUIRED <!ATTLIST empregado cod CDATA #REQUIRED> ` Atributos opcionais: utiliza- se a palavra reservada #IMPLIED <!ATTLIST empregado dept CDATA #IMPLIED> ` Atributos com valores fixos: #FIXED + valor <!ATTLIST empregado empresa CDATA #FIXED "ABC"> ` Atributos podem ter valores default <!ATTLIST empregado sexo (F | M) "F" > <!ATTLIST empregado sexo CDATA "F" > Neste caso, se o documento XML não fornecer o valor do atributo, o parser o adiciona automaticamente na hora do processamento 26
  • 22. Declarações múltiplas ` Um elemento pode ter mais de uma declaração de lista de atributos. Exemplo: <!ATTLIST livro id ID #REQUIRED tipo (romance| policial) #REQUIRED> ..... .... <!ATTLIST livro tipo (pocket| normal) #REQUIRED autor CDATA #IMPLIED> ` A lista de atributos é combinada ` No caso de haver atributo com o mesmo nome, a primeira declaração é a que vale! 27
  • 23. Tipos permitidos para atributos ` CDATA – texto <ATTLIST documento versao CDATA #REQUIRED> Uso: <documento versao="10.10.2001">…</documento> `NMTOKEN – um name token Não pode conter branco. Aceita apenas Letter | Digit | '.' | '-' | '_' | ':' ) <ATTLIST documento digito_verificacao NMTOKEN #IMPLIED> Uso: <documento digito_verificacao="art1">…</documento> ` NMTOKENS – vários name tokens <ATTLIST documento paginas NMTOKENS #IMPLIED> Uso: <documento paginas="elem10 elem45 el77 ar102">…</documento> 28
  • 24. Tipos permitidos para atributos ` ENTITY – entidade <ATTLIST figura arquivo ENTITY #REQUIRED> Uso: <figura arquivo="foto"/> ` ENTITIES – várias entidades <ATTLIST figura arquivo ENTITIES #REQUIRED> Uso: <figura arquivo="foto1ano foto10anos foto15anos"/> Veremos mais detalhes, e também para que as Entidades são usadas, mais tarde nessa aula 29
  • 25. Tipos permitidos para atributos ` ID – um identificador Æ deve ter valor único no documento <ATTLIST capitulo Nr ID #REQUIRED> Os valores para o tipo ID Uso: <capitulo Nr="A1">…</capitulo> seguem as mesmas regras de construção de nomes de elementos (devem começar ` IDREF – referência a um ID por letra, “:” ou “_”) <ATTLIST referencia cap IDREF #REQUIRED> Uso: O capítulo <referencia cap="A1"/> mostra as características de … ` IDREFS – referência a vários IDs <ATTLIST referencia cap IDREFS #REQUIRED> Uso: Os capítulos <referencia cap="A2 A3"/> apresentam … 30
  • 26. Usando o ID e o IDREF O valor atribuídoou seja, devecap deve ser válido, ao atributo ` Na DTD: haver um atributo do tipo ID com aquele valor no doc. XML <!ELEMENT capitulo(…)> <!ATTLIST capitulo nr ID #REQUIRED> <!ELEMENT referencia EMPTY> <!ATTLIST referencia cap IDREF #REQUIRED> ` Na instância (documento) XML … <capitulo nr="A1"> … </capitulo> <conclusao> Enfim, deve-se … Como apresentado inicialmente no capitulo <referencia cap="A1"/> deve-se tomar cuidado ao definir … </conclusao> … 31