• No se han encontrado resultados

Parar la represión en las Normales extensible Markup Language XML.

N/A
N/A
Protected

Academic year: 2021

Share "Parar la represión en las Normales extensible Markup Language XML."

Copied!
82
0
0

Texto completo

(1)

Parar la represión en las Normales

eXtensible Markup Language XML.

Dr. Ivo H. Pineda Torres

Facultad de Ciencias de la Computación Benemérita Universidad Autónoma de

Puebla

(2)

Xtensaible Markup Language

Aunque a primera vista, un documento XML puede parecer similar a HTML, hay una diferencia principal.

Un documento XML contiene datos que se autodefinen,

exclusivamente. Un documento HTML contiene datos mal definidos, mezclados con elementos de formato. En XML se separa el contenido de la presentación de forma total.

(3)

Cambios en XML

• No predefine tags como HTML, tu los creas y en el momento que se necesiten.

• Es más estricto que HTML

(4)

Tags no predefinidos

<precio moneda="MnX"> 500.00 <\precio>

<toc xlink:href="/newsletter">Pineapplesoft Link</toc>

El primer tag no tiene equivalente en HTML y aunque el segundo puede tenerlo se puede simular usando una comobinación de marcas de tabla, enlaces y tipo de letra.

(5)

Asi podrá ser

<TABLE> <TR>

<TD><!-- main text here --></TD>

<TD><A HREF="/newsletter"><B>Pineapplesoft Link</B></A></TD> </TR>

</TABLE>

(6)

Esta es la razón de X

Por eso estipo de escritura es extensible, tu creas lo que necesitas. Pero

1. ¿Cómo sabe el navegador que <toc> es equivalente a una combinación de tabla, enlace y tipo de letra.?

2. R: Para esto se usa la hoja de estilos.

3. ¿Se pueden commparar diferentes precios?

4. R: Uso de DOM permite hacerlo, (no comas ansias)

5. que tal con el uso de los navegadores actuales como el Chrome, Mozilla, Rekong, Opera,etc.

6. R: no tiene problemas de compatibilidad con las nuevas generaciones de browsers.

7. ¿Como se simplifica el mantenimiento de los sitios web???

8. R: Te permite concentrarte en aspectos de estabilidad para tus documentos.

(7)

Esta es la razón de X

Por eso estipo de escritura es extensible, tu creas lo que necesitas. Pero

1. ¿Cómo sabe el navegador que <toc> es equivalente a una combinación de tabla, enlace y tipo de letra.?

2. R: Para esto se usa la hoja de estilos.

3. ¿Se pueden commparar diferentes precios?

4. R: Uso de DOM permite hacerlo, (no comas ansias)

5. que tal con el uso de los navegadores actuales como el Chrome, Mozilla, Rekong, Opera,etc.

6. R: no tiene problemas de compatibilidad con las nuevas generaciones de browsers.

7. ¿Como se simplifica el mantenimiento de los sitios web???

8. R: Te permite concentrarte en aspectos de estabilidad para tus documentos.

(8)

Esta es la razón de X

Por eso estipo de escritura es extensible, tu creas lo que necesitas. Pero

1. ¿Cómo sabe el navegador que <toc> es equivalente a una combinación de tabla, enlace y tipo de letra.?

2. R: Para esto se usa la hoja de estilos.

3. ¿Se pueden commparar diferentes precios?

4. R: Uso de DOM permite hacerlo, (no comas ansias)

5. que tal con el uso de los navegadores actuales como el Chrome, Mozilla, Rekong, Opera,etc.

6. R: no tiene problemas de compatibilidad con las nuevas generaciones de browsers.

7. ¿Como se simplifica el mantenimiento de los sitios web???

8. R: Te permite concentrarte en aspectos de estabilidad para tus documentos.

(9)

Esta es la razón de X

Por eso estipo de escritura es extensible, tu creas lo que necesitas. Pero

1. ¿Cómo sabe el navegador que <toc> es equivalente a una combinación de tabla, enlace y tipo de letra.?

2. R: Para esto se usa la hoja de estilos.

3. ¿Se pueden commparar diferentes precios?

4. R: Uso de DOM permite hacerlo, (no comas ansias)

5. que tal con el uso de los navegadores actuales como el Chrome, Mozilla, Rekong, Opera,etc.

6. R: no tiene problemas de compatibilidad con las nuevas generaciones de browsers.

7. ¿Como se simplifica el mantenimiento de los sitios web???

8. R: Te permite concentrarte en aspectos de estabilidad para tus documentos.

(10)

Esta es la razón de X

Por eso estipo de escritura es extensible, tu creas lo que necesitas. Pero

1. ¿Cómo sabe el navegador que <toc> es equivalente a una combinación de tabla, enlace y tipo de letra.?

2. R: Para esto se usa la hoja de estilos.

3. ¿Se pueden commparar diferentes precios?

4. R: Uso de DOM permite hacerlo, (no comas ansias)

5. que tal con el uso de los navegadores actuales como el Chrome, Mozilla, Rekong, Opera,etc.

