3.283 cursos gratis
6.262.191 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) |6827 alumnos|Fecha publicación: 10/09/2004

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.


Cursos similares a Primeros pasos con XML y XSL


Cursos Valoración Alumnos Vídeo
Estrategias para transmitir confianza en las empresas de Internet
Aún con una competencia cada vez mayor y más agresiva, la mayor parte de los sitios web tiene en sus propias limitaciones a su mayor enemigo de ventas. La necesi... [20/01/05]
5/5 1.735  
MySQL básico. Bases de datos y software libre (cuarta parte)
Curso de informática sobre MySQL básico incluida la instalación, configuración y descarga de MySQL. En esta cuarta parte de nuestro curso sobre Bases de datos y software ... [30/10/08]
5/5 442  
Procesos en C. Sincronización (primera parte)
Curso de informática sobre sincronización de procesos en C y señales en linux que te ofrece la posibilidad de comprender los mecanismos de comunicación entre procesos inf... [21/10/08]
5/5 993  


Publicar en   del.icio.us    digg    meneame

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