Vous êtes sur la page 1sur 15

Unidad 7 XML.

7.1.- Antecedentes. (paco)


La mayoría de los documentos de la Web se almacenan y transmiten actualmente mediante
HTML. Ya hemos dicho que una de las fortalezas de HTML es su simplicidad, lo que
permite que pueda ser utilizado por una amplia variedad de usuarios. Sin embargo, también
podríamos decir que su simplicidad es una de sus debilidades, ya que cada vez es mayor la
necesidad de algunos usuarios de disponer de etiquetas que simplifiquen determinadas
areas y hagan los documentos HTML más atractivos y dinámicos.

En un intento de satisfacer esta demanda, los fabricantes de software han introducido


algunas etiquetas HTML específicas del explorador. Sin embargo esto hace que sea muy
difícil de desarrollar documentos web sofisticados y que puedan ser consultados por un
número amplio de usuarios. Para prevenir esta fragmentación, W3C ha diseñado un nuevo
estándar denominado XML (lenguaje de composición ampliable) que permite preservar la
independencia general con respecto a las aplicaciones que hace que HTML sea portable y
potente. XML 1.0 (segunda edición) se convirtió en una recomendación del consorcio W3C
en octubre del 2000 (W3C, 2000b) mientras que XML 1.1, que incluye soporte para
Unicode 3, fue emitido como recomendación por el W3C en febrero del 2004 (W3C,
2004a).

XML es una versión restringida de SGML (Standart Generalized Markup Languaje)


diseñada especialmente para documentos web. Por ejemplo, XML soporta enlaces que
apuntan a múltiples documentos, por oposición a los vínculos HTML, que solo pueden
hacer referencia a un único documento de destino. SGML es un sistema para definir tipos
de documentos estructurados y lenguajes de composición con los que representar instancias
de dichos tipos de documentos (ISO, 1986). SGML ha sido la forma estándar, e
independiente de los fabricantes, de mantener repositorios de documentación estructurada
durante más de una década. XML trata de proporcionar una función similar a la de SGML,
pero es menos complejo y, al mismo tiempo, esta preparado para funcionar en entornos de
red.

Significativamente, XML retiene las ventajas principales de SGML: ampliabilidad,


estructura y validación. Puesto que XML es una forma restringida de XML, cualquier
sistema completamente compatible con SGML podrá leer documentos XML, sin embargo,
XML no pretende sustituir a SGML, como tampoco pretende sustituir a HTML, que
también esta basado en SGML, en lugar de ello, XML esta diseñado para complementar
HTML, permitiendo intercambiar diferentes tipos de datos a travez de la web. De hecho, la
utilización de XML no esta limitada al etiquetado de texto, sino que las características de
ampliabilidad implican que XML también puede utilizarse para etiquetar sonidos o
imágenes, tres lenguajes populares creados con XML son MathML, SMIL y CML, entre
muchos otros.
Aunque el trabajo de definición de XML comenzó hace menos de una década, siendo
formalmente ratificado XML 1.0 por el W3C a finales de 1998, XML ya ha tenido un
impacto considerable sobre muchos aspectos de la tecnología de la información, incluyendo
las interfaces gráficas, los sistemas embebidos, los sistemas distribuidos y la gestión de
base de datos. Por ejemplo, puesto que XML describe la estructura de los datos, podría ser
un mecanismo muy útil para definir la estructura de una serie de bases de datos y orígenes
de datos heterogéneos. Con la capacidad de definir un esquema completo de base de datos,
XML podría potencialmente utilizarse para tomar los contenidos de un esquema de Oracle,
por ejemplo, y traducirlos a un esquema Informix o Sybase. XML ya se esta convirtiendo
en el estándar de facto para la comunicación de datos en el sector informático y esta
reemplazando rápidamente a los sistemas EDI (Electrinic Data Interchange) como medio
principal de intercambio de datos entre empresas.

7.2.- Estructura de los datos XML.


(Ernesto)
Estructura de un documento XML

La tecnología XML busca dar solución al problema de expresar información estructurada


de la manera más abstracta y reutilizable posible. Que la información sea estructurada
quiere decir que se compone de partes bien definidas, y que esas partes se componen a su
vez de otras partes. Entonces se tiene un árbol de pedazos de información. Ejemplos son un
tema musical, que se compone de compases, que están formados a su vez con notas. Estas
partes se llaman elementos, y se las señala mediante etiquetas.