6. R: no tiene problemas de compatibilidad con las nuevas generaciones de browsers.

7. ¿Como se simplifica el mantenimiento de los sitios web???

8. R: Te permite concentrarte en aspectos de estabilidad para tus documentos.

(11)

Esta es la razón de X

Por eso estipo de escritura es extensible, tu creas lo que necesitas. Pero

1. ¿Cómo sabe el navegador que <toc> es equivalente a una combinación de tabla, enlace y tipo de letra.?

2. R: Para esto se usa la hoja de estilos.

3. ¿Se pueden commparar diferentes precios?

4. R: Uso de DOM permite hacerlo, (no comas ansias)

5. que tal con el uso de los navegadores actuales como el Chrome, Mozilla, Rekong, Opera,etc.

6. R: no tiene problemas de compatibilidad con las nuevas generaciones de browsers.

7. ¿Como se simplifica el mantenimiento de los sitios web???

8. R: Te permite concentrarte en aspectos de estabilidad para tus documentos.

(12)

Esta es la razón de X

Por eso estipo de escritura es extensible, tu creas lo que necesitas. Pero

1. ¿Cómo sabe el navegador que <toc> es equivalente a una combinación de tabla, enlace y tipo de letra.?

2. R: Para esto se usa la hoja de estilos.

3. ¿Se pueden commparar diferentes precios?

4. R: Uso de DOM permite hacerlo, (no comas ansias)

5. que tal con el uso de los navegadores actuales como el Chrome, Mozilla, Rekong, Opera,etc.

6. R: no tiene problemas de compatibilidad con las nuevas generaciones de browsers.

7. ¿Como se simplifica el mantenimiento de los sitios web???

8. R: Te permite concentrarte en aspectos de estabilidad para tus documentos.

(13)

Esta es la razón de X

Por eso estipo de escritura es extensible, tu creas lo que necesitas. Pero

1. ¿Cómo sabe el navegador que <toc> es equivalente a una combinación de tabla, enlace y tipo de letra.?

2. R: Para esto se usa la hoja de estilos.

3. ¿Se pueden commparar diferentes precios?

4. R: Uso de DOM permite hacerlo, (no comas ansias)

5. que tal con el uso de los navegadores actuales como el Chrome, Mozilla, Rekong, Opera,etc.

6. R: no tiene problemas de compatibilidad con las nuevas generaciones de browsers.

7. ¿Como se simplifica el mantenimiento de los sitios web???

8. R: Te permite concentrarte en aspectos de estabilidad para tus documentos.

(14)

Más estricto??Siiiiiii

1. XML no está pensado para publicar páginas web. !!!!!!

2. XML está pensado más en aspecto de publicación de documentos técnicos, libros,etc.

(15)

Más estricto??Siiiiiii

1. XML no está pensado para publicar páginas web. !!!!!!

2. XML está pensado más en aspecto de publicación de documentos técnicos, libros,etc.

(16)

Considera la siguiente estructura: INTERNAL MEMO

From: John Doe To: Jack Smith

Regarding: XML at WhizBang

Have you heard of this new technology, XML? It looks promising. It is similar to HTML but it is extensible. All the big names (Microsoft, IBM, Oracle) are backing it.

We could use XML to simplify our e-commerce and launch new services. It is also useful for the Web site: You complained it was a lot of work; apparently, XML can simplify the maintenance.

Check this Web site <http://www.w3.org/XML> for more information. Also visit Que

