Publicado el 19 de Junio del 2018
549 visualizaciones desde el 19 de Junio del 2018
296,5 KB
31 paginas
Creado hace 18a (06/11/2006)
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Direccionamiento, enlaces y formularios en XML
Jose Emilio Labra Gayo
Noviembre 2006
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Direcciones absolutas vs relativas
Las URLs pueden contener:
I Direcciones absolutas. Por ejemplo:
http://www.uniovi.es/cursos/xml/alumnos.html
I Direcciones relativas. Por ejemplo:
../notas/alumnos.html Las direcciones relativas se
resuelven respecto al documento actual.
En HTML era posible indicar una dirección de base mediante BASE
<HEAD>
<TITLE>Nota s</TITLE>
<BASE h r e f=” h t t p : / /www . u n i o v i . e s / c u r s o s / xml / a l u m n o s . h t m l ”>
</HEAD>
<BODY>
<A h r e f=” . . / n o t a s / n o t a s . h t m l ”>Nota s</A>
</HTML>
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
xml:Base
Permite especificar la URL de base de un documento XML
Las direcciones relativas tomarán dicha URL como base
<h t m l x m l n s=” h t t p : //www . w3 . o r g /TR/ x h t m l 1 / s t r i c t ”>
x m l : b a s e=” h t t p : //www . u n i o v i . e s / c u r s o s ”>
<head>< t i t l e > L i s t a de c u r s o s</ t i t l e ></ head>
<body>
<p><a h r e f=” c u r s o s . h t m l ”>C u r s o s</ a></p>
<u l>
< l i ><a h r e f=” c o c i n a . h t m l ”>C o c i n a</ l i >
< l i ><a h r e f=” b a i l e . h t m l ”> B a i l e</ l i >
</ u l>
</ h t m l>
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
xml:Base
El atributo xml:base puede a su vez ser relativo
<h t m l x m l n s=” h t t p : //www . w3 . o r g /TR/ x h t m l 1 / s t r i c t ”>
x m l : b a s e=” h t t p : //www . u n i o v i . e s / c u r s o s ”>
<head>< t i t l e > L i s t a de c u r s o s</ t i t l e ></ head>
<body>
. . .
<u l x m l : b a s e=” . . / d e p o r t e s ”>
< l i ><a h r e f=” b a s k e t . h t m l ”>B a l o n c e s t o</ l i >
< l i ><a h r e f=” g i m n a s i a . h t m l ”>G i m n a s i a</ l i >
</ u l>
</ h t m l>
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Inclusiones de XML
XInclude (2004) es una recomendación que permite incluir
documentos XML dentro de otros documentos
Existía la posibilidad de realizar inclusiones mediante entidades en
los DTDs
Se define un elemento include
<p e r s o n a s x m l n s : x i=” h t t p : //www . w3 . o r g /2001/ X I n c l u d e ”>
< x i : i n c l u d e h r e f=” a l u m n o s . xml ” />
< x i : i n c l u d e h r e f=” p r o f e s o r e s . xml ” />
</ p e r s o n a s>
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Atributos de XInclude
I href indica la URI. Si no se incluye, se supone que es ,
indicando el propio documento
I parse indica si el recurso a incluir es estructurado (xml) o
textual (text)
I xpointer indica la porción del documento a incluir. Sólo se
permite cuanto parse="xml"
I encoding indica tipo de codificación
I accept y accept-language per-
miten realizar negociación de contenido con el protocolo HTTP
< x i : i n c l u d e h r e f=” p r o f e s o r e s . xml ”
a c c e p t−l a n g u a g e=” s p ” a c c e p t=” t e x t / h t m l ” />
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Último recurso (fallback)
fallback permite especificar el contenido que se incluirá en caso
de que no sea accesible el recurso externo
< x i : i n c l u d e h r e f=” p r o f e s o r e s . xml ”>
< x i : f a l l b a c k>
No hay p r o f e s o r e s
</ x i : f a l l b a c k>
</ x i : i n c l u d e>
Si existe el recurso, el contenido de fallback se ignora
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Último recurso (fallback)
Es posible utilizar varias posibilidades
< x i : i n c l u d e h r e f=” p r o f e s o r e s . xml ”>
< x i : f a l l b a c k>
< x i : i n c l u d e h r e f=” a y u d a n t e s . xml ”>
< x i : f a l l b a c k>
No hay p r o f e s o r e s n i a y u d a n t e s
</ x i : f a l l b a c k>
</ x i : i n c l u d e>
</ x i : f a l l b a c k>
</ x i : i n c l u d e>
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Apuntadores en HTML
HTML incluía un mecanismo para apuntar a partes de una página
Web
http://www.uniovi.es/alumnos.html#pepe apuntaba al
elemento de nombre pepe en la página alumnos.html
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
XPointer
XPointer ofrece un mecanismo genérico para señalar partes de un
documento XML
Objetivo: ofrecer funcionalidad que permita marcar porciones de
documentos XML
Esta funcionalidad fue utilizada previamente e incluso patentada
por Sun
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
XPointer en vínculos
Se identifica mediante xpointer(expr) donde expr es una
expresión XPath
Pueden encadenarse varias expresiones XPointer. Selecciona el
contenido de la primera que no falle
Las URIs pueden contener un identificador de fragmento XPointer
De momento no es soportado por los principales navegadores
Suele utilizarse en combinación con XLink
alumnos.html#xpointer(//nombre[position()=last()])"
Seleccionaría el nombre del último alumno
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Apuntadores abreviados
Si no se indica nada, se refiere al elemento con el valor ID del
documento
http://www.uniovi.es/alumnos.html#pepe se refiere al
elemento cuyo valor ID es pepe
Requiere la utilización de DTDs
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Secuencias de hijos
Habitualmente se necesita referirse a una secuencia de hijos
Ejemplo: tercer hijo del segundo hijo del elemento raíz
x p o i n t e r ( / c h i l d :: ∗ [ p o s i t i o n ()=1/
c h i l d :: ∗ [ p o s i t i o n ( ) = 2 ] /
c h i l d :: ∗ [ p o s i t i o n ( ) = 3 ] )
Puede simplificarse como:
e l e m e n t ( / 1 / 2 / 3 )
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Espacios de nombre
xmlns(a=e) es un mecanismo que permite asociar el alias a al
espacio de nombres e
x p o i n t e r ( s v g=h t t p : //www . w3 . o r g /2000/ s v g )
x p o i n t e r ( / / s v g : r e c t )
Selecciona los elementos rect del espacio de nombres de SVG
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Puntos
En ocasiones, puede interesar seleccionar algo que no sea un
elemento.
Por ejemplo, la tercera palabra de un párrafo o el año en
12/06/2004
Los puntos se identifican por su nodo contenedos y un índice
(comenzando por 0)
Los nodos de texto tienen un punto inicial 0 y un punto entre cada
carácter numerado de forma consecutiva
Ejemplo: <nombre>Pepe</nombre> incluye 5 puntos
XPointer añade 2 funciones a XPath
I start-point() selecciona el punto inicial
I end-point() selecciona el punto final
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
Rangos
Un rango es un intervalo entre 2 puntos. XPointer añade 4
funciones a XPath
I range(expr) devuelve el rango que cubre la expresión XPath
expr
I range-inside(expr) devuelve el contenido interno de la
expresión XPath expr
I range-to(expr) devuelve el rango evaluando la expresión
respecto al nodo de contexto
I string-range(expr,cad,desp,long) evalúa la expr y
selecciona todas las cadenas que coincidan con cad. Es
posible indicar un desplazamiento desp y una longitud long
de las cadenas resultantes
xpointer(//titulo,"Poema",6,4) selecciona los 4
primeros caracteres que sigan Poema dentro del título
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
XPointer relativos
Existen 2 funciones que permiten modificar el contexto de la
expresión XPointer
I here() se refiere al nodo que contiene al XPointer
I origin() devuelve la localización del elemento desde el cuál
se cargó el documento. Podría ser distinto del documento
actual
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
XLink
XLink define un mecanismo para enlazar documentos entre sí
Permite enlazar 2 o más recursos
Facilita la inclusión de meta-información en los enlaces
Se pueden expresar enlaces que residen en documentos externos
Jose Emilio Labra Gayo
Direccionamiento, enlaces y formularios en XML
Contenidos
Direcciones relativas e inclusiones
XPointer
XLink
XForms
XLink: Enlaces simples
Define una conexión de una sola vía entre 2 recursos
<n o v e l a x m l n s : x l i n k=” h t t p : //www . w3 . o r g /1999/ x l i n k ”
x l i n k :
Comentarios de: Direccionamiento, enlaces y formularios en XML (0)
No hay comentarios