Una etiqueta consiste en una marca hecha en el documento, que señala una porción de este
como un elemento, un pedazo de información con un sentido claro y definido. Las etiquetas
tienen la forma < teléfono>, donde nombre es el nombre del elemento que se está
señalando.

A continuación se muestra un ejemplo para entender la estructura de un documento XML:

< ?xml version="1.0? encoding="ISO88591? ?>

< !DOCTYPE Edit_Mensaje SYSTEM "Lista_datos_mensaje.dtd"

[< !ELEMENT Edit_Mensaje (Mensaje)*>]>

< Edit_Mensaje>

< Mensaje>

< Remitente>
< Nombre>Nombre del remitente< ⁄ Nombre>

< Mail> Correo del remitente < ⁄ Mail>

< ⁄ Remitente>

< Destinatario>

< Nombre>Nombre del destinatario< ⁄ Nombre>

< Mail> Correo del destinatario< ⁄ Mail>

< ⁄ Destinatario>

< Texto>

< Parrafo>

Aquí está el ejemplo de código del DTD del documento "Edit_Mensaje":

< ?xml version="1.0? encoding="ISO-8859-1? ?>

< !ELEMENT Mensaje (Remitente, Destinatario, Asunto, Texto)*>

< !ELEMENT Remitente (Nombre, Mail)>