(<http://www.mcp.com>). It has just released "XML by Example"with lots of useful information and some great examples. I have already ordered two copies!

John

8

of

(17)

que partes se identifican

• Título

• Encabezado indicando el tema y quien va dirigido

• El cuerpo del texto el cual tiene elementos como

◦ tres párrafos

◦ Referencias a enlaces ◦ firma

Esto lopodemos descomponer a cualquier nivel que se desee, mientras más pequeño sea la descomposición menos información sobre l estructura del documento se incorpora.

En XML usaremos una forma diferente de de registrar la estructura del documento.

(18)

que partes se identifican

• Título

Encabezado indicando el tema y quien va dirigido

• El cuerpo del texto el cual tiene elementos como

◦ tres párrafos

◦ Referencias a enlaces ◦ firma

Esto lopodemos descomponer a cualquier nivel que se desee, mientras más pequeño sea la descomposición menos información sobre l estructura del documento se incorpora.

En XML usaremos una forma diferente de de registrar la estructura del documento.

(19)

que partes se identifican

• Título

Encabezado indicando el tema y quien va dirigido • El cuerpo del texto el cual tiene elementos como

◦ tres párrafos

◦ Referencias a enlaces ◦ firma

Esto lopodemos descomponer a cualquier nivel que se desee, mientras más pequeño sea la descomposición menos información sobre l estructura del documento se incorpora.

En XML usaremos una forma diferente de de registrar la estructura del documento.

(20)

que partes se identifican

• Título

Encabezado indicando el tema y quien va dirigido • El cuerpo del texto el cual tiene elementos como

◦ tres párrafos

◦ Referencias a enlaces ◦ firma

Esto lopodemos descomponer a cualquier nivel que se desee, mientras más pequeño sea la descomposición menos información sobre l estructura del documento se incorpora.

En XML usaremos una forma diferente de de registrar la estructura del documento.

(21)

que partes se identifican

• Título

Encabezado indicando el tema y quien va dirigido • El cuerpo del texto el cual tiene elementos como

◦ tres párrafos

◦ Referencias a enlaces

◦ firma

Esto lopodemos descomponer a cualquier nivel que se desee, mientras más pequeño sea la descomposición menos información sobre l estructura del documento se incorpora.

En XML usaremos una forma diferente de de registrar la estructura del documento.

(22)

que partes se identifican

• Título

Encabezado indicando el tema y quien va dirigido • El cuerpo del texto el cual tiene elementos como

◦ tres párrafos

◦ Referencias a enlaces ◦ firma

Esto lopodemos descomponer a cualquier nivel que se desee, mientras más pequeño sea la descomposición menos información sobre l estructura del documento se incorpora.

En XML usaremos una forma diferente de de registrar la estructura del documento.

(23)

que partes se identifican

• Título

Encabezado indicando el tema y quien va dirigido • El cuerpo del texto el cual tiene elementos como

◦ tres párrafos

◦ Referencias a enlaces ◦ firma

Esto lopodemos descomponer a cualquier nivel que se desee, mientras más pequeño sea la descomposición menos información sobre l estructura del documento se incorpora.

En XML usaremos una forma diferente de de registrar la estructura del documento.

(24)

que partes se identifican

• Título

Encabezado indicando el tema y quien va dirigido • El cuerpo del texto el cual tiene elementos como

◦ tres párrafos

◦ Referencias a enlaces ◦ firma

Esto lopodemos descomponer a cualquier nivel que se desee, mientras más pequeño sea la descomposición menos información sobre l estructura del documento se incorpora.

En XML usaremos una forma diferente de de registrar la estructura del documento.

(25)

<? xml v e r s i o n=" 1 . 0 " ?>

<!DOCTYPE memo SYSTEM "memo . d t d "> <memo> <h e a d e r> <f r o m>John Doe</ f r o m> <t o>J a c k S m it h</ t o> < s u b j e c t>XML a t WhizBang</ s u b j e c t> </ h e a d e r> <body> <p a r a>

Have you h e a r d o f t h i s new t e c h n o l o g y , XML? I t l o o k s p r o m i s i n g . I t i s s i m i l a r t o HTML b u t i t i s e x t e n s i b l e . A l l t h e b i g names ( M i c r o s o f t , IBM , O r a c l e ) a r e b a c k i n g i t . </ p a r a>

<p a r a>

We c o u l d u s e XML t o s i m p l i f y o u r e−commerce and l a u n c h new s e r v i c e s . I t i s a l s o u s e f u l f o r t h e web s i t e : you

c o m p l a i n e d i t was a l o t o f work , a p p a r e n t l y XML c a n s i m p l i f y t h e m a i n t e n a n c e . </ p a r a> <p a r a> Check t h i s web s i t e < u r l> h t t p : //www . w3 . o r g /XML</ u r l> f o r more i n f o r m a t i o n . A l s o v i s i t Que 9 of 47

(26)

(< u r l> h t t p : //www . mcp . com</ u r l> ) . They h a v e j u s t r e l e a s e d "XML␣ by ␣ Example " w i t h l o t s o f u s e f u l i n f o r m a t i o n and some g r e a t e x a m p l e s . I h a v e a l r e a d y o r d e r e d two c o p i e s ! </ p a r a> < s i g n a t u r e>John</ s i g n a t u r e> </ body> </memo> 9 of 47

(27)

Estructura de un documento XML

(28)
(29)

Listas de productos en una base de datos relacional

Identificador nombre Precio

p1 Editor XML $499.00

p2 Editor de DTD $199.00 p3 Libro de XML $19.99 p4 entrenamiento de XML $999.99

(30)

<? xml v e r s i o n=" 1 . 0 " ?> <p r o d u c t s> <p r o d u c t i d=" p1 "> <name>XML E d i t o r</name> < p r i c e>4 9 9 . 0 0</ p r i c e> </ p r o d u c t> <p r o d u c t i d=" p2 "> <name>DTD E d i t o r</name> < p r i c e>1 9 9 . 0 0</ p r i c e> </ p r o d u c t> <p r o d u c t i d=" p3 "> <name>XML Book</name> < p r i c e>1 9 . 9 9</ p r i c e> </ p r o d u c t> <p r o d u c t i d=" p4 "> <name>XML T r a i n i n g</name> < p r i c e>6 9 9 . 0 0</ p r i c e> </ p r o d u c t> </ p r o d u c t s> 12 of 47

(31)

En este contexto XML es utilizado para intercambiar datos del web.

(32)

ESCRITURA

Nombres válidos Inválidos <copyright-information> <123> <base64> <64> <décompte.client> <Juan&pedro> <firstname> <firsty name>

Reecomendaciones

• XML es sensitivo al caso, se adopta la convención de que los elementos de XML sea escritos en minúsculas.

• Se recomienda separar los nombres con guión.

• La primera letra de cada palabra debe ser mayúscula y evita uso de caracter de separación CasaCuna

(33)

Atributos

Es posible añadir información adicional a los elementos en forma de atributos, los cuales tiene un nombre y valor.

<tel preferred=true>513-555-8889</tel> Y rechazar este:

<tel preferred=true>513-555-8889</tel>

Se insiste en el uso de las marcas o comillas simples o dobles. Para XML estos dos elementos son idénticos

<email href="mailto:[email protected]/>

<email href="mailto:[email protected]»</email>

Aca los elementos no tiene contexto y se denotan como elementos vacios.

(34)

Anidación de elementos

Consideremos el caso de un directorio telefónico como el que se muestra:

Un elemento dentro de otro se denomina hijo por que está dentro de su padre

<name>

(35)

<? xml v e r s i o n=" 1 . 0 " ?> <!−− l o o s e l y i n s p i r e d by v C a r d 3 . 0 −−> <a d d r e s s −book> <e n t r y> <name>John Doe</name> <a d d r e s s> < s t r e e t>34 F o u n t a i n S q u a r e P l a z a</ s t r e e t> < r e g i o n>OH</ r e g i o n> <p o s t a l −c o d e>45202</ p o s t a l −c o d e> < l o c a l i t y> C i n c i n n a t i</ l o c a l i t y> <c o u n t r y>US</ c o u n t r y> </ a d d r e s s> < t e l p r e f e r r e d=" t r u e ">513−555−8889</ t e l> < t e l>513−555−7098</ t e l> <e m a i l h r e f=" m a i l t o : j d o e @ e m a i l a h o l i c . com " /> </ e n t r y> <e n t r y>

<name><fname>J a c k</ fname><lname>S m i th</ lname></name> < t e l>513−555−3465</ t e l> <e m a i l h r e f=" m a i l t o : j s m i t h @ e m a i l a h o l i c . com " /> </ e n t r y> </ a d d r e s s −book> 16 of 47

(36)

La raiz (root). Una y solo una cuál es???????

<?xml v e r s i o n ="1.0"? > −−−> Yo s o y l a d e c l a r a c i ó n <a d d r e s s −book>−−−> yo s o y l a r a í z <e n t r y > <name>John Doe</name> <e m a i l h r e f =" m a i l t o : j d o e @ e m a i l a h o l i c . com"/> </ e n t r y > <e n t r y > <name>J a c k S m i t h </name> <e m a i l h r e f =" m a i l t o : j s m i t h @ e m a i l a h o l i c . com"/> </ e n t r y > </ a d d r e s s −book>

(37)

<?xml version="1.0.encoding=ÏSO-8859-1¿>

Este un código recomendado por que tenemos caráctertes en latín.

(38)

Entidades. Complejas!!

XML permite organizar los documentos físicos en entidades, y deben ser declaradas en el DTD (Document Type Definition).

Si asumimos que tenemos definida una entidad denominada Estados e cual puede tener el valor "Puebla.o "Pue"las siguientes dos líneas son

equivalentes:

<estados>&Pue;</estados> <estados>Puebla</estados>

(39)

Atributos Especiales

xml:space Para aplicaciones que deseen desechar espacios duplicados. si se desean preservar entonces se debe especificar mediante preserve y lo realiza en todos los niveles empezando en el padre y siguiendo hasta sus hijos. si se pone en modo por defecto (default la aplicación utiliza el espacio predefinido.

xml:lang Esta opción pemrite definir el lenguaje en el que se escribirá el documento:

• Español <p xml:lang=.es» </p> • Inglés americano:

<p xml:lang= .en-US»What color is it?</p>

(40)

Instrucciones de procesamiento (PI)

Mecanismo que permite insertar expresiones que no están en XML, tales como scripts.

Un ejemplo de instrucción de procesamiento el elemento que indica que sigue XML:<?xml version="1.0¿>

(41)

Caracteres de escape

&lt El agrupador menor < debe ser escapado con &lt

&amp El ampersand debe ser escapado con &amp

&gt El agrupador mayor > debe ser escapado con &gt

&apos La comilla simple ’ se escapa con &apos

&quot La comilla doble "se escapa con &quot

<company>FeCal & Chapo</company> debe ser escrita como

<company>FeCal &amp Chapo</company>

(42)

Character Data: CDATA

Las secciones CDATA proporcionan una forma de informar al analizador de que no hay marcado en los caracteres que contiene la sección CDATA. Esto facilita la creación de documentos que contienen secciones donde los caracteres de marcado podrían

aparecer, pero donde no hay ningún marcado diseñado. Las secciones CDATA se utilizan comúnmente para contenido de lenguaje de secuencia y contenido de muestra de XML y HTML. Se utilizan

(43)

XML dentro de XML con CDATA

<? xml v e r s i o n=" 1 . 0 " ?> <e x a m p l e> < [CDATA[ <?xml v e r s i o n ="1.0"? > <e n t r y > <name>John Doe</name> <e m a i l h r e f =" m a i l t o : j d o e @ e m a i l a h o l i c . com"/> </ e n t r y > ] ] > </ e x a m p l e> 24 of 47

(44)

DTD: Document Type Definition

La DTD es una definición, en un documento SGML o XML, que especifica restricciones en la estructura y sintaxis del mismo. La DTD se puede incluir dentro del archivo del documento, pero normalmente se almacena en un fichero ASCII de texto separado. La sintaxis de las DTD para SGML y XML es similar pero no idéntica.

La definición de una DTD especifica la sintaxis de una aplicación de SGML o XML, que puede ser un estándar ampliamente utilizado como XHTML o una aplicación local.

(45)

Que describe una DTD

• Elementos: indican qué etiquetas son permitidas y el contenido de dichas etiquetas.

• Estructura: indica el orden en que van las etiquetas en el documento.

• Anidamiento: indica qué etiquetas van dentro de otras.

(46)

Ejemplo

Un ejemplo de una DTD XML muy simple, para describir una lista de personas:

<!ELEMENT l i s t a _ d e _ p e r s o n a s ( p e r s o n a ∗ )>

<!ELEMENT p e r s o n a ( nombre , f e c h a n a c i m i e n t o ? , s e x o ? , n u m e r o s e g u r i d a d s o c i a l ? )>

<!ELEMENT nombre (#PCDATA) >

<!ELEMENT f e c h a n a c i m i e n t o (#PCDATA) > <!ELEMENT s e x o (#PCDATA) >

(47)

Leyendo el ejemplo

1. < lista_de_personas > es un nombre de elemento válido. El *

indica que puede haber 0 o más elementos de persona.

2. < persona > es un nombre de elemento válido. Éste contiene

obligatoriamente el elemento nombre mientras que el resto son opcionales. Y lo son porque nos lo indica el símbolo ¿".

3. < nombre > es un nombre de elemento válido. Contiene caracteres. 4. < sexo > es un nombre de elemento válido. Contiene caracteres. 5. < fechanacimiento > es un nombre de elemento válido.

6. < numeroseguridadsocial > es un nombre de elemento válido.

(48)

Leyendo el ejemplo

1. < lista_de_personas > es un nombre de elemento válido. El *

indica que puede haber 0 o más elementos de persona.

2. < persona > es un nombre de elemento válido. Éste contiene

obligatoriamente el elemento nombre mientras que el resto son opcionales. Y lo son porque nos lo indica el símbolo ¿".

3. < nombre > es un nombre de elemento válido. Contiene caracteres. 4. < sexo > es un nombre de elemento válido. Contiene caracteres. 5. < fechanacimiento > es un nombre de elemento válido.

(49)

Leyendo el ejemplo

1. < lista_de_personas > es un nombre de elemento válido. El *

indica que puede haber 0 o más elementos de persona.

2. < persona > es un nombre de elemento válido. Éste contiene

obligatoriamente el elemento nombre mientras que el resto son opcionales. Y lo son porque nos lo indica el símbolo ¿".

3. < nombre > es un nombre de elemento válido. Contiene caracteres.

4. < sexo > es un nombre de elemento válido. Contiene caracteres. 5. < fechanacimiento > es un nombre de elemento válido.

6. < numeroseguridadsocial > es un nombre de elemento válido.

(50)

Leyendo el ejemplo

1. < lista_de_personas > es un nombre de elemento válido. El *

indica que puede haber 0 o más elementos de persona.

2. < persona > es un nombre de elemento válido. Éste contiene

obligatoriamente el elemento nombre mientras que el resto son opcionales. Y lo son porque nos lo indica el símbolo ¿".

3. < nombre > es un nombre de elemento válido. Contiene caracteres. 4. < sexo > es un nombre de elemento válido. Contiene caracteres.

5. < fechanacimiento > es un nombre de elemento válido. 6. < numeroseguridadsocial > es un nombre de elemento válido.

(51)

Leyendo el ejemplo

1. < lista_de_personas > es un nombre de elemento válido. El *

indica que puede haber 0 o más elementos de persona.

2. < persona > es un nombre de elemento válido. Éste contiene

obligatoriamente el elemento nombre mientras que el resto son opcionales. Y lo son porque nos lo indica el símbolo ¿".

3. < nombre > es un nombre de elemento válido. Contiene caracteres. 4. < sexo > es un nombre de elemento válido. Contiene caracteres. 5. < fechanacimiento > es un nombre de elemento válido.

6. < numeroseguridadsocial > es un nombre de elemento válido.

(52)

Leyendo el ejemplo

1. < lista_de_personas > es un nombre de elemento válido. El *

indica que puede haber 0 o más elementos de persona.

2. < persona > es un nombre de elemento válido. Éste contiene

obligatoriamente el elemento nombre mientras que el resto son opcionales. Y lo son porque nos lo indica el símbolo ¿".

3. < nombre > es un nombre de elemento válido. Contiene caracteres. 4. < sexo > es un nombre de elemento válido. Contiene caracteres. 5. < fechanacimiento > es un nombre de elemento válido.

(53)

Un XML que hace uso de la DTD definida

<? xml v e r s i o n=" 1 . 0 " e n c o d i n g=" ISO −8859−1 " ?>

<!DOCTYPE l i s t a _ d e _ p e r s o n a s SYSTEM " e j e m p l o . d t d "> <l i s t a _ d e _ p e r s o n a s>

<p e r s o n a>

<nombre>J o s é G a r c í a</ nombre>

<f e c h a n a c i m i e n t o>2 5 / 0 4 / 1 9 8 4</ f e c h a n a c i m i e n t o> <s e x o>Varón</ s e x o>

</ p e r s o n a>

</ l i s t a _ d e _ p e r s o n a s>

(54)

DTD

(55)

Declaración de Elementos y palabras especiales

<!ELEMENT address-book (entry+)>

Los paréntesis se usan para agrupar elementos en el contenido del modelo:

<!ELEMENT name (lname, (fname | title))>

Palabras especiales o keywords

• #PCDATA significa parsed character datae implica que el elemento puede contener texto. #PCDATA es comúnmente utilizada para denotar elementos hijos u hojas (la hoja no tiene hijos)

• EMPTY denota el elemento vacio.

• ANY significa que los elementos pueden contener cualquier otro elemento declarado en el DTD. ANY es utilizado a veces durante el desarrollo de un DTD. Note que los elementos deben ser declarados en el DTD.

(56)

El uso de +, ∗, ?

Indicadores de ocurrencia

• Un elemento sin indicador de ocurrrencia solo debe aprecer una vez y solamente en el elemento definido.

Un elemento seguido de -" debe una o más veces en el elemento que está siendo definido. Los elelementos se pueden repetir.

Un elemento seguido por "*" puede aparecer nunca o más veces en el elemento que esta siendo definido. el elemento es opcional pero si se incluye puede repetirse indefinidamente.

Un elemento seguido por ¿" puede aparecer una vez y no en todos los elementos que están siendo definidos. Esto indica que el

(57)

Por ejemplo la entrada name

Uso de los indicadores de ocurrencia

<!ELEMENTentry (name, address∗, tel ∗, fax ∗, email ∗) >

Indica que son hijos aceptables para la entrada name: address, tel, fax y email. Estos hijos son opcionales y se pueden repetir.

<!ELEMENTaddress(street, region?, postal − code, locality , country ) >

Indica que hijos aceptables para address son region, postal-code,

locality y country. ninguno de los hijos puede repetirse pero region es opcional.

(58)

Secreto del uso de la coma y |

1. El caracter "," significa que ambos elementos que se encuentran a la izquierda y derecha de la coma deben aparecer en el mismo orden en el documento.

2. El caracter "|" significa que solamente uno de los elementos ya sea a la izquierda o derecha de la barra debe aparecer en el documento.

elementos address y name

Aca indica que name puede tener fname o lname

<!ELEMENTname <!ELEMENTaddress(#PCDATA|fname|lname)∗ >

Acá se indica que para street debe tener en ese orden los otros campos

(59)

Atributos, declarados en el DTD

Los elementos pueden tener atributos, que son una manera de incorporar características o propiedades a los elementos de un documento. Deben ir entre comillas.

Un elemento  estudiante  puede tener un atributo  Mario  y un atributo  tipo , con valores  comecroquetas  y

 taleno  respectivamente.

<Estudiante Mario=çome croquetas"tipo="taleno» Esto es un día que Mario va paseando...<Estudiante>

(60)

Atributos, declarados en el DTD.cont

En el DTD disponemos de un mecanismo para indicar qué atributos puede tener un ELEMENT, de qué tipo, si son o no obligatorios. Para ello hacemos uso del elemento ATTLIST:

Sintáxis

<!ATTLISTelementoatributotipo − atributovalor − defecto >

Su uso sería

<!ATTLISTpagometodoCDATA”contra − reembolso” >

Y en XML

(61)

Categorias de atributos

1. Tipo cadenas: <!ATTLISTemailhrefCDATA#REQUIRED >

2. Atributos token con restricciones en el contenido del atributo

<!ATTLISTentryidID#IMPLIED >

3. Atributos enumerados que aceptan un valor en al lista de atributos

<!ATTLISTentrypreferred (true|false)”false” >

(62)

Los tipos de atributos pueden tomar cualquiera de los

siguientes valores

CDATA Para tributos tipo cadena.

ID Un identificador es el nombre único en el documento.

IDREF Debe ser el valor del ID en cualquier parte del documento, se usa para crear enlaces dentro del documento.

IDREFS Es la lista de IDREF separados por espacios.

ENTITY Debe ser el nombre de una entidad externa, sirve para asignarle a esa entidad un atributo.

ENTITIES Es la listya de ENTITY separada por espacios.

NMTOKEN Es una palabra sin espacios.

NMTOKENS es una lista de NMTOKEN separada por espacios.

Enumerated-type Lista de nmtokens separados por |, el valor tiene que ser uno de los nmtokens.

(63)

Los tipos de atributos pueden tomar cualquiera de los

siguientes valores

CDATA Para tributos tipo cadena.

ID Un identificador es el nombre único en el documento.

IDREF Debe ser el valor del ID en cualquier parte del documento, se usa para crear enlaces dentro del documento.

IDREFS Es la lista de IDREF separados por espacios.

ENTITY Debe ser el nombre de una entidad externa, sirve para asignarle a esa entidad un atributo.

ENTITIES Es la listya de ENTITY separada por espacios.

NMTOKEN Es una palabra sin espacios.

NMTOKENS es una lista de NMTOKEN separada por espacios.

Enumerated-type Lista de nmtokens separados por |, el valor tiene que ser uno de los nmtokens.

(64)

Los tipos de atributos pueden tomar cualquiera de los

siguientes valores

CDATA Para tributos tipo cadena.

ID Un identificador es el nombre único en el documento.

IDREF Debe ser el valor del ID en cualquier parte del documento, se usa para crear enlaces dentro del documento.

IDREFS Es la lista de IDREF separados por espacios.

ENTITY Debe ser el nombre de una entidad externa, sirve para asignarle a esa entidad un atributo.

ENTITIES Es la listya de ENTITY separada por espacios.

NMTOKEN Es una palabra sin espacios.

NMTOKENS es una lista de NMTOKEN separada por espacios.

Enumerated-type Lista de nmtokens separados por |, el valor tiene que ser uno de los nmtokens.

(65)

Los tipos de atributos pueden tomar cualquiera de los

siguientes valores

CDATA Para tributos tipo cadena.

ID Un identificador es el nombre único en el documento.

IDREF Debe ser el valor del ID en cualquier parte del documento, se usa para crear enlaces dentro del documento.

IDREFS Es la lista de IDREF separados por espacios.

ENTITY Debe ser el nombre de una entidad externa, sirve para asignarle a esa entidad un atributo.

ENTITIES Es la listya de ENTITY separada por espacios.

NMTOKEN Es una palabra sin espacios.

NMTOKENS es una lista de NMTOKEN separada por espacios.

Enumerated-type Lista de nmtokens separados por |, el valor tiene que ser uno de los nmtokens.

(66)

Los tipos de atributos pueden tomar cualquiera de los

siguientes valores

CDATA Para tributos tipo cadena.

ID Un identificador es el nombre único en el documento.

IDREF Debe ser el valor del ID en cualquier parte del documento, se usa para crear enlaces dentro del documento.

IDREFS Es la lista de IDREF separados por espacios.

ENTITY Debe ser el nombre de una entidad externa, sirve para asignarle a esa entidad un atributo.

ENTITIES Es la listya de ENTITY separada por espacios.

NMTOKEN Es una palabra sin espacios.

NMTOKENS es una lista de NMTOKEN separada por espacios.

Enumerated-type Lista de nmtokens separados por |, el valor tiene que ser uno de los nmtokens.

(67)

Los tipos de atributos pueden tomar cualquiera de los

siguientes valores

CDATA Para tributos tipo cadena.

ID Un identificador es el nombre único en el documento.

IDREF Debe ser el valor del ID en cualquier parte del documento, se usa para crear enlaces dentro del documento.

IDREFS Es la lista de IDREF separados por espacios.

ENTITY Debe ser el nombre de una entidad externa, sirve para asignarle a esa entidad un atributo.

ENTITIES Es la listya de ENTITY separada por espacios.

NMTOKEN Es una palabra sin espacios.

NMTOKENS es una lista de NMTOKEN separada por espacios.

Enumerated-type Lista de nmtokens separados por |, el valor tiene que ser uno de los nmtokens.

(68)

Los tipos de atributos pueden tomar cualquiera de los

siguientes valores

CDATA Para tributos tipo cadena.

ID Un identificador es el nombre único en el documento.

IDREF Debe ser el valor del ID en cualquier parte del documento, se usa para crear enlaces dentro del documento.

IDREFS Es la lista de IDREF separados por espacios.

ENTITY Debe ser el nombre de una entidad externa, sirve para asignarle a esa entidad un atributo.

ENTITIES Es la listya de ENTITY separada por espacios.

NMTOKEN Es una palabra sin espacios.

NMTOKENS es una lista de NMTOKEN separada por espacios.

Enumerated-type Lista de nmtokens separados por |, el valor tiene que ser uno de los nmtokens.

(69)

Los tipos de atributos pueden tomar cualquiera de los

siguientes valores

CDATA Para tributos tipo cadena.

ID Un identificador es el nombre único en el documento.

IDREF Debe ser el valor del ID en cualquier parte del documento, se usa para crear enlaces dentro del documento.

IDREFS Es la lista de IDREF separados por espacios.

ENTITY Debe ser el nombre de una entidad externa, sirve para asignarle a esa entidad un atributo.

ENTITIES Es la listya de ENTITY separada por espacios.

NMTOKEN Es una palabra sin espacios.

NMTOKENS es una lista de NMTOKEN separada por espacios.

Enumerated-type Lista de nmtokens separados por |, el valor tiene que ser uno de los nmtokens.

(70)

Los tipos de atributos pueden tomar cualquiera de los

siguientes valores

CDATA Para tributos tipo cadena.

ID Un identificador es el nombre único en el documento.

IDREF Debe ser el valor del ID en cualquier parte del documento, se usa para crear enlaces dentro del documento.

IDREFS Es la lista de IDREF separados por espacios.

ENTITY Debe ser el nombre de una entidad externa, sirve para asignarle a esa entidad un atributo.

ENTITIES Es la listya de ENTITY separada por espacios.

NMTOKEN Es una palabra sin espacios.

(71)

Opcionalmente:DTD especifica los valores x defecto

#REQUIRED Se debe indicar en el documento.

#IMPLIED si no se espcifica toma el valor por defecto.

#FIXED Seguido de un valor indica que el atributo debe tener valor en el documento de acuerdo a lo definido en el DTD

literal toma el valor tal cual se indica si se omitió asignarle valor.

(72)

Opcionalmente:DTD especifica los valores x defecto

#REQUIRED Se debe indicar en el documento.

#IMPLIED si no se espcifica toma el valor por defecto.

#FIXED Seguido de un valor indica que el atributo debe tener valor en el documento de acuerdo a lo definido en el DTD

literal toma el valor tal cual se indica si se omitió asignarle valor.

(73)

Opcionalmente:DTD especifica los valores x defecto

#REQUIRED Se debe indicar en el documento.

#IMPLIED si no se espcifica toma el valor por defecto.

#FIXED Seguido de un valor indica que el atributo debe tener valor en el documento de acuerdo a lo definido en el DTD

literal toma el valor tal cual se indica si se omitió asignarle valor.

(74)

Opcionalmente:DTD especifica los valores x defecto

#REQUIRED Se debe indicar en el documento.

#IMPLIED si no se espcifica toma el valor por defecto.

#FIXED Seguido de un valor indica que el atributo debe tener valor en el documento de acuerdo a lo definido en el DTD

literal toma el valor tal cual se indica si se omitió asignarle valor.

(75)

Declaración, pero no de amor

La declaración de un documento tipo es para asignar DTD a un documento.

DTD es definición, mientras que la declaración es:

<!DOCTYPE address − book SYSTEM ”address − book.dtd ” > Por ejemplo

<?xml v e r s i o n ="1.0"? >

<!DOCTYPE e n t r y SYSTEM " a d d r e s s −book . d t d "> <e n t r y >

(76)

DTD: externo a tu XML o interno a él

Interno <!DOCTYPE a d d r e s s [ <!ELEMENT a d d r e s s ( s t r e e t , r e g i o n ? , p o s t a l −code , l o c a l i t y , c o u n t r y )> <!ATTLIST a d d r e s s p r e f e r r e d ( t r u e | f a l s e ) " f a l s e "> <!ELEMENT s t r e e t (\#PCDATA)> <!ELEMENT r e g i o n (\#PCDATA)> <!ELEMENT p o s t a l −c o d e (\#PCDATA)> <!ELEMENT l o c a l i t y (\#PCDATA)> <!ELEMENT c o u n t r y (\#PCDATA)> ]>

(77)

Externo

Puede ser

<!DOCTYPE address − book SYSTEM ”http : www .xmli .comdtd address − book.dtd ” ><!DOCTYPE address − book PUBLIC ” −

//Pineapplesoft//AddressBook//EN” ”http :

//catwoman.pineapplesoft.com/dtd /address − book.dtd ” ><!DOCTYPE address − book SYSTEM ”../dtds/address −

book.dtd ” >

Universal=URL o Público=copias locales

(78)

Tipos de documentos

Bien Formados sigue la sintáxis de XML

Validos Documentos más estrictos, siguen las reglas de sintáxis y cumplen con una estructura específica.

(79)

x

(80)
(81)

x

(82)

Referencias

Documento similar

• Se puede crear o enlaces, desde un documento de Word, a páginas web, direcciones de correo electrónico, a otra parte del mismo documento o a otros archivos para que quien lo lea

If certification of devices under the MDR has not been finalised before expiry of the Directive’s certificate, and where the device does not present an unacceptable risk to health

In addition to the requirements set out in Chapter VII MDR, also other MDR requirements should apply to ‘legacy devices’, provided that those requirements

The notified body that issued the AIMDD or MDD certificate may confirm in writing (after having reviewed manufacturer’s description of the (proposed) change) that the

En estos últimos años, he tenido el privilegio, durante varias prolongadas visitas al extranjero, de hacer investigaciones sobre el teatro, y muchas veces he tenido la ocasión

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

Sanz (Universidad Carlos III-IUNE): &#34;El papel de las fuentes de datos en los ranking nacionales de universidades&#34;.. Reuniones científicas 75 Los días 12 y 13 de noviembre