3.201 cursos gratis
6.235.079 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Programación > Primeros pasos con XML y XSL > DTD Vs XML-Schema

Primeros pasos con XML y XSL

Autor: Ricardo Borillo
Curso:  4,25/5 4,25/5 (54 opiniones) |6786 alumnos|Fecha publicación: 10/09/2004
Capítulos del curso

Capítulo 7:

 DTD Vs XML-Schema

Ejemplo de documento XML para matrícula
Definició general del documento XML que representa la imagen de matrícula de un alumno que realiza la Automatrícula en la Universitat Jaume I. En esto documento no diferenciamos si su estructura interna va a ser definida por un DTD o por un XML-Schema ...

        <?xml version="1.0" encoding="ISO-8859-1"?>
        <matricula>
          <personal>
            <dni>52945813C</dni>
            <nombre>Ricardo Borillo Domenech</nombre>
            <titulacion>Enginyeria Informàtica (Pla 2001)</titulacion>
            <curso_academico>2002/2003</curso_academico>

            <domicilios>
              <domicilio tipo="familiar">
                <nombre>C/ Principal nº1</nombre>
              </domicilio>
              <domicilio tipo="habitual">
                <nombre>C/ Secundaria nº2</nombre>
              </domicilio>
            </domicilios>
          </personal>

          <pago>
            <tipo_matricula>Matrícula ordinària</tipo_matricula>
          </pago>
        </matricula>
     
En el caso de que queramos definir la estructura del documento mediante un XML-Schema, deberemos sustituir la cabecera del documento de la forma siguiente:

        <?xml version="1.0" encoding="ISO-8859-1"?>
        <matricula xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance " xsi:noNamespaceSchemaLocation="prueba.xsd">
        ...
        </matricula>
     
Si por el contrario, queremos seguir utilizando la estructura clásica de un DTD:

        <?xml version="1.0" encoding="ISO-8859-1"?>
        <!DOCTYPE matricula SYSTEM "matricula.dtd">
        <matricula>
        ...
        </matricula>
     
Ejemplo de DTD para matrícula.-
        <!ENTITY matricula (personal, pago)>

        <!ENTITY personal (dni, nombre, titulacion, curso_academico, domicilios)>
        <!ENTITY dni (#PCDATA)>
        <!ENTITY nombre (#PCDATA)>
        <!ENTITY titulacion (#PCDATA)>
        <!ENTITY curso_academico (#PCDATA)>
        <!ENTITY domicilios (domicilio+)>
        <!ENTITY domicilio (nombre)>
        <!ATTLIST domicilio
           tipo (familiar|habitual) #REQUIRED>
        <!ENTITY nombre (#PCDATA)>

        <!ENTITY pago (tipo_matricula)>
        <!ENTITY tipo_matricula (#PCDATA)>
     
Ejemplo de XML-Schema para matrícula.-
        <?xml version="1.0" encoding="ISO-8859-1"?>
        <xs:schema xmlns:xs="
http://www.w3.org/2001/XMLSchema " xml:lang="ES">
          <xs:element name="matricula" type="tMatricula"/>
         
          <xs:complexType name="tMatricula">
            <xs:sequence>
              <xs:element name="personal" type="tPersonal"/>
              <xs:element name="pago" type="tPago"/>
            </xs:sequence>
          </xs:complexType>

          <xs:complexType name="tPersonal">
            <xs:all>
              <xs:element name="dni" type="xs:string"/>
              <xs:element name="nombre" type="xs:string"/>
              <xs:element name="titulacion" type="xs:string"/>
              <xs:element name="curso_academico" type="xs:string"/>
              <xs:element name="domicilios" type="tDomicilio"/>
            </xs:all>
          </xs:complexType>

          <xs:complexType name="tPago">
            <xs:all>
              <xs:element name="tipo_matricula" type="xs:string"/>
            </xs:all>
          </xs:complexType>

          <xs:complexType name="tDomicilio">
            <xs:sequence>
              <xs:element name="domiclio" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="nombre" type="xs:string"/>
                  </xs:all>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:schema>
     
XML-Schemas y RELAX NG.- Al igual que surgió XML Schema como una mejora necesaria sobre la idea en la que se fundamentaban las DTDs, han surgido distintas propuestas al margen de los Schemas, de estas ideas no vamos a quedar con una, RELAX NG, que es, a su vez, la fusión de otras dos iniciativas TREX y RELAX que para conseguir un mayor avance han decidido aunar fuerzas. Básicamente, RELAX NG maneja documentos XML que representan esquemas e instancias a través de un modelo abstracto de datos, esto que suena un poco oscuro viene a querer expresar que, para RELAX NG, un documento XML es la representación de un elemento y que a su vez un elemento está formado por una serie de "partes" como son: un nombre, un contexto, un conjunto de atributos y una secuencia ordenada de cero o más hijos. Y así con cada una de estas partes. Aunque la especificación completa se puede encontrar en OASIS7, vamos a mostrar cuales son la principales diferencias, no tanto conceptuales si no de uso, de RELAX NG con respecto a XML Schema. En primer lugar es importante resaltar que RELAX NG, y sus precursores RELAX y TREX, son intentos de simplificar y/o potenciar la utilidad de las DTDs en general y en particular de XML Schema. También es importante indicar que esta iniciativa no es oficial de W3.ORG, si bien está impulsándose dentro de un nutrido grupo de gente lideradas por James Clark, MURATA Makoto, y aún no está reconocido por el estándar ni tan siquiera como recomendación. En segundo lugar, podemos decir, sin mucho margen de error, que la principal mejora de RELAX NG respecto a XML Schema es la mayor simplicidad en manejo y aprendizaje que requiere. Como consecuencia de esta simplificación renunciamos al uso de los <simpleType> y <complexType> a favor del uso de, únicamente, elementos y ciertas etiquetas especiales para marcar número requerido de apariciones, tipo de dato de un elemento, etc

DTD Vs XML-Schema

Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 54 opiniones. Opina sobre este curso.

Descarga el PDF gratis

Cursos similares a Primeros pasos con XML y XSL


Cursos Valoración Alumnos Vídeo
Word e internet básicos
Te presentamos este curso básico de word e internet. Con él podrás conocer paso a paso aquellos aspectos más básicos y necesarios para poder avanzar en el mundo de la inf... [19/09/06]
 3,83/5 3.247  
Crear una página web
Te mostraremos algunos consejos para que puedas introducirte en el mundo de las páginas web, teniendo en cuenta algunos conceptos básicos. Pronto podrás mejorar tu página... [04/11/05]
 4,50/5 4.240  
PHP y MySQL. Aplicaciones Web: HTML I (segunda parte)
Programación de aplicaciones Web con PHP y MySQL. Ahora estudiaremos las páginas Web HTML, la estructura de los documentos HTML y los tipos de documentos... [02/12/08]
5/5 1.143  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail