<?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
Hay 54 opiniones. Opina sobre este curso.
| 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] |
|
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] |
|
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] |
|
993 | ||
Publicar en
del.icio.us
digg
meneame