< !ELEMENT Nombre (#PCDATA)>

< !ELEMENT Mail (#PCDATA)>

< !ELEMENT Destinatario (Nombre, Mail)>

< !ELEMENT Nombre (#PCDATA)>

< !ELEMENT Mail (#PCDATA)>

< !ELEMENT Asunto (#PCDATA)>

< !ELEMENT Texto (Parrafo)>

< !ELEMENT Parrafo (#PCDATA)>

7.3.- Esquema de los documentos XML.


(ricardo)
7.3.1 Definición de tipos de documento (DTD)

La definición de tipo de documento (DTD) define la sintaxis valida de un documento XML


enumerando los nombres de elementos que pueden aparecer en el documento, indicando
que elementos pueden aparecer en combinación con otros, como pueden anidarse los
elementos, que atributos hay disponibles para cada tipo de elemento, etc. en ocaciones se
utiliza el termino vocabulario para referirse a los elementos usados en una aplicación
concreta.

Hay cuatro tipos de declaraciones DTD:

Declaraciones de tipo elemento, declaraciones de lista de atributos, declaraciones de


entidad y declaraciones de notación, como se verá a continuación.

Declaraciones de tipo elemento

Identifican las reglas para los elementos que pueden aparecer en el documento XML. Por
ejemplo hemos especificado la siguiente regla (o modelo de contenido) para el desarrollo
STAFFLIST:

!ELEMENT STAFFLIST (STAFF)

Que indica que el elemento STAFFLIST esta compuesto de cero o mas elementos STAFF.
Las opciones de representación son:

• El asterisco (*) indica cero o mas apariciones de un elemento


• El signo mas (+) indica una o mas apariciones de un elemento
• El símbolo de interrogación (?) indica cero apariciones o exactamente una aparición
de un elemento

Un nombre que no tenga ningún signo de puntuación cualificador puede aparecer


exactamente una vez. Las comas entre los nombres de elementos indican que los elementos
deben de aparecer en sucesión; si se omiten las comas, los elementos pueden aparecer en
cualquier orden. Por ejemplo, hemos especificado la regla siguiente para el elemento
STAFF.

!ELEMENT STAFF (NAME, POSITION, DOB?, SALARY)>

Que indica que el element STAFF esta compuesto de un element NAME, un element
POSITION, un elemento opcional DOB y un elemento SALARY, en este orden. Las
declaraciones de FNAME, LNAME, POSITION, DOB y SALARY, asi como de los otros
elementos utilizados en un modelo de contenido, deben estar también presentes para que el
procesador XML compruebe la validez del documento. Estos elementos base han sido
declarados utilizando el símbolo especial #PCDATA para indicar que son datos de
caracteres analizables
• !ELEMENT STAFFLIST (STAFF)>
• !ELEMENT STAFF (NAME, POSITION, DOB?, SALARY)>
• !ELEMENT NAME (FNAME, LNAME)>
• !ELEMENT FNAME (#PCDATA)>
• !ELEMENT LNAME (#PCDATA)>
• !ELEMENT POSITION (#PCDATA)>
• !ELEMENT DOB (#PCDATA)>
• !ELEMENT SALARY (#PCDATA)>
• !ATTLIST STAFF branchNo CDATA #IMPLIED>

Sintácticamente. Observe que un elemento puede contener únicamente otros elementos,


pero que también es posible que un elemento contenga otros elementos.

Declaraciones de lista de atributos

Identifican que elementos pueden tener atributos, que atributos pueden tener, que valores
pueden contener los atributos y cuales son los valores predeterminados opcionales. Cada
declaración de atributo tiene tres partes: un nombre, un tipo y un valor opcional
predeterminado. Hay seis tipos de atributos posibles:

• CDATA: datos de caracteres, que contiene cualquier tipo de texto. La cadena de


caracteres no será analizada sintácticamente por el procesador XML, sino que se
pasa directamente a la aplicación.
• ID: se utiliza para identificar elementos individuales en un documento. Los
identificadores ID deben corresponderse con un nombre de elemento y todos los
valores ID utilizados en un documento deben ser distintos.
• IDREF o IDREFS: deben corresponderse con el valor de un único atributo ID para
algún elemento del documento.
• ENTITY o ENTITIES: deben corresponderse con el nombre de una única entidad.
De nuevo, un atributo ENTITIES pueden contener multiples valores ENTITY
separados por espacios en blanco.
• NMTOKEN o NMTOKENS: una forma restringida de cadena de caracteres,
generalmente compuesta de una única palabra. Un atributo NMTOKENS puede
contener múltiples valores NMTOKEN separados por espacios en blanco.
• Lista de nombres: los valores que el atributo puede contener.

Por ejemplo, la siguiente declaración de atributo se usaría para definir un atributo


denominado branchNo para el elemento STAFF:

!ATTLIST STAFF branchNo CDATA #IMPLIED>

Esta declaración indica que el valor branchNo es una cadena de caracteres (CDATA, datos
de caracteres) y que es opcional (#IMPLIED), no proporcionándose ningún valor
predeterminado. Además de #IMPLIED, puede especificarse #REQUIRED para indicar
que el atributo debe ser proporcionado siempre. Sino se especifica ninguno de estos
cualificadores el atributo contiene el valor predeterminado declarado, puede usarse la
palabra clave #FIXED para indicar que el atributo debe siempre tener el valor
predeterminado. Como ejemplo adicional, podríamos definir un elemento SEX que tuviera
un atributo gender que contenga el valor M o F de la forma siguiente:

!ATTLIST SEX gender (M | F) "M">

Declaraciones de entidad y de notación

Las declaraciones de entidad asocian un nombre con algún fragmento de contenido, como
por ejemplo un fragmento de texto normal, un fragmento de la DTD o una referencia a un
archivo externo que contenga texto o datos binarios. Las declaraciones de notación
identifican datos binarios externos, que el procesador XML pasa simplemente a la
aplicación. Por ejemplo podemos declarar una entidad para el texto DreamHome Estate
Agents de la forma siguiente:

!ENTITY DH #DreamHome Estate Agents>

El procesamiento de las entidades externas no analizadas sintácticamente es


responsabilidad de la aplicación. Debe declararse algún tipo de información acerca del
formato interno de la identidad después del identificador que indica la ubicación de la
entidad; por ejemplo:

!ENTITY dreamHomeLogo SYSTEM dreamhome.jpg NDATA JPEGFormat>

!NOTATION JPEGFormat SYSTEM http: ⁄ ⁄ www.jpeg.org>

La presencia del símbolo NDATA indica que la entidad no está analizada sintácticamente;
el nombre arbitrario que sigue a este símbolo es simplemente una clave para la subsiguiente
declaración de la notación. La declaración de notación asigna a este nombre un
identificador que la aplicación emplea para saber cómo gestionar dicha entidad.

7.3.2 Esquemas Xml. (ana)


El esquema XML es un lenguaje de esquema más sofisticado. Soluciona alguno de los
inconvenientes de las DTD. Soporta:

Enteros, cadenas, etc.


Restricciones de valores mínimos/máximos
Tipos definidos por el usuario
Tipos específicos mediante la restricción de otros tipos
Extensión de tipos complejos mediante una especie de “herencia”
Es un superconjunto de DTDs
Restricciones de unicidad y claves ajenas
XML Schema se especifica en términos de XML
Está integrado por espacios de nombres: diferentes partes de un documento pueden
adaptarse a esquemas diferentes
PERO: es significativamente más complicado que las DTD

Un intento de reparar muchas de estas deficiencias de DTD produjo un lenguaje de


esquema más sofisticado, XML Schema.

Entre los beneficios que ofrece XML Schema respecto a las DTDs se encuentran los
siguientes:

• Permite crear tipos definidos por el usuario

• Permite que el texto que aparece en los elementos esté restringido a tipos específicos tales
como tipos numéricos en formatos específicos o incluso tipos más complicados como listas
o uniones.

• Permite restringir los tipos para crear tipos especializados, por ejemplo especificando
valores mínimo y máximo.

• Permite la extensión de tipos complejos mediante el uso de una forma de herencia.

• Es un superconjunto de DTDs.

• Permite restricciones de unicidad y de clave externa.

• Está integrado con espacios de nombres para permitir a diferentes partes de un documento
adaptarse a un esquema diferente.

• Él mismo se especifica mediante sintaxis XML como muestra en el ejemplo anterior.

Sin embargo, el precio a pagar por estas características es que XML Schema es
significativamente más complicado que las DTDs.

Con los esquemas XML se tiene un mayor poder para definir lo que parece un documento
XML válido. Presentan varias ventajas sobre los DTDs.

Los esquemas usan sintaxis XML. En otras palabras, un esquema XML es un documento
XML. Esto significa que se puede procesar un esquema igual que cualquier otro
documento. Por ejemplo, se puede escribir una hoja de estilo XSLT que nvierta un esquema
XML en un formulario Web completo con código Java Script generado automáticamente
que valide los datos conforme se vayan introduciendo.

Los esquemas XML soportan tipos de datos. Mientras que los DTDs no soportan tipos de datos, esta
claro que esos tipos de datos fueron desarrollados con una perspectiva de publicación. Los
esquemas XML soportan todos los tipos originales de los DTDs (cosas como Ids y referencias ID).
También soportan enteros, números en punto flotante, fechas, horas, cadenas de texto, URLs y otros
tipos de datos útiles para el procesado y validación de datos. Los esquemas XML son extensibles.
Además de los tipos de datos definidos en la especificación de esquemas XML, se pueden crear
tipos de datos propios y se pueden derivar nuevos tipos de datos a partir de otros.
7.4.- Consulta y transformación. (ana)
7.4.1 Xpath.

Xpath es un lenguaje de consulta declarativo para XML que proporciona una sintaxis
sencilla para consultar partes de un documento XML (W3C, 1999c, 2003b). Fue diseñado
para usarlo con XSLT y Xpointer. Con Xpath, pueden extraerse colecciones de elementos
especificando una ruta de tipo directorio, e imponiendo cero o más condiciones a dicha
ruta. Xpath utiliza una sintaxis compacta, basada en cadena de caracteres, en lugar de una
sintaxis estructural XML basada en elementos, lo que permite que las expresiones Xpath
puedan usarse tanto en atributos XML como en direcciones URL.

Xpath trata un documento XML como un árbol lógico (ordenado), con nodos para cada
elemento, atributo, texto, instrucción de procesamiento, comentario, espacio de nombres y
raíz. La base del mecanismo de direccionamiento es el nodo de contexto (un punto de
inicio) y la ruta de ubicación, que describe una ruta desde un punto de un documento XML.

7.4.2 Xquery un lenguaje de consulta para XML.

El grupo W3C ha propuesto un lenguaje de consulta para XML denominado XQuery


(W3C, 2003h). XQuery se deriva de un lenguaje de consulta para XML denominado Quilt,
que a su vez tomó prestadas diversas características de varios otros lenguajes, como Xpath,
XML-QL, SQL, OQL, Lorel, XQL y YATL. XQuery es un lenguaje funcional en el que
una consulta se representa como una expresión. El valor de una expresión es siempre una
secuencia, que es una colección ordenada de uno o más valores atómicos o nodos; un valor
atómico es un único valor que corresponde a los tipos simples definidos en XML Schema.
Un nodo puede ser un documento, un elemento, un atributo, un texto, un espacio de
nombres, una instrucción de procesamiento o un comentario. XQuery soporta diversos tipos
de expresiones que pueden estar anidadas.

7.4.3 XSLT.

XSLT forma un subconjunto de XSL (W3C, 2003a). Se trata de un lenguaje tanto en el


sentido de la composición como en el de la programación, ya que proporciona un
mecanismo para transformar una estructura XML en otra estructura XML, en HTML o en
diversos otros formatos basados en texto (como por ejemplo SQL), aunque puede utilizarse
para definir la visualización de una página web, la principal capacidad de XSLT es cambiar
las estructuras subyacentes, en lugar de cambiar simplemente las representaciones de esas
estructuras, como sucede con CSS. XSLT es importante porque proporciona un mecanismo
para cambiar dinámicamente la vista de un documento y para filtrar los datos. También es
lo suficientemente robusto como para decodificar reglas de negocio y puede generar
gráficos (y no solo documentos a partir de los datos). Puede incluso gestionar la
comunicación con servidores (especialmente en conjunción con los módulos de script que
pueden integrarse en XSLT) y pueden generar los mensajes apropiados dentro del propio
cuerpo de XSLT.
7.5 Almacenamiento de datos XML.
(carlos)
A medida que aumente la cantidad de datos en formato XML, habrá una demanda creciente
para almacenar, extraer y consultar estos datos. La previsión es que existan dos modelos de
datos principales: centrado en los datos y centrado en los documentos. En un modelo
centrado en los datos, XML se utiliza como formato de almacenamiento e intercambio para
datos que están estructurados, que aparecen en orden regular y que lo más probable es que
vayan a ser procesados por una máquina, en lugar de leídos por una persona. En un modelo
centrado en los datos, el hecho de que los datos se almacenen y transfieran mediante XML
no es importante, pudiendo haberse utilizado otros formatos. En este caso, los datos podrían
utilizarse en un SGBD relacional, objeto-relacional u orientado a objetos.

A continuación veremos unas técnicas comunes para almacenar documentos XML.

Almacenamiento del XML en un atributo

Con esta técnica, en el pasado el código XML habría sido almacenado en un atributo cuyo
tipo de datos fuera CLOB (objeto de caracteres de gran tamaño). Más recientemente,
algunos sistemas han implementado un nuevo tipo de datos XML nativo. En Oracle, este
tipo de datos se denomina XMLType.

Los documentos XML en bruto se almacenan en forma serializada, lo que hace que sea
eficiente insertarlos en la base de datos y extraerlos en su forma original. Esta técnica
también hace que sea relativamente sencillo aplicar técnicas de indexación de texto
completo a los documentos para extracciones contextuales y basadas en la relevancia. Sin
embargo, hay algunos problemas relativos a la velocidad de las consultas generales y de los
mecanismos de indexación, que pueden requerir un análisis sintáctico sobre la marcha.
Además, las actualizaciones requieren usualmente que se sustituya el documento XML
completo por un nuevo documento, en lugar de sustituir simplemente aquella parte del
XML que ha cambiado.

Almacenamiento del XML en forma compartimentada

Con esta técnica, el documento XML se descompone en una serie de elementos


constituyentes y los datos se distribuyen entre diversos atributos de una o más relaciones.
El término que se utiliza para esta composición es compartimentación. El almacenamiento
de los documentos en forma compartimentada puede hacer que resulte más fácil indexar los
valores de ciertos elementos concretos, supuesto que estos valores se coloquen en sus
propios atributos. También es posible añadir datos adicionales relativos a la naturaleza
jerárquica del código XML, haciendo así posible recomponer la estructura y ordenación
originales en un momento posterior, y permitir que se actualice el código XML. Con esta
técnica, también es necesario crear una estructura de base de datos apropiada.
7.6 Aplicaciones. (jhon)
XML, lenguaje extensible de etiquetas. Es un meta-lenguaje que nos permite definir
lenguajes de marcado para usos determinados.

XML se propone como lenguaje para intercambio de información estructurada entre


diferentes plataformas, se puede usar en bases de datos, editores de texto, hojas de cálculo,
y casi cualquier cosa que podamos pensar.

Los documentos XML están compuestos por entidades (etiquetas), una entidad puede hacer
referencia a otra.

• Documentos bien formados: son los que cumplen las especificaciones del lenguaje
respecto a las reglas sintácticas para cualquier documento XML.
• Documentos válidos: además de bien formados, siguen una estructura y una
semántica determinada por un DTD.

Ejemplo:

< ?xml versión = "1.0" encoding = "UTF-8" standalone = "no"?>

< !DOCTYPE cliente SYSTEM "Cliente.dtd">

< cliente>

< clave> 0150 < ⁄ clave>

< nombre> José Pérez < ⁄ nombre>

< teléfono> 1212016 < ⁄ teléfono>

< ⁄ cliente>

< nombre>

< pila> José < ⁄ pila>

< nombre> José Pérez < ⁄ nombre> < paterno> Pérez

< ⁄ paterno>

< materno> León < ⁄ materno>

< ⁄ nombre>
Documentos bien formados

Estructura jerárquica de elementos

Ej. Incorrecto: < li> HTML < b> permite < i> esto < ⁄ b> < ⁄ i>

Ej. Correcto: < li> En XML la < b> estructura < i> es < ⁄ i> jerárquica

< ⁄ b>.< ⁄ li>

Ejercicio: ejemplo incorrecto con cliente.

Etiquetas vacías

< identificador DNI = "3487">

Incorrecto: < li> Esto es HTML < br> casi todo permitido < ⁄ li>

Correcto: < li> En XML, es < br ⁄ > más restrictivo < ⁄ li>

< identificador DNI = "3487"⁄ >

Un solo elemento raíz

Incorrecto:

< Cliente>

-----

< ⁄ Cliente>

< Cuenta>

-----

< ⁄ Cuenta>

Correcto:

< Banco>

< Cliente>

-----
< ⁄ Cliente>

< Cuenta>

-----

< ⁄ Cuenta>

< ⁄ Banco>

Valores de atributos

Incorrecto: < alumno aprobado = si> José Pérez < ⁄ alumno>

Correcto: < alumno aprobado = "si"> José Pérez < ⁄ alumno>

Tipo de letra

XML es sensible a mayúsculas y minúsculas

Incorrecto. 340XM

Nombre de elementos

No se pueden crear nombres que empiecen con xml, xML, XML, u otra variante. Pueden
usarse letras, subr, guion, dígitos, pero iniciar con letra o subrayado.

Las marcas (etiquetas) van entre < y >

Comentarios

< !- - código Temporal - - >

Definición de tipos de documento (DTD)

• XHTML
• MathML
• BancoML (BML)
• ClienteML (CML)

Ejemplo:

< !DOCTYPE cliente [

< !ELEMENT cliente (clave, nombre, dirección, teléfono) >


< !ELEMENT clave (#PCDATA)>

< !ELEMENT nombre (#PCDATA)>

< !ELEMENT dirección (#PCDATA)>

< !ELEMENT teléfono (#PCDATA)>

----------

----------

< !ELEMENT nombre (pila, paterno, materno)>

< !ELEMENT pila (#PCDATA)>

----------

< !ELEMENT materno (#PCDATA)>

----------

----------

Modelo de contenido

< !ELEMENT aviso (párrafo)> solo se puede contener un < párrafo>

< !ELEMENT aviso (titulo, párrafo)> debe contener un < titulo> seguido de un < párrafo>

< !ELEMENT aviso (párrafo | grafico)> puede contener un < párrafo > o un < grafico>

Ejercicio: < !ELEMENT aviso (titulo, (párrafo | grafico))>

Aviso debe contener un titulo seguido de un párrafo o un gráfico.

Indicadores de frecuencia.

? 0 o 1 vez
* 0 o más veces
+ 1 o más veces

Ejemplo:

< !ELEMENT aviso (titulo?, (párrafo +. Grafico)*) >


Declaración de listas de atributos

< !ELEMENT mensaje (de, a, texto)>

< !ATTLIST mensaje prioridad (normal | urgente) normal >

< !ELEMENT texto (#PCDATA)>

< !ATTLIST texto idioma CDATA #REQUIRED>

Ejemplo XML

< mensaje prioridad = "urgente">

< de> José Pérez < ⁄ de>

< a> Laura Gómez < ⁄ a>

< texto idioma = español> (NOTA: ESTRUCTURAR)

Hola Laura como estás?

Te envió el acta de nacimiento.

----------

----------

< ⁄ texto>

< mensaje>

Ejercicio: Escribir el DTD completo para el ejemplo anterior.

< Cliente> < Cliente>

---------- ----------

< ⁄ Cliente> < cuenta>

< Cliente> ----------

---------- o < ⁄ cuenta>

< ⁄ Cliente> < cuenta>


< Cuenta> ----------

---------- < ⁄ cuenta>

< ⁄ Cuenta> < ⁄ Cliente> más clientes

Vous aimerez peut-être aussi