<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>xslt &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/xslt/</link>
	<description>Feed of posts on WordPress.com tagged "xslt"</description>
	<pubDate>Sun, 12 Oct 2008 17:12:50 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Mobile device recognition]]></title>
<link>http://beradrian.wordpress.com/?p=137</link>
<pubDate>Fri, 10 Oct 2008 14:16:48 +0000</pubDate>
<dc:creator>Adrian</dc:creator>
<guid>http://beradrian.nl.wordpress.com/2008/10/10/mobile-device-recognition/</guid>
<description><![CDATA[Nowadays when you create a web site you should also think to the ones accessing it from a mobile dev]]></description>
<content:encoded><![CDATA[<p>Nowadays when you create a web site you should also think to the ones accessing it from a <strong>mobile device</strong>. But how you can know this?<br />
I'm going to show you next a few methods on how you can do this and present the advantages and disadvantage of each one.</p>
<h4>WURFL</h4>
<p>My favorite method of detecting a mobile device is <a href="http://wurfl.sf.net"><strong>WURFL</strong></a>. WURFL is an open source database of mobile devices capabilities. Every mobile device is identified by its <strong><code>User-Agent</code></strong> string (you can find it in the HTTP headers) and has associated a list of capabilities grouped into categories. How exactly you can use it in .NET you can see <a href="http://beradrian.wordpress.com/2008/09/04/mobile-device-filter-in-aspnet/">here</a>.<br />
You will also have to consult the <strong><code>X_DEVICE_USER_AGENT</code></strong> HTTP header because some mobile providers are <a href="http://wurfl.sourceforge.net/vodafonerant/">rewriting the User Agent<br />
</a>.<br />
More on the <code>User-Agent</code> HTTP header you can find out on <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html">W3C</a> (section 14.43).<br />
I personally like WURFL because it is open source, it tells you more than if the device is mobile or not. The downside is that probably it does not contain info about all the latest mobile devices. But you can easily become a <a href="http://wurflpro.com/static/become_a_contributor.htm">WURFL contributor</a> and submit these info yourself into the <a href="http://wurflpro.com/">WURFL database</a>. Before doing these you should familiarize very well with the <a href="http://www.wurflpro.com/static/top.htm">WURFL documentation</a>.<br />
I also like that the community is very active and the database contains approximately 7000 devices, making it a very effective method and most importantly with no false positives, unlike the next methods.<br />
Moreover, WURFL has a library for accessing the XML database implemented in Java, .NET and PHP.</p>
<h4>UAProf</h4>
<p>If WURFL is a devices database, <strong>UAProf</strong> (User Agent Profile) is a capabilities database for a single device.<br />
The mobile browser could contain an HTTP header usually named <code>x-wap-profile</code> and its value is an URL pointing to the profile described in RDF (see <a href="http://www.openmobilealliance.org/tech/affiliates/wap/wap-248-uaprof-20011020-a.pdf">UAProf specs</a> as PDF).<br />
There are some serious downsides to this method:</p>
<ul>
<li>The name of the HTTP header is not always <code>x-wap-profile</code>. It could also be <code>wap-profile</code> or <code><em>xx</em>-profile</code>, where <em>xx</em> is a number. The <code>Opt</code> header can contain this number.</li>
<li>There is no standard regarding the capabilities naming and grouping</li>
<li>Not all the devices have UAProf</li>
<li>Not all the UAProfs are still available</li>
<li>Retrieving and parsing the UAProf can be quite time consuming</li>
</ul>
<p>Altough you can use an UAProf to define a device in the WURFL database, which should be the preferred way.</p>
<h4>Browser.isMobile (.NET dependent)</h4>
<p>This is the method that I recommend the less because it is .NET dependent, not quite up-to-date and it doesn't offer too many information about the device capabilities. Anyway for your reference I include it as well.</p>
<blockquote><p><code>
<pre>
if (HttpContext.Current.Request.Browser["IsMobileDevice"] == "true")
{
    // the browser IS a mobile device
}
else
{
    // the browser IS NOT a mobile device
}
</pre>
<p></code></p></blockquote>
<p>.</p>
<h4>Next steps</h4>
<p>What you do next, after knowing with each type of device are you dealing with, it's a different story. For sure I wouldn't recommend you to create two versions of the same page. The best way will be to have only one version and to customize the layout using CSS. Then you definitely have to avoid the "evil" HTML table to build your layout. A lot of current mobile browser don't handle very good nested tables. Here a method of finding out also the mobile device capabilities (such as screen width and height) will help you in building a better layout. Altough recommended will be to use percentages instead of fixed sizes.</p>
<p>Another way will be to use XSLT to transform the desktop version into the mobile one. Please keep in mind that the transformation should be made on the server side, as almost certain the device will not have this capacity. This is a good approach and you can even transform the page into WML (or even, why not, VoiceXML) but you will have to sacrifice some performance on the server side. This is acceptable as the mobile device version traffic has a lower bandwidth. I already wrote an <a href="http://beradrian.wordpress.com/2008/09/04/xslt-handler-in-aspnet/">XSLT server side transformer</a> in .NET and should be as simple and straightforward to implement it in Java as well.</p>
<p>In conclusion, I would recommend to use a combination of the above methods for detecting mobile devices and creating mobile web pages.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[WWW Pasado, Presente y Futuro. (Breve Historia del World Wide Web)]]></title>
<link>http://janzaldo.wordpress.com/?p=28</link>
<pubDate>Thu, 09 Oct 2008 16:53:21 +0000</pubDate>
<dc:creator>janzaldo</dc:creator>
<guid>http://janzaldo.nl.wordpress.com/2008/10/09/www-pasado-presente-y-futuro-breve-historia-del-world-wide-web/</guid>
<description><![CDATA[En este post, incluyo la charla de la conferencia que impartí en el Simposium Internacional de Info]]></description>
<content:encoded><![CDATA[<p>En este post, incluyo la charla de la conferencia que impartí en el Simposium Internacional de Informática y Computación 2008 (SIINCO 2008) del Instituto Tecnológico de Chihuahua II.</p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">INTRODUCCION</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">WWW</span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">En La era de la información en que vivimos poco a poco nos hemos ido adaptando al utilizar nuevas tecnologías para mantenernos informados acerca de las circunstancias en que vivimos</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">En su nivel más básico, todas las actividades que realizamos en esta era de la información son posibles gracias a la generación, procesamiento, transmisión, y obtención de información, <span> </span>todo esto se hace sobre 5 pilares esenciales según Michael Dertouzos:</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">1. Toda la información son números.<br />
2. Esos números son unos y ceros.<br />
3. Las computadoras transforman la información ejecutando operaciones aritméticas sobre estos números.<br />
4. Los sistemas de comunicación<span>  </span>transportan la información, moviendo estos números.<br />
5. Las computadoras y los sistemas de comunicación se combinan para formar redes de computadoras, las bases de las infraestructuras de la información.</p>
<p>Conocer esto, es equivalente a saber que las llantas, la gasolina, el motor y el chasis son necesarios para hacer un carro, pero para realmente saber cómo trabaja un carro y cómo podemos hacer uso de él, necesitamos conocer como el motor convierte la gasolina en el poder que rueden las llantas que hace que el chasis se mueva y nos lleve a donde nosotros queramos.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">En esta plática conoceremos los pilares del World Wide Web, sus componentes básicos y las tecnologías que se están desarrollando actualmente. </p>
<p></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">ANTECEDENTES</span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">Hipertexto</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">El concepto de hipertexto ha sido usado para reagrupar una serie de documentos semejantes sobre la base de semejanzas o diferencias de múltiples maneras</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Estudiosos han investigado por milenios la forma para buscar e identificar piezas de información relacionada, con o sin referencias explicitas.<br />
Se han inventado esquemas de referencia como libro/capitulo/numero de verso, también se ha inventado los pies de pagina, índices, tablas de contenido, todos estos inventos han servido como medios<span>  </span>para vincular lugares en un espacio de información.</p>
<p>Hipertexto es la habilidad para expresar relaciones entre lugares en un universo de información, un lugar debe ser una pieza de información o por lo menos cualquier cosa que exista en una forma estable o recuperable. </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;">
<strong><span style="font-size:small;font-family:Calibri;">Vannevar Bush</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Un importante científico en la industria militar de los EU en los tiempos de la 2 guerra mundial y la guerra fría, fue un participante importante en la organización del proyecto Manhattan, este proyecto consistió en la elaboración de las bombas atómicas de Nagasaki e Hiroshima.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">A VB <span> </span>se le acredita la noción moderna de hipertexto, en 1945 escribió un artículo llamado As we may think en donde conceptualizó el memex, una maquina fotoelectromecánica<span>  </span>para guardar, consultar y ligar información usando microfilmes y computación análoga. VB, </p>
<p></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">Doug Engelbart</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">El primer programa de hipertexto fue NLS (oNLine System) que Doug Engelbart desarrolló en el instituto de Stanford en 1960, la visión de Doug Engelbart era<span>  </span>que las personas utilizáramos el hipertexto como una herramienta de trabajo en grupo, para ayudarse a mover el cursos de la computadora a través de la pantalla y seleccionar las ligas de hipertexto con facilidad invento un bloque de madera con censores y una pelota por dentro el cual hoy en día conocemos como mouse, el fue un gran inventor del siglo pasado algunos de sus inventos fueron el procesador de textos, la primer videoconferencia.<br />
<span> </span>Sus esfuerzos se centraban en que las personas se<span>  </span>pudieran comunicar con las computadoras de una manera muy natural.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">Ted Nelson</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Ted Nelson tenia la visión de una sociedad utópica en la cual toda la información del mundo pudiera ser publicada en hipertexto<span>  </span>para que pudiera ser compartida y que toda la gente se comunicara como iguales, a él se le atribuye el termino hipertexto, ha escrito numerosos artículos, también se le atribuye la creación de la disciplina HCI (Interacción Humano-Computadora) y desarrollo Xanadu. <span> </span>En Xanadu<span>  </span>confluyen las teorías de Vannevar Bush y Douglas Engelbart. Su objetivo es la potenciación del intelecto humano, ser simple y poder ser usado por cualquier ser humano, y además que permita convertirse en programas de gran complejidad.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Por supuesto un gran invento en la conquista por la conectividad global fue el internet, una infraestructura general de comunicaciones<span>  </span>que liga a las computadoras y sobre la cual el web corre, el internet es un conjunto de protocolos estandarizados que dictan como se envían los datos de una PC a otra, estos datos son transmitidos a través de transportadores como líneas de teléfono, cable, canales de satélite.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">Tim Berners Lee.</span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Nació en Londres Inglaterra, graduado del Queens College de la universidad de Oxford, Tim Berners-Lee comenzó con una idea: crear algo para hacer más fácil la vida, y mejorar la manera de compartir ideas entre las personas. <span> </span>En pocos años esa idea se convirtió en algo indispensable para la mayoría de la gente, que no puede vivir sin ella. <span> </span>El surgimiento del Web comenzó en 1980 en el CERN, el laboratorio europeo de Física en partículas ubicado en suiza.<br />
En el CERN trabajaban alrededor de 3000 científicos de diferentes nacionalidades, los científicos llegaban al CERN de varias universidades, utilizaban los equipos del CERN y se regresaban a sus laboratorios para analizar los resultados y sacar conclusiones, la primera asignación de Berners Lee en el CERN fue el desarrollo de un sistema para almacenar la información acerca de que computadoras utilizaban cuales científicos y en qué proyectos estaban trabajando, a este sistema lo llamó enquire por una enciclopedia que él veía de niño, y se le conoce como el primer prototipo del web, este sistema no usaba árboles ni estructuras para guardar la información utilizaba ligas de hipertexto.<br />
Las ligas eran de dos tipos internas y externas, la diferencia era que las internas se ligaban a una página (nodo)<span>  </span>dentro de un archivo y las ligas externas se ligaban a otros archivos, otra diferencia era que las ligas internas aparecían en los 2 nodos mientras que las ligas externas solo tenían una dirección.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">A Tim Berners Lee, le gustaba la idea de que una pieza de información es realmente definida solo por lo que está relacionado a ella y la manera en cómo está relacionada. Por ejemplo como las neuronas en nuestros cerebros, las neuronas son solo celdas, el cerebro no tiene conocimiento hasta que se forman las conexiones entre nuestras neuronas, todo lo que conocemos y lo que somos viene de la manera en como las neuronas están conectadas.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Posteriormente Berners-Lee termino<span>  </span>su estancia en el CERN pero volvió 4 años después.<br />
En 1989 el CERN era el nodo más grande de internet en Europa y Berners Lee tuvo la visión de unir el Internet con el hipertexto, formuló una propuesta pero no fue muy aceptada, en septiembre de 1990 Berners Lee y su Jefe fueron <span> </span>a Versalles a una conferencia de tecnologías de hipertexto para conocer los productos que ya estaban en el mercado y se intereso por dos, uno de una compañía llamada OWL LTD un producto que se parecía mucho a lo que TBL había pensado de un navegador Web,<span>  </span>era un programa que abría y desplegaba documentos cuando se le daba clic en una liga de hipertexto, pero la gente de OWL<span>  </span>no se interesó mucho. También le gustó otro de Dynatext Electronic Books ellos tampoco se interesaron en la propuesta de TBL, ellos insistían en una base de datos centralizada de links para asegurarse que no hubiera ligas rotas, aparte querían mandar aplicaciones compiladas en su caso libros completos, cuestión que chocaba con la visión de TBL de un mundo vivo de hipertexto en el cual todas las páginas estuvieran cambiando constantemente, debido a las decepciones decidió crear el Web por sí solo, en octubre de 1990 comenzó a escribir el código para el web.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Lo primero que escribió fue el cliente web, después el protocolo http junto con el URL.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">COMPONENTES</span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>URI-URL</strong>.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Son cadenas que se utilizan en lugar de instrucciones y contiene todos los detalles esenciales para la obtención de recursos de una manera compacta. En estas cadenas las diagonales son usadas para delimitar sus partes, la primer parte es el esquema o protocolo de comunicación para buscar un documento, la parte siguiente identifica el servidor en donde el documento existe y la siguiente la ubicación del recurso en el servidor.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>HTTP</strong> <span> </span></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Es el protocolo para la transferencia de hipertexto y de otro tipo de documentos en el Internet, consiste de un intercambio de mensajes de petición y de respuesta, Los mensajes de petición de un cliente empiezan <span> </span>con un código de operación (conocido como método) y el URI del objeto. Los mensajes de respuesta de un servidor comienzan con un código de estatus e información acerca del recurso.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">HTML</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Es una manera sencilla de representar hipertexto, algo importante acerca de HTML es que debe llevar solo la estructura de un documento hipertexto ,<span>  </span>no los detalles de su presentación, esta es la única manera de desplegar razonablemente en cualquier variedad de pantallas diferentes.<br />
HTML está basado en el estándar generalizado de lenguaje de marcado (SGML)<span>  </span>un estándar para publicación de documentos por la comunidad de hipertexto.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">HTML está definido como un lenguaje de comunicación el cual corre a través de la red pero no hay un requerimiento de que los archivos sean almacenados en formato HTML. Como los lenguajes dinámicos con otro tipo de formato pero al final convierten su salida a código HTML.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">CSS</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">El principio principal detrás de la independencia de dispositivos y accesibilidad, es la separación entre la forma<span>  </span>en cómo está estructurado un documento y el contenido <span> </span>del mismo, donde el significado de un documento es guardado por separado de la manera en que debe desplegarse.<br />
La independencia de dispositivos y la accesibilidad son mas fáciles de mantener por medio de las hojas de estilo en cascada o CSS, que son un conjunto de instrucciones de cómo se presenta o transforma la información de una página.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">JAVASCRIPT</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">El primer navegador que existió se llamó otherwise de los estudiantes de la universidad de Helsinki en Finlandia en abril de 1992, después le siguió violaWWW, de la universidad de Berkeley este navegador, podía mostrar HTML con gráficos, animaciones y bajar pequeñas aplicaciones llamadas posteriormente Applets, <span> </span>después surgió Netscape Navigator y en su versión 2.0 apareció por primera vez javascript, javascript está basado en el estándar ECMAScript.<br />
Una característica muy importante de javascript es su herencia de prototipos, javascript tiene un sistema de objetos libre de clases, en donde los objetos heredan propiedades directamente de otros objetos, esto es realmente poderoso aunque diferente a la programación por clases. Una desventaja muy importante es su dependencia de <span> </span>variables globales. </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">DOM</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">El DOM es un conjunto de estándares para la interfaz de los navegadores. <span> </span>Define la estructura lógica de los documentos y la manera en que un documento puede ser leído y manipulado. Con el DOM los programadores puede construir documentos, navegar su estructura y agregar, modificar o borrar elementos y contenido. Cualquier elemento (nodo) que esté en un documentos HTML o XML puede ser accesado, cambiado o agregado usando el DOM.<br />
Fue creado como estándar de la W3C para evitar las incompatibilidades de los diferentes navegadores.<br />
Un documento DOM es una colección de nodos, o piezas de información organizada de manera jerárquica. Esta organización permite al desarrollador navegar alrededor del árbol (como esta basado en una estructura jerárquica de información se dice que el DOM es basado en árbol) buscando por información especifica. El DOM es una manera de describir esos nodos, sus métodos y propiedades así como las relaciones que hay entre ellos.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;"> </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">XML</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">XML permite servir, recibir, y procesar SGML genérico<span>  </span>en el Web, de la manera que no es posible con HTML, fue diseñado de una manera en que es sencilla su implementación y para la interoperabilidad entre SGML y HTML.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">W3C</span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">Que es</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Cuando comenzó la explosión del WWW, Berners Lee se dio cuenta de que se necesitaba de un órgano regulador con el propósito de llevar a el web a su mayor potencial, principalmente desarrollando protocolos comunes para mejorar la interoperabilidad y la evolución del web. </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">A semejanza del IETF (Internet Enginering Task Force), el W3C desarrollaría especificaciones técnicas abiertas, y a semejanza de un consorcio industrial el W3C representaría el poder y la autoridad de millones de desarrolladores, investigadores, instituciones y usuarios para publicar los más recientes avances en tecnología de información.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Un avance significativo en el desarrollo de internet fue en 1994 cuando Netscape desarrolló SSL un protocolo para proteger las compras con tarjeta de crédito y transacciones electrónicas, y surgió el primer programa que permitió el e-commerce que empezó a ganar credibilidad. Las etapas para crear un estándar son:</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">1. Proyecto de trabajo<br />
2.Ultima llamada del proyecto de trabajo.<br />
3. Candidato a recomendación.<br />
4. Recomendación propuesta.<br />
5.<span>  </span>Recomendación W3C (Estándar Web)</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">La w3c define mecanismos no políticas.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><span> </span><br />
<strong>Quienes pertenecen</strong></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;">La membresía del W3C está abierta a cualquier compañía, DEC, Netscape, HP, IBM, fueron los primeros miembros.<br />
En los inicios del consorcio las cuotas eran de 50 mil dólares para la membresía completa y de 5mil dólares por membresía de afiliado, los beneficios eran los mismos la diferencia es que para la membresía de afiliado tenían que ser una organización sin fines de lucro, gubernamentales o tener ganancias menores a los 50 millones de dólares, los miembros tienen el derecho a asistir gratis a cualquier junta y sentarse a cualquier grupo de trabajo y tener acceso exclusivo a información acerca de todas las actividades del consorcio. Hoy en día las tarifas también consideran la ubicación geográfica del organismo, por ejemplo para México una membresia de<span>  </span>octubre del 2008 a octubre de 2009 es de 68,500 dólares para compañías con ganancias mayores a los 50 millones de dólares anuales,<span>  </span>7,900 dólares para compañías con ganancias entre 30 y 50 millones de dólares, y para todas las demás 3,810 dólares.</p>
<p><strong>USABILIDAD.</strong></span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>Usabilidad.</strong><br />
Todo usuario que accede a un Portal de Internet, esta motivado por una razón específica: buscar, aprender, ejecutar una transacción, monitorear, crear, conversar o simplemente entretenerse.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>Estrategias.<br />
</strong>Las implicaciones para el diseño de un portal son simples de entender, pero no siempre son fáciles de implementar, reacciones, preferencias, contexto social, creencias, son aspectos generales de los usuarios que se deben de tomar en cuenta para lograr un buen resultado.<br />
Dentro del diseño se deben considerar los indicadores, que son características que ayudan a los usuarios a saber donde están, a donde ir y como llegar de donde esta, o que otras opciones existen dentro del portal, los indicadores mas comunes incluyen páginas y títulos de ventanas, logos, tabs, o indicadores de selección.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>Interfaces.<br />
</strong>Existen varios temas relacionados con la Usabilidad, patrones de diseño, métodos y procedimientos que requieren de su consideración cuando se desarrolla un Portal de Internet, para asegurar el mayor resultado posible, los desarrolladores deben considerar un rango amplio de temas acerca de interfaces de usuario, y trabajar para crear un Sitio Web que permita el mayor desempeño humano posible.<br />
Las interfaces son muy importantes porque son el medio por el cual los humanos nos comunicamos con las computadoras</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>HCI</strong><br />
HCI,<span>  </span>es la disciplina que estudia el diseño, implementación, uso y evaluación de los sistemas interactivos, para que los humanos tengamos mejor interacción con las computadoras.<br />
Si ellos no pueden usarlo, no lo usarán.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>ACCESIBILIDAD.<br />
Que es<br />
</strong>Uno de los principios del web es que las personas puedan enviar o acceder información entre ellas sin importar el sistema operativo, los formatos que las computadoras usen, o las discapacidades de las personas, lo único que tienen que hacer es seguir el mismo esquema simple de direccionamiento de URI, la idea de la universalidad es la llave, no necesariamente se tiene que usar HTTP o HTML pero son herramientas que ayudan a los problemas de incompatibilidad.<br />
Accesibilidad Web significa que gente con discapacidades puedan usar el Web, más específicamente, accesibilidad web significa que la gente con algún tipo de discapacidad, puedan percibir, entender, navegar e interactuar con el web y puedan contribuir al web.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>Porque es importante<br />
</strong>La interoperabilidad entre dispositivos ha sido una molestia durante mucho tiempo, Como el web se ha convertido en una importante fuente de recursos en diversos aspectos (educación empleo, gobierno, comercio, salud, y más)<span>  </span>Es esencial que el<span>  </span>web sea accesible en orden de proveer<span>  </span>un acceso y oportunidad<span>  </span>equitativo a las personas con discapacidades.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>Técnicas</strong><br />
La mayoría de las responsabilidades de la<span>  </span>accesibilidad se centran en los desarrolladores Web.<br />
Hacer un sitio web <span> </span>accesible puede ser simple o complejo dependiendo de muchos factores tales como el tipo de contenido, el tamaño y la complejidad del sitio, y el desarrollo de herramientas.<br />
Muchas de las características de accesibilidad son fácilmente implementadas si estas son planeadas desde el principio del desarrollo o el rediseño del sitio web, arreglar sitios web inaccesibles<span>  </span>requiere de mucho esfuerzo.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">TECNOLOGIAS</span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>Rich Internet Applications.</strong><br />
Del 2001 al 2005 el WWW tuvo un gran crecimiento en términos de tecnologías y metodologías para usarse y cambiar de medios estáticos a contenidos más interactivos.<br />
A medida que los navegadores implementaban innovaciones de tecnología, los desarrolladores web comenzaron a experimentar con nuevas formas de interacción para los usuarios, se acabaron las cargas de páginas completas y se sustituyeron por pequeñas actualizaciones de bloques de información, las primeras compañías que experimentaron con esta nueva forma de desarrollos web, fueron Google,<span>  </span>y Yahoo.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>Web Services.<br />
</strong>Los web services proveen una manera para intercambiar datos entre aplicaciones y servidores. Para facilitar esta comunicación, los web services usan Internet para mandar mensajes compuestos de datos XML entre un cliente (la aplicación que usa los datos) y un proveedor (el servidor que contiene los datos). SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. SOAP fue creado por Microsoft, IBM y otros y está actualmente bajo el auspicio de la W3C. Es uno de los protocolos utilizados en los servicios Web.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>AJAX.<br />
</strong><span> </span>En febrero del 2005 Jesse James Garret<span>  </span>de la compañía Adaptive Path, publicó un artículo denominado Un nuevo acercamiento de las aplicaciones Web. En este ensayo explicó como el pensaba como las aplicaciones Web y las aplicaciones de escritorio estaban<span>  </span>acercándose cada vez mas.<br />
AJAX permite comunicarse con el servidor por medio de peticiones más ligeras y especificas, con AJAX no hay necesidad de cargar una página entera solo para actualizar los valores de una determinada sección ya que el cliente es libre de comunicarse con el servidor y obtener información sobre demanda, la ventaja de esto es que los clientes experimentan una mejora de navegación en los sitios o aplicaciones ya que al no tener que cargar todo el contenido nuevamente, las respuestas hacia los usuarios son más rápidas, la desventaja es que debido al incremento de peticiones hacia el servidor se aumenta el desempeño del servidor de aplicación, obviamente este aumento depende del funcionamiento de la aplicación.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>FLEX</strong><br />
Flex es un producto de Adobe, para el desarrollo de RIA’s<span>  </span>esta basado en tecnología <span> </span>Flash, y es una plataforma para las empresas que desean implementar aplicaciones mas interactivas en sus sitios web. Se usa en todo tipo de industria ya que <span> </span>es muy potente y tiene muy buen manejo de todas las tecnologías web.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>Navegadores</strong><br />
Docenas de navegadores web han sido desarrollados por personas <span> </span>desde hace muchos años, el primer navegador ampliamente utilizado fue NCSA Mosaic que se convirtió en Netscape Navigator, y fue el más utilizado hasta que Microsoft <span> </span>Internet Explorer tomó el liderato en 1999 debido a la ventaja de distribución. En el 2002 fue liberada una versión de código abierto de Netscape<span>  </span>llamado Mozilla con la idea de que IE era mayor que Netscape pero no mayor que toda la comunidad Web, Mozilla ha ganado mercado particularmente con los usuarios de plataformas que no son Windows, gran parte debido a su fundación abierta, y en 2004 fue liberado FireFox. Amaya es el navegador oficial de el W3C.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">WEB SEMANTICA </span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>¿Qué es?</strong><br />
La Web semántica o Web 2.0 es la idea inicial del Web, un ambiente colaborativo en donde se puede publicar información. <span> </span>La Web Semántica tiene que ver con calidad de la información, privacidad y confianza</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">WEB ANALITICS</span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>¿Qué es?</strong><br />
Si las ideas de la gente, las interacciones y los patrones de trabajo pudieran ser rastreados usando el web entonces un análisis computarizado nos puede ayudar a ver patrones en nuestro desempeño y de esta manera facilitar nuestro trabajo en grupo.<br />
Las máquinas son capaces de analizar todos los datos del Web, el contenido, ligas y transacciones entre las personas y las computadoras.</span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">AMBIENTES COLABORATIVOS</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">El web es más una creación social que técnica Berners Lee lo diseñó para un efecto social, para ayudar a la gente a trabajar junta. La esencia de trabajar juntos en una manera de Red, es que nosotros funcionamos en grupos y el Web nos sirve como herramienta para este propósito. </span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;"><span style="font-family:Calibri;">Google</span></span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;"><span style="font-family:Calibri;"><strong>Redes Sociales.</strong><br />
Las redes sociales son la base del Web 2.0 la llave de las redes sociales son la integridad que engloba la privacidad y la confidencialidad. La privacidad envuelve la habilidad de cada persona para dictar que se puede y que no se puede hacer con su propia información personal </span></span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><strong><span style="font-size:small;font-family:Calibri;">CONCLUSIÓN</span></strong></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;">Para realmente trabajar en el Web, necesitamos de mucho mejores herramientas, mejores formatos para presentar información al usuario, interfaces mas intuitivas<span>  </span>e integración con otros sistemas, poco a poco se están adoptando los sistemas de computación en un mundo de hipertexto global.</span></p>
<p class="MsoNormal" style="margin:0 0 10pt;"><span style="font-size:small;font-family:Calibri;"> </span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[XSL in Adobe AIR]]></title>
<link>http://deadinkvinyl.wordpress.com/?p=145</link>
<pubDate>Thu, 09 Oct 2008 05:22:46 +0000</pubDate>
<dc:creator>dlkinney</dc:creator>
<guid>http://blog.deadinkvinyl.com/2008/10/09/xsl-in-adobe-air/</guid>
<description><![CDATA[Brian Riggs shows us how to perform client-side XSL/XSLT in an AIR application. Thanks to Brian for ]]></description>
<content:encoded><![CDATA[<p>Brian Riggs shows us <a href="http://blogs.adobe.com/briggs/2008/05/using_air_for_xslt_processing.html">how to perform client-side XSL/XSLT in an AIR application</a>. Thanks to Brian for shining light on this, and thanks to Mike Chambers for <a href="http://twitter.com/mesh/statuses/951840353">sharing the link</a> on Twitter today. Brian&#8217;s post is from May, so many of you may have already seen it.</p>
<p>The solution Brian outlines requires JavaScript because the only XSL toolkit AIR provides is inside of the WebKit HTML rendering engine. Consequently, AIR developers working with the Flash or Flex APIs will need to use an ActionScript-JavaScript bridge. Brian provides a nice code snippet showing how to create that bridge. Great, but still a kludge. </p>
<p>Unfortunately, XSL doesn&#8217;t seem to have made it into the <a href="http://livedocs.adobe.com/flex/gumbo/langref/">Gumbo API</a> for the next version of Flex and AIR. There is also no mention of XSL in Mike Chambers&#8217; September post <a href="http://www.mikechambers.com/blog/2008/09/11/adobe-air-15-cosmo-builds-now-in-flex-sdk-nightly-builds/">about AIR 1.5</a>. I have <em>not</em> had an opportunity to pull down a recent nightly build of the Flex trunk to verify that the ActionScript API for AIR continues to lack XSL support, but all indications are that XSL is not present. </p>
<p>A little bit of Googling indicates that I am not alone in desiring XSL capabilities in AIR that do not require a bridge to JavaScript. I know that XSL is not like the hot stuff that Adobe like to tout in its products (<acronym title="Online Analytical Processing">OLAP</acronym> only made it in because of its use in visualization), but it&#8217;s a real asset for enterprise developers. </p>
<p>I suspect that Adobe&#8217;s plan may be to leave out XSL&#8212;and a lot of other large-but-niche APIs&#8212;and let teams needing those capabilities include them with <a href="http://www.peterelst.com/blog/2008/10/04/what-is-flacc-all-about/">FlaCC</a>, the upcoming C/C++ to Flash byte code compiler. (More info about FlaCC, including links to slides and a hi-res presentation video is available <a href="http://www.peterelst.com/blog/2008/10/05/more-information-on-flacc/">here</a>). Specifically, for XSL, <a href="http://xml.apache.org/xalan-c/">Xalan</a> and <a href="http://xerces.apache.org/xerces-c/">Xerces</a> could be imported. In truth, I find this to be an attractive solution, in part because I&#8217;m sure someone else will go through the hassle of compiling the popular C/C++ libraries to SWCs for me&#8212;I will only need drop those into my project.</p>
<p>However, if you are an AIR developer who cannot wait for FlaCC or want to see XSL make it into AIR&#8217;s officialy ActionScript API, consider <a href="http://www.adobe.com/go/wish">submitting an enhancement request</a>. </p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Xubuntu is Kinda Crappy]]></title>
<link>http://iamgabe.wordpress.com/?p=44</link>
<pubDate>Thu, 09 Oct 2008 04:09:02 +0000</pubDate>
<dc:creator>iamgabe</dc:creator>
<guid>http://iamgabe.nl.wordpress.com/2008/10/09/xubuntu-is-kinda-crappy/</guid>
<description><![CDATA[Well, to begin with, school work is coming along great. I did very well on my Foundations midterm th]]></description>
<content:encoded><![CDATA[<p>Well, to begin with, school work is coming along great. I did very well on my Foundations midterm this week. Algorithms is coming along well. I have another week and a half to finish up a few problems on the homework. We have an extra class which got resheduled to this Friday.</p>
<p>Performamatics work is coming along well. I made a huge breakthrough in the XSLT work today so I should be able to have a decent working copy up by next week.</p>
<p>Anyway, to the topic of the post. Before I say anything, I want everyone to know my expectations for Xubuntu were pretty low. Having said that, Xubuntu kinda sucks. There's really no other way of putting it. It doesn't completely suck. But it does suck moderately. If I weren't used to this kind of abuse from computers, I would consider it to be prohibitively sucky.</p>
<p>Basically for something that bills itself as being made for computers with severely limited hardware capabilities (like my laptop), it has really poor memory management. At any given moment, you can have hundreds of megs or more inert code on your disk.</p>
<p>Whenever you install an app, it downloads the source, compiles it, then leaves its intermediary files just sitting around somewhere. What? Yeah, source code and object files just get left wherever they are created (usually with owner:root). Marvelous. When you remove an app, it says, "I removed it!", deletes the shortcut, and that's it. All the stuff is still there on your disk.</p>
<p>Of course, you cannot simply auto-delete everything. Dependencies exist and you need to be careful. But, if I'm not mistaken, packages keep track of what they need. In other words, when something is removed, all you'd need to do is check if anything depends on it. If nothing needs it, delete it! I have this sneaking suspicion that none of my other applications rely on GNIMesWeepER. Really, Xubuntu: delete your shitty 'tux clones of every shitty game ever from the disk.</p>
<p>On every other front, the OS performs great. The main problem is that memory is important when you don't have too much. Especially when the pathetically underpowered Thunar file manager magcially spirits away a couple hundred megs that<em> du </em>says I definietly have. Oh yeah, and to the creators of Thunar: No search function? Really? I mean, seriously no search function in your file manager? Proprietary file managers have search. Why doesn't yours?</p>
<p>Anyways, I'm sure if any Stallmaniacs read this they're going to want to ctrl-m esc-f meta-x shift-ctrl-q esc-ctrl-l me for bashing Tux and whatever else. Or they would if they weren't so tickled with themselves for knowing what ctrl-m esc-f meta-x shift-ctrl-q esc-ctrl-l does.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Converting XML Data to an HTML Email using XSLT]]></title>
<link>http://resourcefuladmin.wordpress.com/?p=39</link>
<pubDate>Sat, 04 Oct 2008 00:15:07 +0000</pubDate>
<dc:creator>boycie</dc:creator>
<guid>http://resourcefuladmin.nl.wordpress.com/2008/10/03/converting-xml-to-html-using-xslt-style-sheet/</guid>
<description><![CDATA[One way to spice up those HTML script generated emails is to utilize XML and XSLT.
I start by gather]]></description>
<content:encoded><![CDATA[<p>One way to spice up those HTML script generated emails is to utilize XML and XSLT.</p>
<p>I start by gathering the subject matter for the email and exporting the data into an XML formatted String.</p>
<p><a class="alignleft" title="Exporting a User Object to an XML File" href="http://resourcefuladmin.com/2008/10/03/exporting-an-ad-user-object-to-xml/" target="_blank">Exporting an AD User Object to XML</a></p>
<p> </p>
<p>Once you have the XML data in the String, still within the VBScript you use the XMLDOM object to convert the XML String into HTML using an XSLT style sheet. This enables you to take raw data and apply XPath logic to it. This also enables you to both enhance the look of your email and make it intelligent on the content selection. When completed, just pass the HTML formatted String into the email code for generating an email message.</p>
<p>XML to HTML Convertion Code,</p>
<pre><span style="color:#3366ff;">StrHTML = XMLtoHTML(StrXML,XSLTFile
Function XMLtoHTML(XML,XSLT)
On Error Resume Next
Dim xmldoc, xsldoc
Set xmldoc=CreateObject("Microsoft.XMLDOM")
Set xsldoc=CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false" xmlDoc.loadXML(XML)
xslDoc.async="false" xslDoc.load(XSLT)
XMLtoHTML = xmlDoc.transformNode(xslDoc)
End Function</span></pre>
<p><span style="color:#000000;">Note: This is for formatting an XML source as a String. If using an XML file as the source, the syntax is slightly modified.</span></p>
<p><span style="color:#000000;">If you would like any more information on this or a more detailed Blog Post let me know.</span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[XSLT to Convert XML Elements to Attributes]]></title>
<link>http://adallow.wordpress.com/?p=26</link>
<pubDate>Wed, 01 Oct 2008 04:01:42 +0000</pubDate>
<dc:creator>adallow</dc:creator>
<guid>http://adallow.nl.wordpress.com/2008/10/01/xslt-to-convert-xml-elements-to-attributes/</guid>
<description><![CDATA[David Carlisle has a good script:
If you want to convert the following from this:

&lt;atom  phase="]]></description>
<content:encoded><![CDATA[<p class="author">David Carlisle has a good script:</p>
<pre class="programlisting">If you want to convert the following from this:

&#60;atom  phase="gas"&#62;
   &#60;name&#62;Hydrogen&#60;/name&#62;
   &#60;symbol&#62;H&#60;/symbol&#62;
   &#60;boiling_point units="Kelvin"&#62;20.28&#60;/boiling_point&#62;
&#60;/atom&#62;

To this:
&#60;atom phase="gas" name="Hydrogen" symbol="H"&#62;
    &#60;boiling_point units="Kelvin"&#62;20.28&#60;/boiling_point&#62;
&#60;/atom&#62;

Then the following XSLT can help:</pre>
<p><span style="color:#339966;"> &#60;?xml version='1.0' encoding='utf-8'?&#62;<br />
&#60;xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-microsoft-com:xslt' exclude-result-prefixes='msxsl'&#62;<br />
&#60;xsl:template match='*'&#62;<br />
&#60;xsl:copy&#62;<br />
&#60;xsl:for-each select='@*&#124;*[not(* or @*)]'&#62;<br />
&#60;xsl:attribute name='{name(.)}'&#62;&#60;xsl:value-of select='.'/&#62;<br />
&#60;/xsl:attribute&#62;<br />
&#60;/xsl:for-each&#62;<br />
&#60;xsl:apply-templates select='*[* or @*]&#124;text()'/&#62;<br />
&#60;/xsl:copy&#62;<br />
&#60;/xsl:template&#62;<br />
&#60;/xsl:stylesheet&#62;</span></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Hire Dedicated .Net Programmers]]></title>
<link>http://expertdevelopers.wordpress.com/?p=60</link>
<pubDate>Wed, 24 Sep 2008 11:31:21 +0000</pubDate>
<dc:creator>efindia</dc:creator>
<guid>http://expertdevelopers.nl.wordpress.com/2008/09/24/hire-dedicated-net-programmers/</guid>
<description><![CDATA[You can hire a team of .Net Programmers and dedicated developers, from us according to your needs, o]]></description>
<content:encoded><![CDATA[<p>You can hire a team of .Net Programmers and <a href="http://www.expertsfromindia.com/hire-dedicated-developer.htm">dedicated developers</a>, from us according to your needs, on monthly contract basis. A good experienced .NET programmer will work dedicatedly for you.</p>
<p>We have our <a href="http://www.expertsfromindia.com/asp_net.htm" target="_blank"><strong>asp.net developers</strong></a> working offshore virtually, on monthly contract to hire basis for clients in US, UK, Canada, Australia &#38; European countries .</p>
<p>Our dedicated .Net developers work 8 Hours Day, 6 Days a Week and <strong><span style="font-weight:normal;">Holidays</span> </strong><strong><span style="font-weight:normal;">counts on </span></strong>Sunday and Indian National/Regional Holidays.<br />
<strong><br />
<strong>Experience &#38; Skills<br />
</strong></strong><br />
Our ASP.Net developers can deliver web applications, custom software applications, product development, mobile games, ecommerce shopping cart, dynamic website development, database management, project management, security and much more. Our developers are proficient in C#, .NET framework, ASP.NET, Vb.NET, Sqlserver, MSAccess along with JavaScript, XML, XSL and XSLT.</p>
<p><strong>What we offer: </strong></p>
<ul type="disc">
<li class="MsoNormal">At least 8 hours a day, 6      days a week of work.</li>
<li class="MsoNormal">A favorable development      environment.</li>
<li class="MsoNormal">Guaranteed timely      communication.</li>
<li class="MsoNormal">Daily and weekly working      reporting as per your need.</li>
<li class="MsoNormal">Easy coding style.</li>
<li class="MsoNormal">Strict working hours.</li>
<li class="MsoNormal">Hardware and software      infrastructure.</li>
</ul>
<p>Our <a href="http://www.expertsfromindia.com/asp_net.htm" target="_blank">ASP .Net programmers</a> are skilled at writing Programs and software’s that integrate a wide variety of computer based systems and technologies. Experts From India efficient Project developers write and customize software’s for use on the Internet, Unix, Linux and Windows.</p>
<p>Please do have a look at our <strong>website</strong> to get the level of experience our developers possess. If you want to know more about our <strong>Dedicated Developer Service</strong>, please <strong>Contact Us or Get a Free Quote</strong>.</p>
<p><a href="http://del.icio.us/post?url=http://expertdevelopers.wordpress.com/2008/09/24/hire-dedicated-net-programmers/;title=Hire Dedicated .Net Programmers"><img src="http://simontoffel88.googlepages.com/delicious.gif" alt="add to del.icio.us" /></a> <a href="http://digg.com/submit?phase=2&#38;url=http://expertdevelopers.wordpress.com/2008/09/24/hire-dedicated-net-programmers/"><img src="http://simontoffel88.googlepages.com/digg.gif" alt="Digg it" /></a> <a href="http://reddit.com/submit?url=http://expertdevelopers.wordpress.com/2008/09/24/hire-dedicated-net-programmers/;title=Hire Dedicated .Net Programmers"><img src="http://simontoffel88.googlepages.com/reddit.gif" alt="" /></a> <a href="http://www.stumbleupon.com/submit?url=http://expertdevelopers.wordpress.com/2008/09/24/hire-dedicated-net-programmers/&#38;title=Hire Dedicated .Net Programmers"><img src="http://simontoffel88.googlepages.com/stumbleit.gif" alt="Stumble It!" /></a> <a href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&#38;Description=&#38;Url=http://expertdevelopers.wordpress.com/2008/09/24/hire-dedicated-net-programmers/;Title=Hire Dedicated .Net Programmers"><img src="http://simontoffel88.googlepages.com/blinklist.gif" alt="Add to Blinkslist" /></a> <a href="http://www.furl.net/storeIt.jsp?u=http://expertdevelopers.wordpress.com/2008/09/24/hire-dedicated-net-programmers/;t=Hire Dedicated .Net Programmers"><img src="http://simontoffel88.googlepages.com/furl.gif" alt="add to furl" /></a> <a href="http://ma.gnolia.com/bookmarklet/add?url=http://expertdevelopers.wordpress.com/2008/09/24/hire-dedicated-net-programmers/;title=Hire Dedicated .Net Programmers"><img src="http://simontoffel88.googlepages.com/magnolia.gif" alt="add to ma.gnolia" /></a> <a href="http://www.simpy.com/simpy/LinkAdd.do?url=http://expertdevelopers.wordpress.com/2008/09/24/hire-dedicated-net-programmers/;title=Hire Dedicated .Net Programmers"><img src="http://simontoffel88.googlepages.com/simpy.png" alt="add to simpy" /></a> <a href="http://www.newsvine.com/_tools/seed&#38;save?url=http://expertdevelopers.wordpress.com/2008/09/24/hire-dedicated-net-programmers/;title=Hire Dedicated .Net Programmers"><img src="http://simontoffel88.googlepages.com/newsvine.gif" alt="seed the vine" /></a> <a title="TailRank" href="http://tailrank.com/share/?text=&#38;link_href=http://expertdevelopers.wordpress.com/2008/09/24/hire-dedicated-net-programmers/&#38;title=Hire Dedicated .Net Programmers"><img src="http://simontoffel88.googlepages.com/tailrank.gif" alt="TailRank" /></a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Собираем данные с других сайтов в автоматическом режиме]]></title>
<link>http://zhuchiy.wordpress.com/?p=40</link>
<pubDate>Mon, 22 Sep 2008 21:50:13 +0000</pubDate>
<dc:creator>Евгений</dc:creator>
<guid>http://zhuchiy.nl.wordpress.com/2008/09/22/%d1%81%d0%be%d0%b1%d0%b8%d1%80%d0%b0%d0%b5%d0%bc-%d0%b4%d0%b0%d0%bd%d0%bd%d1%8b%d0%b5-%d1%81-%d0%b4%d1%80%d1%83%d0%b3%d0%b8%d1%85-%d1%81%d0%b0%d0%b9%d1%82%d0%be%d0%b2-%d0%b2-%d0%b0%d0%b2%d1%82%d0%be/</guid>
<description><![CDATA[Зачем это может понадобится? Кроме передирания контен]]></description>
<content:encoded><![CDATA[<p>Зачем это может понадобится? Кроме передирания контента с чужого сайта можно решать менее аморальные задачи. Например можно сделать специализированный поисковик товаров по электронным магазинам со сравнительным выводом цен или собрать все объявления автомобильной тематики на одном ресурсе, или сделать сравнительную характеристику ипотечных кредитов по разным банкам, обновляемую автоматически, или... ну вобщем довольно интересный ресурс.<!--more--><br />
Допустим Вы придумали, какую сводную информацию хотите предоставить посетителю, переходим к технической части. В простейшем случае владелец ресурса предоставляет копию контента через RSS. В худшем случае необходимо анализировать сам html-файл.<br />
В блогах некоторые авторы, для анализа html-файла, предлагают использовать регулярные выражения. Однако у этого метода есть свои недостатки. Во-первых регулярные выражения ничего не привязаны к структуре html-документа. Как следствие мы получаем более сложное выражение для извлечения нужной информации. Во-вторых синтаксис регулярных выражений не позволяет организовать циклы, вызов функций и т.д., как следствие их необходимо использовать в связке с каким-либо другим языком, что не увеличивает читабельность кода.<br />
Для этих целей необходим мощный язык, как SQL-запросы для реляционных БД. Я выбрал XSLT - отличный функциональный язык (<a href="http://brainslugs.blogspot.com/2007/08/xslt.html">И это не только мое мнение</a>), который позволяет сделать практически любое преобразование над xml-документом, а используемый в нем язык запросов XPath делает весь код во много раз лаконичнее, чем на других языках. Если уж кому-то все-таки не хватит базовой функциональности XSLT, то как <a href="http://xmlsoft.org/XSLT/extensions.html">libxslt</a>, так и <a href="http://msdn.microsoft.com/en-us/library/ms256042.aspx">msxml</a> позволяют его расширить. Позволяет это делать и <a href="http://php.ru/manual/function.xsl-xsltprocessor-register-php-functions.html">PHP</a>, как использующий libxslt.<br />
Но есть одна проблема: html — это не xml, и даже xhtml — не xml. Получить из html xml можно с помощью библиотеки <a href="http://tidy.sourceforge.net/">Tidy</a>, которая портирована, как расширение, практически во все популярные языки и в PHP в том числе. Доступна она и в консольном режиме как команда tidy. Программистам PHP повезло ещё больше: класс DomDocument имеет метод loadHTML, который позволяет загружать непосредственно html-файл! Я не нашел, кто же все-таки реализовал такую удобную возможность: программисты PHP или разработчики libxml. За ссылки, раскрывающие эту тайну буду благодарен.<br />
Обработка web-страницы с помощью xslt упрощается современной методикой верстки: все элементы относят к какому-нибудь классу, параметры отображения которого описывают в отдельном css-файле. Это позволяет извлекать данные простейшими XPath-запросами вида "//div[@class='classname']".<br />
И напоследок хочу помаролизовать, если на Вашем сайте размещена информация с чужих источников, то обязательно размещайте ссылку на них и сообщайте, что информация на Вашем сайте может быть устаревшей. А ещё лучше сразу позиционировать такие ресурсы как тематический поисковик или ресурс со сводной информацией, взятой из разных источников.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Magical Science! (MSc)]]></title>
<link>http://geneura.wordpress.com/?p=52</link>
<pubDate>Mon, 22 Sep 2008 19:24:57 +0000</pubDate>
<dc:creator>fergunet</dc:creator>
<guid>http://geneura.nl.wordpress.com/2008/09/22/magical-science-msc/</guid>
<description><![CDATA[Last friday I returned from the First Ferguson World Tour Of Science. I was traveling around Europe ]]></description>
<content:encoded><![CDATA[<p>Last friday I returned from the <strong>First Ferguson World Tour Of Science</strong>. I was traveling around Europe in order to present some things about my research.</p>
<p>First we arrived at Dortmund, Germany, where the <a href="http://ls11-www.cs.uni-dortmund.de/ppsn/ppsn10/">Parallel Problem Solving from Nature</a> (PPSN 2008) was celebrated. There I presented my paper "<strong>Evolving <acronym title="Extensible Stylesheet Language Transformations">XSLT</acronym> Stylesheets for Document Transformation</strong>" that you can <a href="http://geneura.ugr.es/~pgarcia/papers/2008/xslt-ppsn.pdf">download from here</a>.</p>
<p>You can see me in this photo that JJ took explaining my poster to a great audience:</p>
<p><a href="http://www.flickr.com/photos/atalaya/2871534691/"><img src="http://farm4.static.flickr.com/3259/2871534691_a934805a8a_m.jpg" alt="" /></a></p>
<p>I hadn't any problem explaining it. Nobody came to complain about colours, XML future, or typos in the word "Conclusions". Oh, wait, I could remember... no, nobody came.</p>
<p><a href="http://www.flickr.com/photos/atalaya/2873677866/"><img src="http://farm3.static.flickr.com/2413/2873677866_0aab5c345a_m.jpg" alt="" /></a></p>
<p>Here you can see me doing some magical science. Mmmh, who will be these guys sitting in that table?</p>
<p>After that I went to Castellón (Valencia, Spain) to present my paper "<strong>Algoritmos evolutivos distribuidos sobre dispositivos Bluetooth</strong>" (in Spanish, as you can see, but you also can download from <a href="http://geneura.ugr.es/~pgarcia/papers/2008/ulfsark-jp.pdf">here</a>).</p>
<p>I'm uploading my own photos to my <a href="http://www.flickr.com/photos/lordferguson/sets/72157607413406876/">Flickr account</a>.</p>
<p>Just to say that it has been an awesome travel around the world! I met a lot of interesting people and learnt a lot. Yeah, I really love the researcher's life.</p>
<p>The title of this post is due to today I received my MSc degree (I presented this paper in Granada, where I am a grad student).</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Building ASP.NET Web Server Controls using XML and XSLT]]></title>
<link>http://jwalin.wordpress.com/?p=31</link>
<pubDate>Fri, 19 Sep 2008 17:44:41 +0000</pubDate>
<dc:creator>jwalin</dc:creator>
<guid>http://jwalin.nl.wordpress.com/2008/09/19/building-aspnet-web-server-controls-using-xml-and-xslt/</guid>
<description><![CDATA[http://aspalliance.com/1680_Building_ASPNET_Web_Server_Controls_using_XML_and_XSLT.all
]]></description>
<content:encoded><![CDATA[<p><a href="http://aspalliance.com/1680_Building_ASPNET_Web_Server_Controls_using_XML_and_XSLT.all">http://aspalliance.com/1680_Building_ASPNET_Web_Server_Controls_using_XML_and_XSLT.all</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[XML EBOOK FREE Download in PDF-CHM]]></title>
<link>http://itebookfile.wordpress.com/?p=20</link>
<pubDate>Tue, 16 Sep 2008 16:28:42 +0000</pubDate>
<dc:creator>Wordpress Ebook</dc:creator>
<guid>http://itebookfile.nl.wordpress.com/2008/09/16/xml-ebook-free-download-in-pdf-chm/</guid>
<description><![CDATA[Download EBOOK Free at www.eBooks-Space.com

Applied XML: A Toolkit for Programmers
Beginning XML Da]]></description>
<content:encoded><![CDATA[<p>Download EBOOK Free at <a href="http://www.eBooks-Space.com">www.eBooks-Space.com</a></p>
<ul>
<li><a class="link_text_underline" title="A Toolkit for Programmers" href="http://www.ebooks-space.com/ebook/763/Applied-XML%3A-A-Toolkit-for-Programmers.html" target="_blank">Applied XML: A Toolkit for Programmers</a></li>
<li><a class="link_text_underline" title="Ebooks Beginning XML Databases" href="http://www.ebooks-space.com/ebook/870/Beginning-XML-Databases.html" target="_blank">Beginning XML Databases</a></li>
<li><a class="link_text_underline" title="From Novice to Professional" href="http://www.ebooks-space.com/ebook/994/Beginning-XSLT-2.0%3A-From-Novice-to-Professional.html" target="_blank">Beginning XSLT 2.0: From Novice to Professional</a></li>
<li><a class="link_text_underline" title="Ebooks Corporate Portals Empowered with XML and Web Services" href="http://www.ebooks-space.com/ebook/953/Corporate-Portals-Empowered-with-XML-and-Web-Services.html" target="_blank">Corporate Portals Empowered with XML and Web Services</a></li>
<li><a class="link_text_underline" title="Ebooks Definitive XSL-FO" href="http://www.ebooks-space.com/ebook/536/Definitive-XSL-FO.html" target="_blank">Definitive XSL-FO</a></li>
<li><a class="link_text_underline" title="Ebooks Foundation XML for Flash" href="http://www.ebooks-space.com/ebook/908/Foundation-XML-for-Flash.html" target="_blank">Foundation XML for Flash</a></li>
<li><a class="link_text_underline" title="Visual QuickStart Guide" href="http://www.ebooks-space.com/ebook/269/HTML-XHTML-and-CSS-Sixth-Edition%3A-Visual-QuickStart-Guide.html" target="_blank">HTML XHTML and CSS Sixth Edition: Visual QuickStart Guide</a></li>
<li><a class="link_text_underline" title="Rants Raves Tips and Tricks" href="http://www.ebooks-space.com/ebook/796/Imperfect-XML%3A-Rants-Raves-Tips-and-Tricks.html" target="_blank">Imperfect XML: Rants Raves Tips and Tricks</a></li>
<li><a class="link_text_underline" title="Ebooks Professional XML" href="http://www.ebooks-space.com/ebook/403/Professional-XML.html" target="_blank">Professional XML</a></li>
<li><a class="link_text_underline" title="Ebooks Special Edition Using XML Schema " href="http://www.ebooks-space.com/ebook/106/Special-Edition-Using-XML-Schema-.html" target="_blank">Special Edition Using XML Schema </a></li>
<li><a class="link_text_underline" title="Ebooks Special Edition Using XSLT" href="http://www.ebooks-space.com/ebook/320/Special-Edition-Using-XSLT.html" target="_blank">Special Edition Using XSLT</a></li>
<li><a class="link_text_underline" title="Ebooks The XML schema complete reference" href="http://www.ebooks-space.com/ebook/759/The-XML-schema-complete-reference.html" target="_blank">The XML schema complete reference</a></li>
<li><a class="link_text_underline" title="Building Professional Voice-enabled Applications with JSP ASP and ColdFusion" href="http://www.ebooks-space.com/ebook/440/VoiceXML-2.0-Developers-Guide-%3A-Building-Professional-Voice-enabled-Applications-with-JSP-ASP-and-ColdFusion.html" target="_blank">VoiceXML 2.0 Developers Guide : Building Professional Voice-enabled Applications with JSP ASP and ColdFusion</a></li>
<li><a class="link_text_underline" title="Developing Web Applications" href="http://www.ebooks-space.com/ebook/793/XML-and-SQL%3A-Developing-Web-Applications.html" target="_blank">XML and SQL: Developing Web Applications</a></li>
<li><a class="link_text_underline" title="Ebooks XML Bible Gold Edition" href="http://www.ebooks-space.com/ebook/289/XML-Bible-Gold-Edition.html" target="_blank">XML Bible Gold Edition</a></li>
<li><a class="link_text_underline" title="Ebooks XML by Example" href="http://www.ebooks-space.com/ebook/252/XML-by-Example.html" target="_blank">XML by Example</a></li>
<li><a class="link_text_underline" title="Native XML and XML-Enabled Database" href="http://www.ebooks-space.com/ebook/770/XML-Data-Management%3A-Native-XML-and-XML-Enabled-Database.html" target="_blank">XML Data Management: Native XML and XML-Enabled Database</a></li>
<li><a class="link_text_underline" title="Ebooks XML Demystified" href="http://www.ebooks-space.com/ebook/356/XML-Demystified.html" target="_blank">XML Demystified</a></li>
<li><a class="link_text_underline" title="Ebooks XML for ASP.NET Developers" href="http://www.ebooks-space.com/ebook/609/XML-for-ASP.NET-Developers.html" target="_blank">XML for ASP.NET Developers</a></li>
<li><a class="link_text_underline" title="Ebooks XML in Theory and Practice" href="http://www.ebooks-space.com/ebook/508/XML-in-Theory-and-Practice.html" target="_blank">XML in Theory and Practice</a></li>
<li><a class="link_text_underline" title="Ebooks XML in Theory and Practice" href="http://www.ebooks-space.com/ebook/767/XML-in-Theory-and-Practice.html" target="_blank">XML in Theory and Practice</a></li>
<li><a class="link_text_underline" title="Ebooks XML Primer Plus" href="http://www.ebooks-space.com/ebook/146/XML-Primer-Plus.html" target="_blank">XML Primer Plus</a></li>
<li><a class="link_text_underline" title="Ebooks XML Problem Design Solution" href="http://www.ebooks-space.com/ebook/755/XML-Problem-Design-Solution.html" target="_blank">XML Problem Design Solution</a></li>
<li><a class="link_text_underline" title="Ebooks XML Schema Essentials" href="http://www.ebooks-space.com/ebook/93/XML-Schema-Essentials.html" target="_blank">XML Schema Essentials</a></li>
<li><a class="link_text_underline" title="Ebooks XML Security" href="http://www.ebooks-space.com/ebook/806/XML-Security.html" target="_blank">XML Security</a></li>
<li><a class="link_text_underline" title="Ebooks XPath 2.0 Programmers Reference " href="http://www.ebooks-space.com/ebook/998/XPath-2.0-Programmers-Reference-.html" target="_blank">XPath 2.0 Programmers Reference </a></li>
<li><a class="link_text_underline" title="Ebooks XPath Essentials" href="http://www.ebooks-space.com/ebook/1009/XPath-Essentials.html" target="_blank">XPath Essentials</a></li>
<li><a class="link_text_underline" title="Navigating XML with XPath 1.0 and 2.0" href="http://www.ebooks-space.com/ebook/1004/XPath-Kick-Start%3A-Navigating-XML-with-XPath-1.0-and-2.0.html" target="_blank">XPath Kick Start: Navigating XML with XPath 1.0 and 2.0</a></li>
<li><a class="link_text_underline" title="Ebooks XSLT Programmers Reference" href="http://www.ebooks-space.com/ebook/991/XSLT-Programmers-Reference.html" target="_blank">XSLT Programmers Reference</a></li>
</ul>
]]></content:encoded>
</item>
<item>
<title><![CDATA["Why so serious ..... ??"]]></title>
<link>http://sandeepphukan.wordpress.com/?p=7</link>
<pubDate>Tue, 09 Sep 2008 19:58:28 +0000</pubDate>
<dc:creator>Sandeep Phukan</dc:creator>
<guid>http://sandeepphukan.nl.wordpress.com/2008/09/09/why-so-serious/</guid>
<description><![CDATA[My blogs are all below&#8230; enjoy:
http://soaranch.wordpress.com/
http://treecast.wordpress.com/
h]]></description>
<content:encoded><![CDATA[<p>My blogs are all below... enjoy:</p>
<p><a href="http://soaranch.wordpress.com/" target="_blank">http://soaranch.wordpress.com/</a></p>
<p><a href="http://treecast.wordpress.com/" target="_blank">http://treecast.wordpress.com/</a></p>
<p><a href="http://algorithmfun.wordpress.com/" target="_blank">http://algorithmfun.wordpress.com/</a></p>
<p><a href="http://simplifyj.wordpress.com/" target="_blank">http://simplifyj.wordpress.com/</a></p>
<p><a href="http://iprocess.wordpress.com/" target="_blank">http://iprocess.wordpress.com/</a></p>
<p><a href="http://middleware.wordpress.com/" target="_blank">http://middleware.wordpress.com/</a></p>
<p><a href="http://messagingengine.wordpress.com/" target="_blank">http://messagingengine.wordpress.com/</a></p>
<p><a href="http://iprocessextend.wordpress.com/" target="_blank">http://iprocessextend.wordpress.com/</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Custom XPath/XSLT Functions for Oracle App Server]]></title>
<link>http://soaranch.wordpress.com/?p=35</link>
<pubDate>Tue, 09 Sep 2008 19:09:14 +0000</pubDate>
<dc:creator>Sandeep Phukan</dc:creator>
<guid>http://soaranch.nl.wordpress.com/2008/09/09/custom-xpathxslt-functions-for-oracle-app-server/</guid>
<description><![CDATA[Steps in creating custom XSL/XPath functions:
This ones really handy&#8230; here are the steps:
1. C]]></description>
<content:encoded><![CDATA[<p>Steps in creating custom XSL/XPath functions:</p>
<p>This ones really handy... here are the steps:</p>
<p>1. Create a static inner class that implements IXPathFunction</p>
<p>package customFunctions.sandeepphukan.test;</p>
<p>import java.util.List;<br />
import com.oracle.bpel.xml.xpath.IXPathContext;<br />
import com.oracle.bpel.xml.xpath.IXPathFunction;<br />
import com.oracle.bpel.xml.xpath.XPathFunctionException;</p>
<p>/**<br />
* A class that echoes the parameter<br />
* @author sphukan<br />
*<br />
*/<br />
public class echo {</p>
<p>/**<br />
* XPath function<br />
*/<br />
public static class echoXPathFunction implements IXPathFunction{</p>
<p>public Object call(IXPathContext arg0, List arg1) throws XPathFunctionException {<br />
if (arg1.size()!=1){<br />
throw new XPathFunctionException("This custom XPath function requires exactly one argument!!!");<br />
}else{<br />
return echo((String)arg1.get(0));<br />
}</p>
<p>}</p>
<p>}</p>
<p>public static String echo(String text){<br />
return text;<br />
}</p>
<p>}</p>
<p>If you creating the java class via Eclipse then include the path %ORACLE_AS%\bpel\lib in your project.</p>
<p>2. Put the class as a jar in  %JDEV_HOME%\jdev\lib\patches<br />
3. Register the jar in the JDev User Defined Extension functions(Tools-&#62;Preferences-&#62;XSLMaps) file and restart JDev</p>
<p>&#60;extension-functions xmlns:pcui="http://www.oracle.com/PC/ui"&#62;<br />
&#60;functions xmlns:utl="http://www.oracle.com/XSL/Transform/java/customFunctions.sandeepphukan.test.echo"&#62;<br />
&#60;function name="utl:echo" as="string"&#62;<br />
&#60;param name="text" as="string"/&#62;<br />
&#60;/function&#62;<br />
&#60;/functions&#62;<br />
&#60;functions xmlns:ora="http://schemas.oracle.com/xpath/extension"&#62;<br />
&#60;/functions&#62;<br />
&#60;/extension-functions&#62;</p>
<p>You should be able to see the custom Function in User Defined Extension Functions pallette:</p>
[caption id="attachment_39" align="aligncenter" width="450" caption="XSL Mapper Custom Funtion Display"]<a href="http://soaranch.wordpress.com/files/2008/09/xslmapper.jpg"><img class="size-large wp-image-39" title="xslmapper" src="http://soaranch.wordpress.com/files/2008/09/xslmapper.jpg?w=450" alt="XSL Mapper Custom Funtion Display" width="450" height="276" /></a>[/caption]
<p>4. Edit the file %SOA_HOME%\bpel\system\config\xpath-functions.xml</p>
<p>&#60;function id="echo" arity="1"&#62; &#60;!--Arity is the number of mandatory arguments --&#62;<br />
&#60;comment&#62;&#60;![CDATA[This function echoes the parameter....<br />
&#60;p/&#62;<br />
The signature of the function is &#60;i&#62;utl:echo('string')&#60;/i&#62;.<br />
The arguments are:<br />
&#60;ol type="1"&#62;<br />
&#60;li&#62;string - single string parameter.<br />
&#60;/ol&#62;]]&#62;&#60;/comment&#62;<br />
&#60;classname&#62;customFunctions.sandeepphukan.test.echo$EchoFunction&#60;/classname&#62; &#60;!--Inner className --&#62;<br />
&#60;property id="namespace-uri"&#62;<br />
&#60;value&#62;http://www.oracle.com/XSL/Transform/java/customFunctions.sandeepphukan.test.echo&#60;/value&#62;<br />
&#60;comment&#62;&#60;![CDATA[Namespace URI for this function]]&#62;&#60;/comment&#62;<br />
&#60;/property&#62;<br />
&#60;property id="namespace-prefix"&#62;<br />
&#60;value&#62;utl&#60;/value&#62;<br />
&#60;comment&#62;&#60;![CDATA[Namespace prefix for this function]]&#62;&#60;/comment&#62;<br />
&#60;/property&#62;<br />
&#60;/function&#62;</p>
<p>5. Drop the custom classes in the location %SOA_HOME%\bpel\system\classes. Incase you are using Eclipse you should be able to find these classes under EclipseWorkspace/ProjectName/bin/<br />
6. Restart Oracle AS.</p>
<p>-------------------------- For JDEV Expressions Builder ------------------------------------<br />
1. Copy the file %JDEV_HOME%/integration/lib/bpm-ide-common.jar to a temp directory.<br />
2. Unjar the file %tempDir%/bpm-ide-common.jar with the following command<br />
jar -xvf bpm-ide-common.jar oracle/tip/tools/ide/common/resource/PreBuiltExtensionFunctions.xml<br />
3. Now edit the infalted PreBuiltExtensionFunctions.xml file and add the entry:<br />
&#60;functions xmlns:utl="http://www.oracle.com/XSL/Transform/java/customFunctions.sandeepphukan.test.echo"&#62;<br />
&#60;function name="utl:echo" as="string"&#62;<br />
&#60;param name="text" as="string" required="yes"/&#62;<br />
&#60;pcui:ui&#62;<br />
&#60;pcui:mapper palettePage="Advanced Functions"/&#62;<br />
&#60;/pcui:ui&#62;<br />
&#60;/function&#62;<br />
&#60;/functions&#62;<br />
4. Now update the jar file with the command:<br />
jar -uf bpm-ide-common.jar oracle/tip/tools/ide/common/resource/PreBuiltExtensionFunctions.xml<br />
5. Finally put the jar file back into %JDEV_HOME%/integration/lib/ directory. You might want to keep a backup of the original jar before you do this.</p>
<p>Once done, restart JDeveloper and you should be able to see your custom function:</p>
[caption id="attachment_41" align="aligncenter" width="450" caption="XPath Expressions Builder Custom Function Display"]<a href="http://soaranch.wordpress.com/files/2008/09/xpatch-expression-builder.jpg"><img class="size-large wp-image-41" title="xpatch-expression-builder" src="http://soaranch.wordpress.com/files/2008/09/xpatch-expression-builder.jpg?w=450" alt="XPath Expressions Builder Custom Function Display" width="450" height="290" /></a>[/caption]
<p>Testing it out :</p>
<p>1. Create a BPEL process<br />
2. Use the transform activity and map input to output.<br />
3. In the XSL file design mode open the components pallette and locate your function in the User Defined Extension Functions pallette.<br />
4. Drag it and assign it.<br />
5. Deploy it and run it in the AS.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[A New TEI Lite Project: The Pauling Student Learning Curriculum]]></title>
<link>http://paulingblog.wordpress.com/?p=500</link>
<pubDate>Tue, 09 Sep 2008 17:39:13 +0000</pubDate>
<dc:creator>spcoll</dc:creator>
<guid>http://paulingblog.nl.wordpress.com/2008/09/09/a-new-tei-lite-project-the-pauling-student-learning-curriculum/</guid>
<description><![CDATA[
This past Friday we launched a new project about which we&#8217;re pretty excited.  As described i]]></description>
<content:encoded><![CDATA[<p><a href="http://paulingblog.files.wordpress.com/2008/09/curricbanner.jpg"><img class="alignnone size-medium wp-image-501" title="curricbanner" src="http://paulingblog.wordpress.com/files/2008/09/curricbanner.jpg?w=300" alt="" width="300" height="46" /></a></p>
<p>This past Friday we launched a new project about which we're pretty excited.  As described in this <a href="http://osulibrary.oregonstate.edu/specialcollections/news.html#curriculum">press release</a>, the <a href="http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/curriculum/page1.html">Pauling Student Learning Curriculum</a> is geared toward advanced high school- and college-age students, and is applicable to the teaching of both history and science.  As the press release also notes, the large amount of illustrative and hyperlinked content included in the website makes this a resource that should be useful to teachers and students anywhere in the world.</p>
<p>The history of this project is a long and interesting one.  The curriculum itself was originally designed nearly ten years ago for use by visiting fellows of the <a href="http://lpi.oregonstate.edu/">Linus Pauling Institute</a>.  Over time, the content that was developed for the fellows program was repurposed for use by a <a href="http://oregonstate.edu/dept/honors/">University Honors College</a> chemistry class that conducts research on the Pauling legacy every Winter term.  For several years we've been planning to post the text of the curriculum online, thinking that doing so would assist those chemistry students whose busy schedules preclude their spending an optimum amount of time in the Special Collections reading room.  It eventually dawned on us that the curriculum could actually be expanded into a powerful resource for use by teachers well-beyond the Oregon State University campus, and we've been developing the project with that goal in mind ever since.</p>
<p>The bulk of the curriculum is devoted to an abbreviated survey of Pauling's life and work, presented in chronological order, and grouped under the following headings:</p>
<ul>
<li><a href="http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/curriculum/page4-1.html">Early Years: Education, Teaching and the Chemical Bond</a></li>
<li><a href="http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/curriculum/page5-1.html">Middle Years: War Work, Peace Work and Protein Structure</a></li>
<li><a href="http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/curriculum/page6-1.html">Later Years: Molecular Disease and Orthomolecular Medicine</a></li>
</ul>
<p>Throughout these sections, we've linked to any applicable objects that have already been digitized in support of our various Documentary History and Primary Source websites.</p>
<p>The curriculum also includes a series of instructions on "<a href="http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/curriculum/page3.html">rules for research</a>" in an archive.  We feel that this is especially important given the youth of our target audience, and hope that it will likewise provide for a positive introduction to the in's and out's of conducting scholarship with primary sources -- an oftentimes intimidating process for researchers at any level.</p>
<p>The website itself is built with <a href="http://www.tei-c.org/Guidelines/Customization/Lite/">TEI Lite</a>, which we're using more and more in support of small but clean webpages that can be created and released comparatively quickly.   Though we've used the TEI (Text Encoding Initiative) Lite standard for numerous transcripts projects in the past, the first of our sites to be built entirely in TEI Lite was the biographical essay "<a href="http://osulibrary.oregonstate.edu/specialcollections/coll/malamud/garrison/page1.html">Bernard Malamud: An Instinctive Friendship</a>," written by Chester Garrison and posted on our <a href="http://osulibrary.oregonstate.edu/specialcollections/coll/malamud/index.html">Bernard Malamud Papers</a> page last month.  Plans for several additional TEI Lite-based "microsites" are currently in the works.</p>
<p>TEI Lite is a terrific tool in part because it is very simple to use.  In the example of the curriculum, all of the text, images, administrative metadata and much of the formatting that appears on the finished site are encoded in easily-learned and interpreted tags.  (We used XSL to generate the table of contents and to standardize the page formatting -- e.g., where the images sit on a page and how the captions render.)  As a result, most of the mark-up required for these projects is at least roughed out by our student staff, which makes for a pretty efficient workflow within the department.</p>
<p>An example of the TEI Lite code for Page 2 of the Pauling Student Learning Curriculum is included after the jump.  We'll be happy to answer any reader questions in the Comments to this post.</p>
<p><!--more--></p>
<div class="xml xml" style="font-family:monospace;color:#006;border:1px solid #d0d0d0;background-color:#f0f0f0;"><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;div</span> <span style="color:#000066;">type</span>="chapter" <span style="color:#000066;">n</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="color:#cc66cc;">2</span></span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;head<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>Ways to Approach the Curriculum<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/head<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>Linus Pauling’s career is so long – he first published in the 1920s, and last in the 1990s – that any reading curriculum can only be partial in what it covers.  This curriculum can be used as a starting point for particular research interests or it can be used as a basic guide pointing to materials which give a sense of Pauling’s life and work.<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>Since Pauling’s work and interests ranged across a broad spectrum, it is very helpful to first get a general picture of his life.  Some reading in one or more of the full length biographies listed under <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>="page7.html"<span style="font-weight:bold;color:#000000;">&#62;</span></span>Topical Readings<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span> can be invaluable for an understanding of the progression of Pauling’s work; each of the ones listed has a helpful index, and each sets out biographical information under the index heading “Pauling, Linus.”  The full length biographies are a good lead to important concepts in Pauling’s scientific thinking, such as hybridization of orbitals, <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>="http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/bond/narrative/page35.</span><span style="color:#009900;">html"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>resonance structure<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>, complementariness, <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>="http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/bond/narrative/page18.html"<span style="font-weight:bold;color:#000000;">&#62;</span></span>stochastic method<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>, <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>="http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/bond/narrative/page37.html"<span style="font-weight:bold;color:#000000;">&#62;</span></span>electronegativity<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>, and the rules for determining molecular structure which became known as <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/bond/narrative/page16.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>”Pauling’s rules”<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span> (See also Thomas Hager’s <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;hi</span> <span style="color:#000066;">rend</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">italic</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>Force of Nature<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/hi<span style="font-weight:bold;color:#000000;">&#62;</span></span></span> pg 143). Graduate students may be interested in a concept developed by Pauling’s students called “the Pauling Point.”<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>The edited selections from Linus Pauling provide well-organized and annotated selections from his work under topical headings and are a quick and interesting route to knowledge of his thinking in a particular area. Also available are websites assembled by Special Collections and focusing on specific parts of Pauling’s career.  These include:<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;list</span> <span style="color:#000066;">type</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">bullets</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;item<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;hi</span> <span style="color:#000066;">rend</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">italic</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/bond/index.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>Linus Pauling and the Nature of the Chemical Bond<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/hi<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/item<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;item<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;hi</span> <span style="color:#000066;">rend</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">italic</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/peace/index.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>Linus Pauling and the International Peace Movement<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/hi<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/item<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;item<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;hi</span> <span style="color:#000066;">rend</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">italic</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/dna/index.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>Linus Pauling and the Race for DNA<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/hi<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/item<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;item<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;hi</span> <span style="color:#000066;">rend</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">italic</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/blood/index.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>It’s in the Blood! A Documentary History of Linus Pauling, Hemoglobin, and Sickle Cell Anemia<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/hi<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/item<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/list<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;p<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;figure<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;graphic</span> <span style="color:#000066;">url</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">images/1922i.036-150w.jpg</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">/&#62;</span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;head<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>Linus Pauling, near Sutherlin, Oregon, 1922.<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/head<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;figDesc<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>Linus Pauling sitting on a bridge. Copyright: Everybody, Sutherlin, Ore. Photographer unknown. Black and white print with color touch-ups. 1922<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/figDesc<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/figure<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>The main section of the curriculum details Linus Pauling’s scientific work and thinking.  In so doing, the curriculum lists major publications and other papers chronologically, with an identification of the research or other life interest to which the item pertains.  This section of the curriculum is divided into three parts.<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;list</span> <span style="color:#000066;">type</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">bullets</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;item<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">page4-1.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>Early Years: Education, Teaching and the Chemical Bond<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span> delves into the early years of Pauling’s career, during which he established his scientific reputation through his work on the chemical bond and his interest in relating chemical information to students in the classroom.<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/item<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;item<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">page5-1.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>Middle Years: War Work, Peace Work and Protein Structure<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span> covers Pauling’s middle years, including the research that he conducted on behalf of the war effort as well as his later peace activism, continuing interests in structural chemistry, and new scientific investigations including determinations of various protein structures.<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/item<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;item<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">page6-1.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>Later Years: Molecular Disease and Orthomolecular Medicine<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span> details Pauling’s later years, in particular his work on molecular disease and vitamin therapy, also known as “orthomolecular medicine.”<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/item<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/list<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>The main section of the curriculum is followed by a brief list of <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">page7.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>topical readings<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>, which includes materials in the history of science collection and in the general collection at the Valley Library.  There is also a brief <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">page8.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>list of websites<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span> on Pauling and related topics, and an appendix of <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">page9.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>useful information regarding Special Collections<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>.<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>Readers should be sure to utilize the six-volume published version of the <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;hi</span> <span style="color:#000066;">rend</span>=”bold”<span style="font-weight:bold;color:#000000;">&#62;</span></span>Catalogue of Holdings of the Ava Helen and Linus Pauling Papers<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/hi<span style="font-weight:bold;color:#000000;">&#62;</span></span></span> the text of which is also available online at <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;ref</span> <span style="color:#000066;">target</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/index.html</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#62;</span></span>http://osulibrary.oregonstate.edu/specialcollections/coll/pauling/index.html<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/ref<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>. <span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;hi</span> <span style="color:#000066;">rend</span>=”italic”<span style="font-weight:bold;color:#000000;">&#62;</span></span>It is essential<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/hi<span style="font-weight:bold;color:#000000;">&#62;</span></span></span> to look through the catalogue to get a sense of what is available in the collection, and to understand the extent of Pauling’s research notes, personal notes, article writing, correspondence, lectures, love letters, interviews, awards, and occasions photographed.  The catalogue is a remarkable achievement, documenting hundreds of thousands of items.<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;p<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;figure<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;graphic</span> <span style="color:#000066;">url</span>=</span><span style="color:#009900;">"</span><span style="color:#009900;">images/1939i.004-150w.jpg</span><span style="color:#009900;">"</span><span style="color:#009900;"><span style="font-weight:bold;color:#000000;">/&#62;</span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;head<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>Ava Helen and Linus Pauling, Madison, Wisconsin, 1939.<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/head<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;figDesc<span style="font-weight:bold;color:#000000;">&#62;</span></span></span>Linus and Ava Helen Pauling standing outside with their hands behind their backs. “Linus Pauling, age 38 and Ava Helen Pauling” “July, 1939, Madison, Wisconsin” “Taken by Mr. Link” Black and white print. July, 1939<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/figDesc<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/figure<span style="font-weight:bold;color:#000000;">&#62;</span></span><span style="font-weight:bold;color:#000000;">&#60;/p<span style="font-weight:bold;color:#000000;">&#62;</span></span></span><br />
<span style="color:#009900;"><span style="font-weight:bold;color:#000000;">&#60;/div<span style="font-weight:bold;color:#000000;">&#62;</span></span></span></div>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Passing Parameters from BPEL to XSLT]]></title>
<link>http://soaranch.wordpress.com/?p=16</link>
<pubDate>Mon, 08 Sep 2008 11:42:40 +0000</pubDate>
<dc:creator>Sandeep Phukan</dc:creator>
<guid>http://soaranch.nl.wordpress.com/2008/09/08/passing-parameters-from-bpel-to-xslt/</guid>
<description><![CDATA[Oracle BPEL can pass parameters defined within an XSLT. This is convenient as normally the XSLT maps]]></description>
<content:encoded><![CDATA[<p>Oracle BPEL can pass parameters defined within an XSLT. This is convenient as normally the XSLT maps are not able to access variables that are defined explicitly in BPEL.</p>
<p>Its pretty easy to do ... just follow these steps:</p>
<p>1. The parameters that require to be passed to the XSLT should adhere to the following schema:</p>
[caption id="attachment_17" align="alignnone" width="450" caption="Parameter Schema"]<a href="http://soaranch.files.wordpress.com/2008/09/1.jpg"><img class="size-full wp-image-17" title="1" src="http://soaranch.wordpress.com/files/2008/09/1.jpg" alt="Parameter Schema" width="450" height="158" /></a>[/caption]
<p>I have used a minOccurs of 2 but you may not need it ...</p>
<p>2. Now create a variable based on this schema . Let us call it parametersVar.</p>
[caption id="attachment_21" align="alignnone" width="450" caption="create variable for parameter"]<a href="http://soaranch.wordpress.com/files/2008/09/3.jpg"><img class="size-large wp-image-21" title="3" src="http://soaranch.wordpress.com/files/2008/09/3.jpg?w=450" alt="create variable for parameter" width="450" height="335" /></a>[/caption]
<p>3. Now set values to this variable. In this example I have taken the values from the input. A transform activity based on the xsl setParameters.xsl sets the input. you may also choose to hardcode the values.</p>
[caption id="attachment_22" align="alignnone" width="450" caption="populate the parameter variable"]<a href="http://soaranch.files.wordpress.com/2008/09/4.jpg"><img class="size-large wp-image-22" title="4" src="http://soaranch.wordpress.com/files/2008/09/4.jpg?w=450" alt="populate the parameter variable" width="450" height="146" /></a>[/caption]
<p>4.Now create another transform activity called callXSLT that maps the input to the output. This xslt defines two parameters viz. param1 and param2. The XSLT simply concats the two parameters and assigns to the output.</p>
[caption id="attachment_23" align="alignnone" width="450" caption="XSLT with Parameters"]<a href="http://soaranch.files.wordpress.com/2008/09/5.jpg"><img class="size-large wp-image-23" title="5" src="http://soaranch.wordpress.com/files/2008/09/5.jpg?w=450" alt="XSLT with Parameters" width="450" height="236" /></a>[/caption]
<p>5. The BPEL process should now look like this:</p>
[caption id="attachment_24" align="alignnone" width="450" caption="BPEL process design view"]<a href="http://soaranch.files.wordpress.com/2008/09/6.jpg"><img class="size-large wp-image-24" title="6" src="http://soaranch.wordpress.com/files/2008/09/6.jpg?w=450" alt="BPEL process design view" width="450" height="394" /></a>[/caption]
<p>6. Now open this BPEL process in source mode and edit the</p>
<p>&#60;from expression="ora:processXSLT('callXSLT.xsl',bpws:getVariableData('inputVariable','payload'))</p>
<p>to include the parameters as this:</p>
<p>&#60;from expression="ora:processXSLT('callXSLT.xsl',bpws:getVariableData('inputVariable','payload'),bpws:getVariableData('parametersVar'))"/&#62;</p>
<p>The BPEL source should now look like this:</p>
<p>&#60;?xml version = "1.0" encoding = "UTF-8" ?&#62;<br />
&#60;!--<br />
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
Oracle JDeveloper BPEL Designer</p>
<p>Created: Mon Sep 08 13:47:27 IST 2008<br />
Author:  sphukan<br />
Purpose: Synchronous BPEL Process<br />
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
--&#62;<br />
&#60;process name="paramsFromBPELToXSLT"<br />
targetNamespace="http://xmlns.oracle.com/paramsFromBPELToXSLT"<br />
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"<br />
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"<br />
xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"<br />
xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"<br />
xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"<br />
xmlns:xsd="http://www.w3.org/2001/XMLSchema"<br />
xmlns:client="http://xmlns.oracle.com/paramsFromBPELToXSLT"<br />
xmlns:ora="http://schemas.oracle.com/xpath/extension"<br />
xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"<br />
xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"<br />
xmlns:aia="http://www.oracle.com/XSL/Transform/java/oracle.apps.aia.core.xpath.AIAFunctions"<br />
xmlns:ns1="http://schemas.oracle.com/service/bpel/common"<br />
xmlns:ehdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions"<br />
xmlns:bpelx="http://schemas.oracle.com/bpel/extension"<br />
xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"&#62;<br />
&#60;!--<br />
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
PARTNERLINKS<br />
List of services participating in this BPEL process<br />
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
--&#62;<br />
&#60;partnerLinks&#62;<br />
&#60;!--<br />
The 'client' role represents the requester of this service. It is<br />
used for callback. The location and correlation information associated<br />
with the client role are automatically set using WS-Addressing.<br />
--&#62;<br />
&#60;partnerLink name="client" partnerLinkType="client:paramsFromBPELToXSLT"<br />
myRole="paramsFromBPELToXSLTProvider"/&#62;<br />
&#60;/partnerLinks&#62;<br />
&#60;!--<br />
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
VARIABLES<br />
List of messages and XML documents used within this BPEL process<br />
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
--&#62;<br />
&#60;variables&#62;<br />
&#60;!-- Reference to the message passed as input during initiation --&#62;<br />
&#60;!-- Reference to the message that will be returned to the requester--&#62;<br />
&#60;variable name="inputVariable"<br />
messageType="client:paramsFromBPELToXSLTRequestMessage"/&#62;<br />
&#60;variable name="outputVariable"<br />
messageType="client:paramsFromBPELToXSLTResponseMessage"/&#62;<br />
&#60;variable name="parametersVar" element="ns1:parameters"/&#62;<br />
&#60;/variables&#62;<br />
&#60;!--<br />
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
ORCHESTRATION LOGIC<br />
Set of activities coordinating the flow of messages across the<br />
services integrated within this business process<br />
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br />
--&#62;<br />
&#60;sequence name="main"&#62;<br />
&#60;!-- Receive input from requestor. (Note: This maps to operation defined in paramsFromBPELToXSLT.wsdl) --&#62;<br />
&#60;receive name="receiveInput" partnerLink="client"<br />
portType="client:paramsFromBPELToXSLT" operation="process"<br />
variable="inputVariable" createInstance="yes"/&#62;<br />
&#60;!-- Generate reply to synchronous request --&#62;<br />
&#60;assign name="setParameters"&#62;<br />
&#60;bpelx:annotation&#62;<br />
&#60;bpelx:pattern&#62;transformation&#60;/bpelx:pattern&#62;<br />
&#60;/bpelx:annotation&#62;<br />
&#60;copy&#62;<br />
&#60;from expression="ora:processXSLT('setParameters.xsl',bpws:getVariableData('inputVariable','payload'))"/&#62;<br />
&#60;to variable="parametersVar"/&#62;<br />
&#60;/copy&#62;<br />
&#60;/assign&#62;<br />
&#60;assign name="callXSLT"&#62;<br />
&#60;bpelx:annotation&#62;<br />
&#60;bpelx:pattern&#62;transformation&#60;/bpelx:pattern&#62;<br />
&#60;/bpelx:annotation&#62;<br />
&#60;copy&#62;<br />
&#60;from expression="ora:processXSLT('callXSLT.xsl',bpws:getVariableData('inputVariable','payload'),bpws:getVariableData('parametersVar'))"/&#62;<br />
&#60;to variable="outputVariable" part="payload"/&#62;<br />
&#60;/copy&#62;<br />
&#60;/assign&#62;<br />
&#60;reply name="replyOutput" partnerLink="client"<br />
portType="client:paramsFromBPELToXSLT" operation="process"<br />
variable="outputVariable"/&#62;<br />
&#60;/sequence&#62;<br />
&#60;/process&#62;</p>
<p>7. Save the file, validate and deploy the process.</p>
<p>8. Now initiate the process in Oracle AS and put the input as follows:</p>
[caption id="attachment_28" align="alignnone" width="449" caption="Initiate the BPEL Process"]<a href="http://soaranch.files.wordpress.com/2008/09/7.jpg"><img class="size-large wp-image-28" title="7" src="http://soaranch.wordpress.com/files/2008/09/7.jpg?w=449" alt="Initiate the BPEL Process" width="449" height="235" /></a>[/caption]
<p>Notice that param1 and param2 are the parameters we defined earlier in the XSL file.</p>
<p>9. The output shows the result.</p>
[caption id="attachment_29" align="aligncenter" width="410" caption="BPEL Process Flow Diagram"]<a href="http://soaranch.files.wordpress.com/2008/09/8.jpg"><img class="size-full wp-image-29" title="8" src="http://soaranch.wordpress.com/files/2008/09/8.jpg" alt="BPEL Process Flow Diagram" width="410" height="381" /></a>[/caption]
[caption id="attachment_31" align="aligncenter" width="450" caption="Output from the setParameters operation"]<a href="http://soaranch.files.wordpress.com/2008/09/10.jpg"><img class="size-large wp-image-31" title="10" src="http://soaranch.wordpress.com/files/2008/09/10.jpg?w=450" alt="Output from the setParameters operation" width="450" height="220" /></a>[/caption]
<p>Thats all...enjoy!!!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Saxon y XSLT2]]></title>
<link>http://xmleye.wordpress.com/?p=25</link>
<pubDate>Sat, 06 Sep 2008 07:31:03 +0000</pubDate>
<dc:creator>bluezio</dc:creator>
<guid>http://xmleye.nl.wordpress.com/2008/09/06/saxon-y-xslt2/</guid>
<description><![CDATA[Últimamente estoy trabajando bastante con XLST 2 y XPath 2.0, empleando la biblioteca Saxon (que le]]></description>
<content:encoded><![CDATA[<p>Últimamente estoy trabajando bastante con XLST 2 y XPath 2.0, empleando la biblioteca Saxon (que le da tropecientas vueltas a Xalan, y lo digo por experiencia). La verdad es que se pueden hacer cosas ahora que de otra forma me serían muy complicadas en XSLT 1.0, aunque tiene sus pequeños detalles molestos. El último día me tiré varias horas rascándome la cabeza de por qué una secuencia de elementos que creaba con xsl:for-each de XSLT acababa creando nuevos nodos en vez de utilizar los existentes, haciendo que fallara la prueba de identidad ". is $nodo" (sólo devuelve true si se trata exactamente de la misma copia del mismo nodo).</p>
<p>Es decir, si por ejemplo tengo este bucle que recorre una serie de elementos del árbol XML:</p>
<pre>&#60;xsl:for-each select="a&#124;b&#124;c"&#62;
  &#60;xsl:sequence select="."/&#62;
&#60;/xsl:for-each&#62;</pre>
<p>Si queremos recoger los resultados en una variable, uno pensaría hacerlo así:</p>
<pre>&#60;xsl:variable name="x"&#62;
  &#60;xsl:for-each select="a&#124;b&#124;c"&#62;
    &#60;xsl:sequence select="."/&#62;
  &#60;/xsl:for-each&#62;
&#60;/xsl:variable&#62;</pre>
<p>Sin embargo, esto no funciona como es esperado: los a, b y c dentro de x son copias de los originales. Tras mucho rebuscar por San Google, no encontré nada, pero el estándar XSLT 2.0 incluye en su punto 5.7 lo siguiente:</p>
<p style="padding-left:30px;"><em>The sequence may be used to construct the content of             a new element or document node. This happens when the             sequence constructor appears as the content of a             <a title="literal result element" href="http://www.w3.org/TR/xslt20/#dt-literal-result-element">literal result             element</a>, or of one of the instructions <a href="http://www.w3.org/TR/xslt20/#element-copy"><code>xsl:copy</code></a>, <a href="http://www.w3.org/TR/xslt20/#element-element"><code>xsl:element</code></a>,             <span><a href="http://www.w3.org/TR/xslt20/#element-document"><code>xsl:document</code></a>,             <a href="http://www.w3.org/TR/xslt20/#element-result-document"><code>xsl:result-document</code></a>,</span> or <a href="http://www.w3.org/TR/xslt20/#element-message"><code>xsl:message</code></a>. It             also happens when the sequence constructor is contained             in one of the elements <a href="http://www.w3.org/TR/xslt20/#element-variable"><code>xsl:variable</code></a>,             <a href="http://www.w3.org/TR/xslt20/#element-param"><code>xsl:param</code></a>, or             <a href="http://www.w3.org/TR/xslt20/#element-with-param"><code>xsl:with-param</code></a>,             when this instruction has no <code>as</code> attribute.             For details, see <a href="http://www.w3.org/TR/xslt20/#constructing-complex-content">5.7.1 Constructing             Complex Content</a>.</em></p>
<p>Es decir, que con añadir una declaración de tipo de secuencia a la variable sirve:</p>
<pre>&#60;xsl:variable name="x" as="item()*"&#62;
  &#60;xsl:for-each select="a&#124;b&#124;c"&#62;
    &#60;xsl:sequence select="."/&#62;
  &#60;/xsl:for-each&#62;
&#60;/xsl:variable&#62;</pre>
<p>Para los que no lo sepan, "item()*" indica que tenemos cero o más ("*") elementos de cualquier tipo ("item()"). Podríamos concretarlo más si nos preocuparan temas de tipado o quisiéramos forzar una cierta conversión (como de entero a cadena), pero en este caso no hace falta.</p>
<p>Dejo esto apuntado por si alguna otra persona tiene el mismo problema que yo (que no lo creo, pero bueno :-D).</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Using XSLT to Replace Arbitrary XML Located Within An XML Document]]></title>
<link>http://cvalcarcel.wordpress.com/?p=13</link>
<pubDate>Sat, 06 Sep 2008 02:09:17 +0000</pubDate>
<dc:creator>cvalcarcel</dc:creator>
<guid>http://cvalcarcel.nl.wordpress.com/2008/09/06/replacing-arbitrary-xml-located-within-an-xml-document-using-xslt/</guid>
<description><![CDATA[I spent some time today working on an interesting XML/XSL problem. Not interesting like cold fusion ]]></description>
<content:encoded><![CDATA[<p>I spent some time today working on an interesting XML/XSL problem. Not interesting like <a href="//physicsworld.com/cws/article/print/1258&#34;">cold fusion</a> research, but interesting like what-a-boring-day interesting.</p>
<p>Inside of two document elements are strings with embedded XML that needed to be changed into something else. For example:</p>
<pre>&#60;legal-xml&#62;String with&#60;arbitrary-xml/&#62; inside &#60;arbitrary2-xml&#62;of&#60;/arbitrary2-xml&#62; it&#60;/legal-xml&#62;</pre>
<p>XSL has no problem finding the &#60;legal-xml&#62; element, but allowing me to find and change the &#60;arbitrary-xml&#62;  elements is interesting.</p>
<p>Here is the XML input:</p>
<pre>&#60;?xml version="1.0" encoding="UTF-8"?&#62;

&#60;documents&#62;
    &#60;document&#62;
        &#60;title&#62;This is &#60;bold-term&#62;my&#60;/bold-term&#62; title&#60;/title&#62;
        &#60;description&#62;
            &#60;separator/&#62;This is the &#60;bold-term&#62;book's&#60;/bold-term&#62;&#60;separator/&#62;description&#60;separator/&#62;
        &#60;/description&#62;
    &#60;/document&#62;
&#60;/documents&#62;</pre>
<p>In the interest of full disclosure it is safe for me to tell you that the file I was working on did not look anything like the XML document above. Contain your disappointment.</p>
<p>In the document the &#60;title&#62; and &#60;description&#62; elements contain the strings with additional embedded XML tags; in this case &#60;bold-term&#62; and &#60;separator&#62;. What I needed to do was change &#60;bold-term&#62; into the HTML &#60;b&#62; tag and the &#60;separator&#62; into asterisks.</p>
<p>My first thought was to use <a href="http://www.w3.org/2005/xpath-functions/">fn:replace()</a>, but since the strings I wanted to replace are XML elements fn:replace() would not work in this case. I was going to have to use &#60;template&#62;s. The solution is in the XSL below.</p>
<pre>&#60;?xml version="1.0" encoding="UTF-8"?&#62;

&#60;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&#62;
  &#60;xsl:output method="xml" indent="yes" /&#62;
  &#60;xsl:template match="/"&#62;
    &#60;html&#62;
      &#60;head&#62;
        &#60;title&#62;An XSL example&#60;/title&#62;
      &#60;/head&#62;
      &#60;body&#62;
        Title: &#60;xsl:apply-templates select="/documents/document/title" /&#62;
        Description: &#60;xsl:apply-templates select="/documents/document/description" /&#62;
      &#60;/body&#62;
    &#60;/html&#62;
  &#60;/xsl:template&#62;

  &#60;xsl:template match="bold-term" &#62;
    &#60;b&#62;&#60;xsl:value-of select="." /&#62;&#60;/b&#62;
  &#60;/xsl:template&#62;

  &#60;xsl:template match="separator" &#62;***&#60;/xsl:template&#62;
&#60;/xsl:stylesheet&#62;</pre>
<p>By taking the contents of &#60;title&#62; and &#60;description&#62; and processing them as standalone XML nodes I was able to use &#60;template&#62;s to do the dirty work for me. For example, the template for the &#60;bold-term&#62; element:</p>
<pre>  &#60;xsl:template match="bold-term" &#62;
    &#60;b&#62;&#60;xsl:value-of select="." /&#62;&#60;/b&#62;
  &#60;/xsl:template&#62;</pre>
<p>takes care of pulling the text surrounded by &#60;bold-term&#62; and prints it between the &#60;b&#62; tags. The template for &#60;separator&#62; is only slightly different; all I wanted to do was put 3 asterisks in place of the element which I did quite unceremoniously.</p>
<p>Yes, there is a reason why the &#60;separator&#62; template is on one line: I wanted the asterisks on the same line as the description. If I had formatted the template by putting the asterisk on a separate line:</p>
<pre>  &#60;xsl:template match="separator" &#62;
  ***
  &#60;/xsl:template&#62;</pre>
<p>the output would have looked more like:</p>
<pre>&#60;?xml version="1.0" encoding="UTF-8"?&#62;
&#60;html&#62;
  &#60;head&#62;
    &#60;title&#62;An XSL example&#60;/title&#62;
  &#60;/head&#62;
  &#60;body&#62;
        Title: This is &#60;b&#62;my&#60;/b&#62; title
        Description:
  ***
  This is the &#60;b&#62;book's&#60;/b&#62;
  ***
  description
  ***
  &#60;/body&#62;
&#60;/html&#62;</pre>
<p>Instead, by keeping the &#60;separator&#62; template on one line, I was able to generate the output I wanted.</p>
<pre>&#60;?xml version="1.0" encoding="UTF-8"?&#62;
&#60;html&#62;
  &#60;head&#62;
    &#60;title&#62;An XSL example&#60;/title&#62;
  &#60;/head&#62;
  &#60;body&#62;
        Title: This is &#60;b&#62;my&#60;/b&#62; title
        Description: ***This is the &#60;b&#62;book's&#60;/b&#62; ***description***&#60;/body&#62;
&#60;/html&#62;</pre>
<p>For those of you new to XSL, you might be wondering how the text that was not surrounded by any elements was output.</p>
<pre>This is &#60;bold-term&#62;my&#60;/bold-term&#62; title</pre>
<p>Since the template only cared about the &#60;bold-term&#62;  element it should have only printed the word "my". Somehow the entire string was printed instead. The answer is in the default XSL templates. XSL has a template for plain text which was automatically applied when text was being processed so instead of generating:</p>
<pre>&#60;b&#62;my&#60;/b&#62;</pre>
<p>it generated:</p>
<pre>This is &#60;b&#62;my&#60;/b&#62; title</pre>
<p>I worked on this using the <a href="//xml-copy-editor.sourceforge.net/&#34;">XML Copy Editor</a> which lets me create an XML file in one tab, an XSL file in another and view the output of the transform in another simply by pressing F8 in the XML tab. Simplicity at its best. I highly recommend it.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[XSLT Palindrome Checker]]></title>
<link>http://algorithmfun.wordpress.com/?p=10</link>
<pubDate>Fri, 05 Sep 2008 13:00:34 +0000</pubDate>
<dc:creator>Sandeep Phukan</dc:creator>
<guid>http://algorithmfun.nl.wordpress.com/2008/09/05/xslt-palindrome-checker/</guid>
<description><![CDATA[A simple XSLT based palindrome checker &#8230;.
Input XML:
recInput.xml
XSLT File:
recTransform.xsl
]]></description>
<content:encoded><![CDATA[<p>A simple XSLT based palindrome chec