Namespaces Guía 3
Definición Están basadas en el concepto de reusabilidad de componentes Una de las metas de la ingeniería de Software (Reusabilidad) XML 1.0 carece de mecanismos para soportar mezclas de dialectos
namespace El espacio de nombres es un concepto que permite a través del uso de prefijos diferenciar un elemento de otro, en el caso que tengan el mismo nombre. Además, permite a las aplicaciones conocer cuales son los elementos que debe procesar
Ejemplo de NameSpace <?xml version=“1.0”?> <cd_review> <author>Clark Evans</author> <score points=“8” out of=“10”/> Este album refleja...bla bla bla... <author>Lamb</author> es uno .. <cd id=“987987”> <title xml:space=“preserve”>Undone</title> <author>Lamb</author> <producer>Moby</producer> <year>2000</year> <track number=“1”>...</track> <track number=“2”>...</track> </cd> </cd_review>
¿Cómo utilizarlos? Incluir namespaces en sus documentos es muy sencillo Declarar el namespace y hacer uso de nombres calificados Luego utilizar los namespaces en el documento
Ejemplo Paso 1 <?xml version=“1.0”?> <review:cd_reviews xmlns:review=“http://www.cdreviews.net.df/cdrev” xmlns:cd=“http://www.cdreviews.net.df/cd/”>
Ejemplo Paso 2 <?xml version=“1.0” standalone=“yes”?> <review:cd_reviews xmlns:review=“http://www.cdreviews.net.df/cdrev” xmlns:cd=“http://www.cdreviews.net.df/cd/”> <review:author>Matthew Jhonson</review:author> <review:score points=“8” out_of=“10”/> Este es un album que bla bla bla bla....<cd:author>Lamb</cd:author> es uno de .... <cd:cd id=“786876”> <cd:title xml:space=“preserve”>Undone</cd:title> <cd:producer>Moby</cd:producer> <cd:year>2000</cd:year> <cd:track number=“1”>...</cd:track> <cd:track number=“2”>...</cd:track> </cd:cd> </review:cd_reviews>
Declaración xmlns:prefijo=“nombre” Prefijo corresponde a cualquier conjunto de caracteres exceptuando el “:” El nombre debe ser una URI válida
Ejemplos <someElement xmlns:panda=“http://www.thefactory.com/panda”> <!– aqui pueden ir todos los subs elementos que utilicen el prefijo panda </someElement>
Ejemplos 2 <xsl:transform xmlns:xsl=http://www.w3.org/1999/XSL/Transform version=“1.0” id=“FAA-XLink2HTML”>
Nombres Calificados Los nombres calificados pueden tomar dos formas Una cadena de caracteres que contiene un prefijo y un nombre (denominado parte local) separado por el “:”. xslt:x ó foo:y Como parte local myAtrribute
Detalles estructurales Alcance El alcance se rige por dos reglas : La declaración de un namespace es válida para el elemento que está especificado La regla 1 deja de regir si es redefinido el prefijo
Ejemplo <?xml version=“1.0” standalone=“yes”?> <xsl:transform xmlns:xsl=“http://www.w3c.org/1999/XSL/Transform” xmlns=“http://www.thefactory.com/panda” version=“1.0”> <history xmlns:xsl=“http://thefactory.com/panda/historynotes”> <xsl:note year=“1307”>Arresto de Templars</xsl:note> </history>
Preguntas ¿Cuál es la importancia de los namespaces? ¿cuáles ve usted que sean las mayores utilidades del uso de namespaces?
Ejercicios Defina un Documento que describa un listado de clientes con sus respectivos vendedores. Repita intencionalmente elementos como nombre y teléfono. Luego, utilice namespaces para diferenciar los contextos.