PDF de programación - Tecnologías XML y Web Semántica

Imágen de pdf Tecnologías XML y Web Semántica

Tecnologías XML y Web Semánticagráfica de visualizaciones

Publicado el 29 de Mayo del 2018
425 visualizaciones desde el 29 de Mayo del 2018
298,2 KB
28 paginas
Creado hace 19a (07/09/2004)
Tecnologías XML y
Web Semántica

Departamento de Informática

Universidad de Oviedo

Sesión 2

Diseño de Vocabularios XML

Espacios de Nombres
XML Schema
Diseño de Vocabularios

Departamento de Informática

Universidad de Oviedo

1

Espacios de Nombres
Problema de la Homonimia

Homonimia: Mismo nombre con diferentes propósitos

<país nombre=“Francia”>
<capital>París</capital>
</país>

<inversión>

</inversión>

<capital>7000€</capital>

¿Cómo combinar en el mismo documento estos vocabularios?

<inversiones>

<país nombre=“Francia”>

<capital>París</capital>
<capital>1200€</capital>

</país>
. . .

</inversiones>

A

mbigüedadL

Espacios de Nombres
Posibles Soluciónes

Asignar un nombre único a cada etiqueta...
Posibles soluciones:

Crear una autoridad mundial que asigne nombres...
... o usar un mecanismo ya existente: URIs
Una URI es un identificador global único

Ejemplo: http://www.aulanet.uniovi.es

SOLUCIÓN:

Asociar a cada etiqueta una URI que indica a qué
espacio de nombres pertenece...

[http:www.bolsa.com]:capital
[http:www.geog.es]:capital

2

Espacios de Nombres
Posibles soluciones

Solución fácil...

Asociar a cada etiqueta una URI

