XML y tecnologías asociadas
Hacia la Web Semántica
Antecedentes históricos• 1960: Utilización de etiquetas descriptivas para codificación• 1967: Separación entre el contenido de los documentos y su
formato• 1969: GML (Lenguaje de Marcación Generalizado).
• Permitir que los subsistemas de edición y formateado de textos y los de RI compartieran documentos
• Introduce el concepto de tipo de documento
• 1985: SGML (estándar ISO 8879:1986). Estándar internacional para la descripción de la codificación electrónica de textos
• 1990: HTML• 1998: XML
Motivaciones aparición XML
• Tratar datos semi-estructurados de la web
• Organizar colecciones de datos de distintas fuentes y formatos
• Intercambiar datos entre diferentes sitios/organizaciones
XMLeXtended Markup Language
• Metalenguaje que nos permite definir lenguajes de marcado adecuados a usos determinados
• Subconjunto de SGML, simplificado y adaptado a Internet
• Marcación descriptiva• Extensible
– Los proveedores de información pueden definir nuevas etiquetas y atributos
Ventajas de XML• No pertenece a ninguna compañía y su utilización es libre• Fácilmente procesable por personas y por software• Permite su utilización en diferente hardware (ordenadores
personales, teléfonos celulares, terminales de Braille, ...)• Diseñado para ser utilizado con cualquier alfabeto
• Sustitución de cadenas de caracteres (entidades)• Separa radicalmente la información o contenido de su
presentación o formato• Un documento (XML) muchas formas de presentación (PDF,
HTML, WML, RTF, VRML, ...)
Ventajas XML (cont.)Permitirá integrar sistemas de información hasta ahora separados:– Documentos
· estructura irregular· anidados profundamente· tipos de datos relativamente simples· se da gran importancia al orden
– Relaciones · estructura muy regular· relativamente planas· tipos de datos relativamente complejos· se da poca importancia al orden
Terminología Elemento
Unidad de texto considerada como un componente estructural Atributos
Características y propiedades asociadas con elementos de un tipo determinado
DOM (Document Object Model)Árbol cuyos nodos son los elementos. Para acceder y manipular los datos almacenados en un documento XML se utiliza una colección de objetos, con varias propiedades y métodos, que representan el árbol y sus nodos.
Estructura de un documento XML
Ejemplo
• Instrucciones de procesamiento
• Declaraciones de tipo de documento (DTD)
• Etiquetas de elementos y atributos
• Entidades
• Comentarios
• Secciones marcadas
Ejemplo de documento XML
<mensaje><remite>
<nombre>Adelaida Delgado</nombre><email>[email protected]</email>
</remite><destinatario>
<nombre>Antonio F. Coca</nombre><email>[email protected]</email>
</destinatario><asunto>Saludos</asunto><cuerpo>
<parrafo>¿Hola qué tal? Hace <enfasis>mucho</enfasis> que no escribes. A ver si llamas y quedamos para tomar algo.
</parrafo></cuerpo>
</mensaje>
<?xml version="1.0"?><!DOCTYPE MENSAJE SYSTEM "mensaje.dtd">
prólogo
Instrucciones de procesamiento
Sintaxis:
Ejemplo:
<? Instrucción ?>
<?xml version="1.0"?>
Documentos XML bien formados/válidos
XML está diseñado para ser utilizado con o sin DTD
Un documento XML es válido si tiene una DTD concordante. – La DTD puede está contenida en el propio documento
XML o contenida en un fichero externo
Un documento XML está bien formado si cumple las reglas descritas en la especificación oficial XML v1.0 (http://www.w3.org/TR/REC-xml)
Documentos XML bien formados Estructura jerárquica de elementos
– Los elementos deben estar correctamente anidados, no se pueden superponer
– Sólo puede haber un elemento raíz, en el que están contenidos todos los demás
Etiquetas– Deben estar balanceadas– Las etiquetas vacías (de los elementos sin contenido) han de presentar el
símbolo “/” al final
Atributos– Los valores de los atributos han de estar entre comillas
Mayúsculas y minúsculas– XML es case-sensitive
Documentos XML bien formados, sin DTD
Cuando no se utiliza DTD el documento debe comenzar por una declaración de documento único standalone
Los documentos XML sin DTD pueden utilizar atributos pero han de ser del tipo CDATA por defecto
<? xml version=“1.0” standalone=“yes” ?>
Declaración de tipo de documento La DTD puede residir en un fichero externo (que puede ser
compartido por otros documentos) o bien estar contenida en el propio documento XML, como parte de su declaración de tipo de documento.
Si la DTD es externa, en la declaración de tipo de documento se indica dónde encontrarla:– Mediante un identificador público (PUBLIC)
– Mediante un Identificador Universal de Recursos (URI) precedido por la palabra SYSTEM.
Ejemplos:<!DOCTYPE MENSAJE SYSTEM "mensaje.dtd"><!DOCTYPE PRODUCTOS SYSTEM
"http://www.empresa.com/dtds/productos.dtd"><!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0//EN”>
Elementos y atributos en XML Etiquetas de elementos
– Cada tipo de elemento tendrá un nombre (etiqueta), indicativa de la función, su identificador genérico
o bien:
si el contenido del elemento es vacío
Es importante comprender la estructura del documento para representarla utilizando las etiquetas apropiadas
<etiqueta>contenido_elemento </etiqueta>
<etiqueta/>
Elementos y atributos en XML Atributos
– Suelen ser opcionales
– Atributo especial de identificación “id” se utiliza para dar un valor único a la ocurrencia de un elemento particular.
· Se puede utilizar para hacer referencias cruzadas
– Valores de los atributos se darán en la instancia del documento como un par atributo=“valor”, en la ocurrencia de la etiqueta de principio del elemento
Ejemplo:
<poema id=P1 estado=“borrador”> ... </poema>
Entidades
XML utiliza entidades para referenciar a objetos (ficheros, páginas web, imágenes, cualquier cosa) que no deben ser analizados sintácticamente según las reglas de XML.
Sintaxis:
&entidad;
Entidades predefinidas
Al usar una referencia a una entidad, el analizador sintáctico reemplaza la referencia con su contenido.
Entidad Carácter-------------------------< <> >& &' ‘" “
Entidades generales internas Son abreviaturas declaradas en la DTD
mediante el uso de "<!ENTITY". Ejemplo:
<!DOCTYPE texto[<!ENTITY nombre "Pepito de los Palotes Sabelotodo">]>... <texto><titulo>Historia de &nombre;</titulo></texto>
Entidades generales externas analizadas
Obtienen su contenido en cualquier otro sitio del sistema.
Se referencian mediante la palabra SYSTEM seguida de un URI.
Ejemplo:
<!ENTITY mientidad SYSTEM "http://www.servidor.com/entidades.xml">
Entidades generales externas no analizadas
Son aquéllas cuyo contenido no es texto sino por ejemplo una imagen, un archivo de vídeo, un ejecutable, etc.
Ejemplo:
<!ENTITY foto SYSTEM "http://www.servidor.com/foto.gif">
Entidades parámetro Se usan para agrupar ciertos elementos que se
repitan mucho. Para declararlas y referenciarlas se usa el símbolo
"%". Pueden ser internas y externas.
Ejemplo: <!DOCTYPE texto [<!ENTITY % elem_parrafo "<!ELEMENT parrafo (#PCDATA)>"> ...%elem_parrafo; ]>
Comentarios Son ignorados por los procesadores XML Pueden aparecer en cualquier lugar de la
instancia del documento o del prólogo pero no en las declaraciones, en las etiquetas o dentro de otros comentarios
Sintaxis:
<!-- comentario -->
Secciones CDATA
Sirven para definir texto que no será tratado por los analizadores XML.
Sintaxis:<! [CDATA [ texto_libre ]]>
Tecnologías asociadas a XML Modularidad y reutilización de documentos XML:
Espacios de Nombres Definición de Documentos:
DTDs y XML Schemas Definición de estilos:
CSS y XSL Referencias a partes de los documentos:
XPath Enlazado de documentos:
XLink, XPointer Aplicaciones:
RDF, XHTML, ...
Espacios de nombres XML Colección de nombres universales identificada por un
URI (URL o URN) que se utiliza en los documentos XML como tipos de elementos y nombres de atributos.
Declaración por defecto: declara un espacio de nombres que se utilizará para todos los elementos dentro de ese ámbito.
Declaración explícita: se define un prefijo que se utilizará para calificar los elementos que pertenezcan al espacio de nombres que se le ha asociado como xmlns:prefijo=”espacio_de_nombres”
Espacios de nombres XML. Ejemplos
<BOOK xmlns="urn:BookLovers.org:BookInfo"> <TITLE>A Suitable Boy</TITLE>
<PRICE currency="US Dollar">22.5</PRICE> </BOOK>
<BOOKS> <bk:BOOK xmlns:bk="urn:BookLovers.org:BookInfo" xmlns:money="urn:Finance:Money"> <bk:TITLE>A Suitable Boy</bk:TITLE> <bk:PRICE money:currency="US Dollar">
22.5</bk:PRICE> </bk:BOOK></BOOKS>
DTDs Conjunto de reglas que definen un documento
XML y que sirven para etiquetarlo adecuadamente Indica qué elementos, atributos y entidades están
permitidas y algunas limitaciones de cómo combinarlos
Crear una DTD es como crear nuestro propio lenguaje de marcado para una aplicación específica
Sintaxis: <! DOCTYPE tipo_doc [ ...]>
DTDs. Declaración de elementos Estructura arborescente
– Sintaxis:
<! ELEMENT id_gen especificac_contenido >
<!DOCTYPE etiqueta [
<!ELEMENT etiqueta (nombre, calle, ciudad, pais, codigo)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT calle (#PCDATA)>
<!ELEMENT ciudad (#PCDATA)>
<!ELEMENT pais (#PCDATA)>
<!ELEMENT codigo (#PCDATA)>
]>
– Ejemplo de declaración de elementos:
<! ELEMENT id_genid_gen especificac_contenido >
indica un identificador genérico asignado al elemento que se quiere definir (su nombre)
La especificación de contenido de un elemento puede ser:– EMPTY: Se utiliza para etiquetas vacías
Ejemplo: <!ELEMENT br EMPTY>
– ANY: Puede tener cualquier contenidoEjemplo: <!ELEMENT container ANY>
– Mixed: Puede tener caracteres de tipo datos (#PCDATA), opcionalmente mezclados con elementos de tipo hijos (children)
Ejemplo: <!ELEMENT enfasis (#PCDATA)><!ELEMENT parrafo (#PCDATA|enfasis)*>
– Children: Contiene sub-elementos. Se especifica un modelo de contenido (una simple gramática que gobierna los tipos permitidos para los elementos hijos y el orden en el cual pueden aparecer)
Ejemplo: <!ELEMENT aviso (titulo?, (parrafo+, grafico)*)>
<! ELEMENT id_gen especificac_contenidoespecificac_contenido >
Modelos de contenido– Si la especificación de contenido contiene más de un componente hay
que especificar el orden mediante conectores:“,” (mismo orden que el especificado), “|” (sólo puede aparecer uno), “&” (cualquier orden)
– Cada partícula de contenido puede llevar un indicador de frecuencia:“+” (una o más veces), “?” (como mucho una ocurrencia) y “*” (ausente, o una o más veces)
Ejemplo: <!ELEMENT aviso (titulo?, (parrafo+, grafico)*)> En este caso, <aviso> puede tener <titulo> o no (pero sólo uno), y puede tener
cero o más conjuntos <parrafo><grafico>, <parrafo><parrafo><grafico>, etc.
<! ELEMENT id_gen especificac_contenidoespecificac_contenido >
DTDs. Declaración de atributos En la DTD los atributos suelen declararse a continuación del
elemento– Sintaxis:
<! ATTLIST id_gen nombre tipo_valor estado/valor_defecto >
<!ATTLIST poema
id ID #IMPLIED
estado (borrador|revisado|publicado) borrador>
– Ejemplo de declaración de atributos:
<!ATTLIST id_genid_gen nombre tipo_valor estado/valor_defecto>
Indica el identificador genérico del elemento del que se declaran los atributos Si varios elementos comparten los mismos atributos se daría la lista de los
elementos implicados entre paréntesis
A continuación vienen tantas líneas nombre tipo_valor estado/valor_defecto
como atributos tenga el elemento
<!ATTLIST id_gen nombrenombre tipo_valor estado/valor_defecto>
indica el nombre del atributo
<!ATTLIST id_gen nombre tipo_valortipo_valor estado/valor_defecto>
Atributos de cadena CDATA: cadenas de caracteres cualesquiera, no analizadas
sintácticamente
Atributos enumerados Sólo pueden contener un valor de entre un número determinado de
opciones
Atributos con símbolo Normalización del valor del atributo y validación en base al tipo de
atributo que se declare Símbolos:
ID, IDREF, IDREFS ENTITY, ENTITIES NMTOKEN, NMTOKENS NOTATION
<!ATTLIST id_gen nombre tipo_valor estado/valor_defectoestado/valor_defecto>
defaultindica el valor predeterminado del atributo
#REQUIREDsignifica que no tiene valor por defecto ya que es obligatorio especificar este atributo
# IMPLIEDse utiliza cuando interesa que se pueda omitir un atributo, sin que se adopte automáticamente un valor por defecto
# FIXEDindica que el atributo tiene un valor fijo
XML Schemas
Similar a una DTD en cuanto a que define qué elementos puede contener un
documento XML, cómo están organizados, y que atributos y de qué tipo pueden tener sus
elementos
XML Schemas. Ventajas Usan sintaxis de XML Mayor riqueza de tipos de datos:
Tipos predefinidos (booleanos, fechas y horas, URIs, enteros, decimales, reales, intervalos de tiempo, etc.)
Tipos definidos por los usuarios Permite agrupar atributos Modelos de contenido:
Abierto: todos los elementos requeridos han de estar presentes, pero no es un error que también aparezcan elementos adicionales.
Refinable: permite que aparezcan elementos adicionales pero sólo si el esquema define cuáles son
Soportan los espacios de nombres
XML Schemas. Frenos
La existencia de un gran número de herramientas, tanto SGML como XML, que pueden procesar DTDs
La existencia de un gran número de tipos de documentos ya definidos usando DTDs: HTML, XHTML, etc.
Una larga experiencia de aplicación práctica de las DTDs y conocimiento de éstas por parte de la comunidad de programadores de XML y SGML
XML Schemas. Validación
Es posible convertir automáticamente las DTDs existentes en esquemas XML, con lo cual se mejoraría la descripción de los documentos
Para validar documentos frente a esquemas XML o DTDs se puede usar la herramienta XML Validator de Microsoft, accesible en http://msdn.microsoft.com/downloads/samples/internet/xml/xml_validator/
XML Schemas. Ejemplo
<Schema xmlns="urn:schemas-microsoft-com:xml-data"xmlns:dt="urn:schemas-microsoft-com:datatypes"><AttributeType name='id' dt:type='string'
required='yes'/><ElementType name='nombre' content='textOnly'/><ElementType name='persona' content='mixed'> <attribute type='id'/> <element type='nombre'/></ElementType><ElementType name='documento' content='eltOnly'> <element type='persona'/></ElementType></Schema>
<documento xmlns="x-schema:personaSchema.xml"><persona id="43027584Y"> <nombre>Pepito Pérez Pérez</nombre></persona></documento>
CSS (Cascade Style Sheet) Lenguaje de hojas de estilos diseñado para HTML Las reglas de las hojas de estilos se pueden
colocar: directamente en un documento HTML o XML, en documentos de hojas de estilos externas con la
extensión de archivo .css.
<?xml-stylesheet type="text/css" href="mystyle.css"?>
CSS1, diciembre 1996 (IE 4.x, Netscape 4.x)CSS2, mayo 1998 (IE 5.x, Netscape 6.0)CSS3, en proceso
CSS. Reglas de estilo Constan de dos partes: el selector y la
cadena de estilos. Selectores
Construcciones CSS que identifican partes de un documento HTML o XML.
Cadena de estilos Conjunto de:
propiedad: valor;
CSS1. Tipos de selectores Tipo de elemento: selecciona un elemento de un
determinado tipo y le aplica un estilo o conjunto de estilos.
Clase de atributo: permite aplicar estilos a un atributo especial. El atributo class se utiliza para definir clases de estilos de un determinado tipo de elemento.
ID de atributo: establece una regla de estilo que se puede aplicar a cualquier elemento, independientemente de su tipo.
Ejemplo de definición de un conjunto de estilos para el elemento p de un documento HTML
p { display: block; margin-bottom: 10px; font-family: Times, serif; font-size: 12pt;}
En el documento HTML se marcaría el código de párrafo de manera habitual:
<p>
Parrafo de texto.
</p>
Ejemplo de definición de una clase especial de párrafos:
p.especial { display: block; margin-bottom: 10px; font-family: Times, serif; font-size: 12pt; font-style: italic;}
En el documento HTML se marcaría el código de párrafo especial utilizando el atributo class:
<p class=”especial”>
Parrafo de texto.
</p>
Ejemplo de creación de una regla de estilo por medio del selecto ID de atributo:
#azul { color: blue; font-family: Times, serif;}
En el documento HTML se marcaría utilizando el atributo id:
<h1 id=”azul”>
Esto es un encabezamiento de color azul.
</h1>
CSS1. Propiedades display describe cómo aparece un elemento y si tiene que
aparecer. Los posibles valores son: block (aparece en un recuadro), list-item (aparece con una viñeta en un recuadro), inline (aparece en un recuadro a continuación del contenido
adyacente), none (no aparece).
width y height: determinan el ancho y alto del recuadro o las dimensiones de una imagen.
border, border-left, border-right, border-top, border-bottom. Además también se puede indicar el grosor (border-width), el color (border-color) y el estilo (border-style).
CSS1. Propiedades (cont.)
margin, margin-left, margin-right, margin-top, margin-bottom.
background-color y color text-align y text-indent: se usan para establecer,
respectivamente, la alineación y el sangrado de un elemento.
Las propiedades font: se utilizan para establecer los distintos parámetros que están asociados a las fuentes, como la familia (font-family), el tamaño (font-size), el estilo (font-style), etc.
CSS2 Añade nuevos selectores y se pueden seleccionar
elementos basándose en un patrón. Se han añadido pseudoClases, y pseudoElementos que
permiten dar formato a objetos seleccionados, objetos apuntados, etc.
Se han añadido los tipos de medios de manera que permite crear formatos diferentes dependiendo del tipo de medio que se vaya a utilizar para mostrarlo, video, TV, impresoras, etc.
Permite fuentes descargables Permite el posicionamiento de elementos y tablas
CSS3
Propone modularizar las especificaciones de CSS
Los selectores permiten seleccionar elementos en base a si contienen o no cierta palabra, o si son el único elemento de cierta clase
XSL (eXtensible Style Language)
Sintaxis XML Un mismo documento XML puede tener varias
hojas de estilo XSL que lo muestren en diferentes formatos (HTML, PDF, RTF, VRML, PostScript, sonido, etc.).
El procesador XML lleva a cabo dos procesos: Transformación (tecnología XSLT) Formateo (tecnología XSLFO)
XSLT A partir del árbol XML fuente se construye un árbol transformado,
el cual puede tener una estructura significativamente diferente del original.
Una hoja de estilo XSL consta de una serie de reglas de transformación.
Cada regla se compone de un patrón (pattern) y una acción o plantilla (template).
XSLT utiliza el patrón para seleccionar partes de un documento XML para su transformación.
Al cotejar un patrón con una parte del árbol, se usa una plantilla para determinar cómo se transforma esa parte de árbol.
XSLT utiliza expresiones XPath para recorrer un documento XML y llegar a un nodo determinado.
XSLT. Espacio de nombres
Elementos: xsl:template: contiene los patrones y datos de
transformación. xsl:value-of: se usa para insertar el valor de un
elemento o atributo en la salida resultante de la hoja de estilos.
xsl:if xsl:for-each xsl:apply-templates: se usa para aplicar plantillas que se
definen en una hoja de estilos.
<xsl:stylesheet versión=”1.0” xmls:xsl=”http://www.w3.org/1999/XSL/Transform”>
XSLT. Ejemplos<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?><?XML-STYLESHEET type="text/xsl" href="ejemplo1.xsl" ?><LIBROS> <LIBRO> <TITULO>AutoSketch</TITULO> <AUTOR NACIONALIDAD="Española">Ramón Montero</AUTOR> <PRECIO MONEDA="Euros">15.02</PRECIO> </LIBRO> <LIBRO> <TITULO>Windows 98</TITULO> <AUTOR NACIONALIDAD="Española">Jaime de Yraolagoitia</AUTOR> <PRECIO MONEDA="Pesetas">3.250</PRECIO> </LIBRO> <LIBRO> <TITULO>Web Graphics</TITULO> <AUTOR>Ron Wodaski</AUTOR> <PRECIO MONEDA="Dolares">49.95</PRECIO> </LIBRO> <LIBRO> <TITULO>Programming in Windows 95</TITULO> <AUTOR>Charles Petzold</AUTOR> <PRECIO MONEDA="Dolares">39.95</PRECIO> </LIBRO></LIBROS>
Documento XML
XSLT. Ejemplos<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <HTML> <BODY> <table border="1"> <tr><th>Titulo</th><th>Autor</th><th>Precio</th></tr> <xsl:for-each select="/LIBROS/LIBRO" order-by="+ AUTOR"> <tr>
<td><FONT SIZE="2" COLOR="red" FACE="Verdana"> <xsl:value-of select="TITULO"/></FONT></td> <td><FONT SIZE="2" COLOR="blue" FACE="Verdana"> <xsl:value-of select="AUTOR"/></FONT></td> <td><FONT SIZE="2" COLOR="green" FACE="Verdana"> <xsl:value-of select="PRECIO"/> <xsl:value-of select="PRECIO/@MONEDA"/></FONT></td
</tr> </xsl:for-each> </table> </BODY> </HTML> </xsl:template></xsl:stylesheet>
ejemplo1.xsl
XSLT. Ejemplos
Aplicación de la hoja de estilo ejemplo1.xsl
<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <HTML> <BODY> <table border="1"> <tr><th>Titulo</th><th>Autor</th><th>Precio</th></tr> <xsl:for-each select="/LIBROS/LIBRO" order-by="+ AUTOR"> <xsl:if match=".[PRECIO/@MONEDA = 'Dolares']"> <tr>
<td><FONT SIZE="2" COLOR="red" FACE="Verdana"> <xsl:value-of select="TITULO"/></FONT></td> <td><FONT SIZE="2" COLOR="blue" FACE="Verdana"> <xsl:value-of select="AUTOR"/></FONT></td> <td><FONT SIZE="2" COLOR="green" FACE="Verdana"> <xsl:value-of select="PRECIO"/> <xsl:value-of select="PRECIO/@MONEDA"/></FONT></td> </tr> </xsl:if> </xsl:for-each> </table> </BODY> </HTML> </xsl:template></xsl:stylesheet>
ejemplo2.xsl
XSLT. Ejemplos
Aplicación de la hoja de estilo ejemplo2.xsl
XSLFO
Superconjunto de CSS Cada uno de los nodos del árbol se trata como un
objeto de formateo, donde cada nodo soporta una amplia gama de estilos de presentación.
Cuando el procesador XSL procesa un objeto de formateo, se asigna a un área rectangular en la superficie de la pantalla.
Las propiedades del objeto determinan qué formato tiene, junto con los parámetros del área en la que está asignada.
XPath Con Xpath podemos seleccionar y hacer referencia a
texto, elementos, atributos y cualquier otra información contenida en un fichero XML.
Su nombre le viene de utilizar una notación de ruta (path) para navegar a través de la estructura jerárquica de un documento XML.
XPath opera sobre la estructura lógica de un documento XML, modelándolo como un árbol de nodos.
Una expresión Xpath devuelve una lista de punteros a los elementos que encajan con el patrón que representa dicha expresión.
<libro> <titulo>Dos calles</titulo> <autor>Pepa Pepo</autor> <capitulo num="1"> La primera calle <parrafo> Era una sombría noche del mes de agosto... </parrafo> <parrafo destacar="si"> Ella, inocente cual <enlace href="http://www.mariposa.com">mariposa</enlace> que surca el cielo... </parrafo> </capitulo> <capitulo num="2" public="si"> La segunda calle <parrafo> Era una oscura noche del mes de septiembre... </parrafo> <parrafo> Ella, inocente cual <enlace href="http://www.abeja.com">abeja</enlace> que surca el viento en busca de flores... </parrafo> </capitulo></libro>
Ejemplos de expresiones XPath/libro/capitulo/parrafo
referencia a todos los elementos parrafo que sean hijos de cualquier elemento capitulo que a su vez sean hijos de cualquier elemento libro que cuelgue del nodo raíz.
/libro/capitulo/@numselecciona el atributo num que posean los elementos capitulo
/libro/capitulo[@num="1"]/parrafo referencia todos los elementos parrafo de todos los elementos capitulo que tengan un atributo llamado num al cual se le haya asignado el valor "1"
/libro/capitulo[@public]/* selecciona todos los elementos hijos de los elementos capitulo que posean el atributo public
//parrafo//*[@href] selecciona todos los descendientes de parrafo que tienen un atributo href
//parrafo/text() selecciona el texto de todos los nodos parrafo
Xpointer (XML Pointer Language)
Describe cómo apuntar a un elemento de XML. Es similar a utilizar etiquetas para apuntar a una parte de los documentos HTML.
Sintaxis:
donde expresión es una expresión Xpath con algunas propiedades extra.
URI#xpointer(expresion)
XLink(XML Linking Language)
XLink describe cómo enlazar dos o más recursos.
Atributos type. Valores: simple, extended, locator, arc, resource, title, none href show. Valores: replace, new, embed, other, none actuate. Valores: onLoad, onRequest, other, none label from to role arcrole title
xmls:xlink="http://www.w3.org/XML/XLink/1.0"
XLink. Ejemplo enlace simple
<mi_documento xmlns:xlink="http://www.w3.org/1999/xlink"> ... <enlazar xlink:type="simple" xlink:href="http://www.uib.es">
xlink:label="UIB"xlink:show="new">
Este enlace apunta a la pagina de inicio de la UIB y hace que se visualice en una nueva instancia del navegador. </enlazar> ...
</mi_documento>
XLink. Ejemplo enlace extendido<mi_documento xmlns:xlink="http://www.w3.org/1999/xlink">
... <direcciones xlink:type="extended">
<locator xlink:type="locator"xlink:href="http://realmadrid.com" xlink:show="replace"xlink:actuate="onRequest"/>
<locator xlink:type="locator"xlink:href="http://fcbarcelona.com" xlink:show="new"
xlink:actuate="onRequest"/> <locator xlink:type="locator"
xlink:href="http://athmadrid.com" xlink:show="replace"xlink:actuate="onRequest"/>
Los clubes de fútbol de hoy en día... </direcciones> ...
</mi_documento>
RDF (Resource Description Framework)
Aplicación de XML para escribir metadatos que describan recursos Web (cualquier recurso identificable a través de un URI) de tal manera que puedan ser intercambiados y procesados por los ordenadores.
XML permite dotar de estructura a los documentos, RDF expresa el significado de esa estructura
Tripletas: sujeto, verbo y objeto
(Sujetos) (tienen propiedades) (con ciertos valores)(Adelaida Delgado)(es la autora de)(XML y tecnologías asociadas)(field 5 in database A) (is a field of type) (zip code)
Sujeto, verbo y objeto se identifican con URIs
XHTML
Versión de HTML conforme a XML DTD para XML Características
Existen elementos obligatorios (html, head, title, body, etc.)
Todas las etiquetas deben tener principio y fin Se ha de respetar el anidamiento de etiquetas El código ha de estar en minúsculas Los valores de atributos han de ir entre comillas dobles
Servicio de validación en http://validator.w3.org/
Top Related