<[http://www.bolsa.com]:inversiones>

<[http://www.geog.es]:país

[http://www.geog.es]:nombre=“Francia”>

<[http://www.geog.es]:capital>París
</[http://www.geog.es]:capital>
<[http://www.bolsa.com]:capital>1200€
</[http://www.bolsa.com]:capital>

</[http://www.bolsa.com]:país>
. . .

</[http://www.bolsa.com]:inversiones>

Legibilidad...L

Espacios de Nombres
Definición

Solución: Asociar un alias a los elementos de un espacio

de nombres dentro de un ámbito
xmlns:alias define alias en el ámbito de un elemento

<bolsa:inversiones

xmlns:bolsa=“http://www.bolsa.com”
xmlns:geog=“http://www.geog.es”>

<geog:país geog:nombre=“Francia”>

<geog:capital>París</geog:capital>
<bolsa:capital>1200€</bolsa:capital>

</geog:país>
. . .

</bolsa:inversiones>

NOTA: Las URIs sólo se utilizan para que el
nombre sea único, no son enlaces, ni tienen
que contener información

3

Espacios de Nombres
Asignación Dinámica

Es posible ir asociando espacios de nombres a los

elementos según van apareciendo

<bolsa:inversiones

<geog:país

xmlns:bolsa=“http://www.bolsa.com”>

xmlns:geog=“http://www.geog.es”
geog:nombre=“Francia”>

<geog:capital>París</geog:capital>
<bolsa:capital>1200€</bolsa:capital>

</geog:país>
. . .

</bolsa:inversiones>

Espacios de Nombres
Espacio de nombres por
defecto

Mediante xmlns=“...” se define un espacio de

nombres por defecto (sin alias)

<inversiones

<geog:país

xmlns=“http://www.bolsa.com”>

xmlns:geog=“http://www.geog.es”
geog:nombre=“Francia”>

<geog:capital>París</geog:capital>
<capital>1200€</capital>

</geog:país>
. . .

</inversiones>

Se refiere a

http://www.bolsa.com

4

Espacios de Nombres
Validación con DTDs

Posteriores a los DTDs, por tanto, los DTDs no dan

soporte a Espacios de Nombres
Hay que definir los espacios de nombre usados

<!DOCTYPE inversiones [
<!ELEMENT inversiones (geog:país*)>
<!ELEMENT geog:país (geog:capital,capital) >
<!ELEMENT geog:capital (#PCDATA)>
<!ELEMENT capital (#PCDATA)>
<!ATTLIST inversiones

]>

xmlns CDATA #FIXED "http://www.bolsa.com">

<!ATTLIST geog:país

geog:nombre CDATA #REQUIRED
xmlns:geog CDATA #FIXED "http://www.geog.es">

Espacios de Nombres
Valoración

Ampliamente utilizados para combinar vocabularios
Facilitan la incorporación de elementos no previstos

inicialmente

Sintaxis extraña al principio

Uso de prefijos
URIs como elemento diferenciador...pero las URLS también

sirven para acceder a recursos

Difícil combinación con DTDs

5

XML Schema

XML Schema
Lenguajes de Esquemas

Esquema = definición de estructura de un conjunto de

documentos XML

Validar = Chequear que un documento sigue un esquema

Principal Ventaja: Protección de errores
Otras aplicaciones: Edición, compresión, enlaces de

programación, etc.

Originalmente se utilizaron los DTDs
Posteriormente se ha desarrollado XML Schema
Existen Otros:

RELAX-NG, Schematron, etc.

6

XML Schema
Características de los DTD’s

Especifican estructura del documento:

Elementos, atributos, anidamientos, etc.

Integridad referencial mínima (ID, IDREF)
Mecanismo sencillo de abstracción

Entidades » Macros

Inclusión de documentos externos
Integrados en XML (Parte de la especificación)
Sencillos de comprender (» Expresiones regulares)

XML Schema
Limitaciones de los DTD’s

La Sintaxis no es XML (difíciles de manipular)
No soportan Espacios de nombres
No permiten especificar tipos de datos (por ejemplo: enteros,

flotantes, fechas, etc.

No permiten especificar secuencias no ordenadas

((e1,e2,e3)|(e1,e3,e2)|(e2,e1,e3)|...(e3,e2,e1))

No hay soporte para declaraciones sensibles al contexto: Los
elementos se definen todos a nivel de documento, ejemplo,
contenido con el mismo nombre cuya estructura cambia en
diferentes contextos

Soporte limitado para Referencias cruzadas, no es posible
formar claves a partir de varios atributos o de elementos
No son extensibles (una vez definido, no es posible añadir

nuevos vocabularios a un DTD)

7

XML Schema
Objetivos de Diseño
Sintaxis XML
Soporte para Espacios de Nombres
Mayor expresividad

Restricciones numéricas
Integridad dependientes del contexto

Tipos de datos

Gran cantidad de tipos de datos predefinidos
Creación de tipos de datos por el usuario

Extensibilidad

Inclusión/Redefinición de esquemas
Herencia de tipos de datos
Soporte a Documentación

XML Schema
Ejemplo

alumnos.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.uniovi.es/alumnos"
xmlns="http://www.uniovi.es/alumnos">

Elemento raíz schema y

espacio de nombres

<xs:element name="alumnos">
<xs:complexType>
<xs:sequence>
<xs:element name="alumno" minOccurs="1" maxOccurs="200"

determinado

type="TipoAlumno"/>

</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="TipoAlumno">

<xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>
<xs:element name="nacim" type="xs:gYear"/>

</xs:sequence>
<xs:attribute name="dni" type="xs:string"/>
</xs:complexType>
</xs:schema>

Permite especificar
rangos de inclusión

Permite especificar

tipos

8

XML Schema
Validación

alumnos.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.uniovi.es/alumnos"
xmlns="http://www.uniovi.es/alumnos">

<xs:element name="alumnos">
<xs:complexType>
<xs:sequence>
<xs:element name="alumno" minOccurs="1" maxOccurs="200"

type="TipoAlumno"/>

</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="TipoAlumno">

<alumnos

alumnos.xml

Los espacios de nombres
deben coincidir.
También puede usarse:
xsi:noNameSpaceLocation

<xs:sequence>

xmlns="http://www.uniovi.es/alumnos”
xsi:SchemaLocation=“http://www.uniovi.es/alumnos

<xs:element name="nombre" type="xs:string"/>
alumnos.xsd”
<xs:element name="apellidos" type="xs:string"/>
<xs:element name="nacim" type="xs:gYear"/>

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance">

. . .
</alumnos>

</xs:sequence>
<xs:attribute name="dni" type="xs:integer"/>
</xs:complexType>
</xs:schema>

XML Schema
Tipos Anónimos vs. Con
nombre

<xs:element name="alumno">
<xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>

</xs:sequence>

</xs:element>


<xs:element name="alumno" type="TipoAlumno"/>

<xs:ComplexType name="TipoAlumno">
<xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>

</xs:sequence>
</xs:ComplexType>

+ legible

+ Reutilizable

9

XML Schema
Otra posibilidad:
Referencias

<xs:element name="alumno">
<xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>

</xs:sequence>

</xs:element>

<xs:element name="alumnos">
<xs:sequence>

<xs:element ref="alumno" />

</xs:sequence>
</xs:element>

XML Schema
Agrupaciones

Es posible nombrar agrupaciones de elementos y de

atributos para hacer referencias a ellas

<xs:group name="nombApell">

<xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>

</xs:sequence>

</xs:group>

<xs:complexType name="TipoAlumno">
<xs:group ref="nombApell" />
<xs:element name="carrera" type="xs:string"/>
</xs:complexType>

10

XML Schema
Tipos Complejos:
Secuencia

Tipos Complejos: Son tipos que pueden contener elementos o

atributos

Construcción básica mediante enumeración de elementos

<xs:complexType name="TipoAlumno">

<xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>
<xs:element name="nacim" type="xs:gYear"
minOccurs="0" maxOccurs="1"/>

</xs:sequence>
<xs:attribute name="dni" type="xs:integer"/>
</xs:complexType>

<alumno dni="9399390">
<nombre>Juan</nombre>
<apellidos>García García</apellidos>
<nacim>1985</nacim>
</alumno>

XML Schema
Tipos
Complejos:Alternativa

choice: Representa alternativas

OJO: Es una o-exclusiva

<xs:complexType name="Transporte">

<xs:choice>
<xs:element name="coche" type="xs:string"/>
<xs:element name="tren" type="xs:string"/>
<xs:element name="avión" type="xs:string"/>

</xs:choice>

</xs:complexType>

<transporte>
<coche>Renault R23</coche>
</transporte>

11

XML Schema
Tipos Complejos:
Contenido Mixto

El contenido Mixto permite mezclar texto con elementos

<xs:complexType name="TCom" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="emph" type="xs:string"/>

</xs:choice>

</xs:complexType>

<xs:element name="comentarios" type="TCom" />

<comentarios>
Es un poco <emph>listillo</emph>
</comentarios>

XML Schema
Tipos Complejos:
Secuencias no ordenadas

all = Todos los elementos en cualquier orden
En DTDs requería enumerar las combinaciones:

(A,B,C)|(A,C,B)|...|(C,B,A)

<xs:complexType name="TipoLibro">

<xs:all>

<xs:element name="autor" type="xs:string"/>
<xs:element na
  • Links de descarga
http://lwp-l.com/pdf11414

Comentarios de: Tecnologías XML y Web Semántica (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad