<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8027374637859830625</id><updated>2011-10-20T03:24:57.085-07:00</updated><category term='lean'/><category term='samplecontainer'/><category term='shindig'/><category term='Reverse Proxy'/><category term='gadget XSD validation'/><category term='pcm'/><category term='java'/><category term='integrate'/><category term='Minify Javascript'/><category term='web'/><category term='security'/><category term='moduledef'/><category term='catalina.policy'/><category term='compress png'/><category term='compress javascript'/><category term='social'/><category term='gadget'/><category term='gzip'/><category term='Integration'/><category term='web2works'/><category term='JAAS'/><category term='igoogle'/><category term='opensocial'/><category term='PngCrush'/><category term='jquery'/><category term='simple easy integrate Apache php'/><category term='Tomcat'/><category term='drop'/><category term='Javascript compression'/><category term='website performance'/><category term='SecurityManager'/><category term='2.0'/><category term='ANT'/><category term='YUI Compressor'/><category term='enterprise'/><category term='Proxy'/><category term='drag'/><category term='portal'/><category term='wipro'/><category term='performance'/><category term='Apache'/><category term='mashup'/><category term='non root'/><category term='deploy'/><title type='text'>Vinod's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-203115901686054912</id><published>2011-02-06T04:04:00.000-08:00</published><updated>2011-02-11T08:15:58.508-08:00</updated><title type='text'>4 rules to avoid messing up box model (strict mode)</title><content type='html'>1) Avoid Width when you are not sure of available width. Use display:block instead. Child elements of display:block can use "width:100%" to cover entire row (Make sure you also follow steps below while using width style).&lt;br /&gt;2) If you must use width, ensure that the border, padding and margin for that element are set to 0px&lt;br /&gt;3) Avoid margin. Margin is a box model spoiler. DO NOT USE it.&lt;br /&gt;4) If you want to put space around an element (=margin), embed that element inside a div or span and set padding of the parent element.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-203115901686054912?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/203115901686054912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=203115901686054912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/203115901686054912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/203115901686054912'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2011/02/4-rules-to-avoid-messing-up-box-model.html' title='4 rules to avoid messing up box model (strict mode)'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-8860020135691809684</id><published>2010-10-28T02:28:00.000-07:00</published><updated>2010-10-28T03:26:54.055-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='compress png'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><category scheme='http://www.blogger.com/atom/ns#' term='PngCrush'/><category scheme='http://www.blogger.com/atom/ns#' term='website performance'/><title type='text'>Compressing PNG Files</title><content type='html'>PNGCrusher is a handy utility for those of us who often struggle to keep images lean and mean. I have witnessed first hand a png image of size 2.7 KB getting compressed to 151 bytes! (~95%) by PNGCrusher. Excited? Here's how you can get it and use it:-&lt;br /&gt;&lt;br /&gt;To get it, click &lt;a href="http://downloads.sourceforge.net/project/pmt/pngcrush-executables/1.7.9/pngcrush-1.7.9-win32.zip"&gt;http://downloads.sourceforge.net/project/pmt/pngcrush-executables/1.7.9/pngcrush-1.7.9-win32.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PNGCrusher is a command line executable. So, if you'd like to use it from explorer's context menu, follow these steps:-&lt;br /&gt;1) Extract pngcrush-1.7.9-win32.zip&lt;br /&gt;2) Copy pngcrush.exe to windows\system32 folder or to a folder that is in the system path&lt;br /&gt;3) Open Control Panel and choose Folder Options. Select the File Types tab, and scroll down to the ‘PNG’ entry. Click on ‘Advanced’, then click on ‘New…’.&lt;br /&gt;4) In ‘Action’, type Crush, and in ‘Application used to perform action’, type the following:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pngcrush.exe -e _crushed.png "%1"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's it. Have fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-8860020135691809684?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/8860020135691809684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=8860020135691809684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/8860020135691809684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/8860020135691809684'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2010/10/compressing-png-files.html' title='Compressing PNG Files'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-3441580605030172070</id><published>2010-10-20T23:58:00.001-07:00</published><updated>2010-11-07T23:08:06.845-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>A must read for every web developer</title><content type='html'>This post is a collection of useful links that I frequently use. Hope you find them useful too. Feel free to post you favorite links and I'll add them to this post.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tips&lt;/span&gt;&lt;br /&gt;1. &lt;a href="http://developer.yahoo.com/performance/rules.html"&gt;Best Practices for Speeding Up Your Website&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://www.yourhtmlsource.com/sitemanagement/urlrewriting.html"&gt;URL Rewriting&lt;/a&gt;&lt;br /&gt;3. &lt;a href="http://pillvin.blogspot.com/2010/10/compressing-png-files.html"&gt;Compressing PNG Files&lt;/a&gt;&lt;br /&gt;4. &lt;a href="http://www.photoshopsupport.com/tutorials/jennifer/favicon.html"&gt;How to create ICO Files in Photoshop?&lt;/a&gt;&lt;br /&gt;5. Create valid SSL certificate recognized by most browsers @ &lt;a href="http://www.startssl.com/"&gt;www.startssl.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Frameworks&lt;br /&gt;1. &lt;a href="http://www.wingsource.org/"&gt;My very own Wingsource Project&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Currently under development. Check SVN repository to find all the exciting stuff, &lt;a href="http://lispsamik.blogspot.com"&gt;Samik&lt;/a&gt; and I are working on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://heraclitusonsoftware.wordpress.com/software-development/spring/simple-web-application-with-spring-security-specification/"&gt;Enabling security in a web application using SpringSecurity&lt;/a&gt;&lt;br /&gt;The article is slightly outdated (it's written for SpringSecurity 2.0.4; the latest one is v3.0.4) but, still useful to get started with SpringSecurity.&lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://jquery.com/"&gt;Jquery - My favorite Javascript Framework&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-3441580605030172070?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/3441580605030172070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=3441580605030172070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/3441580605030172070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/3441580605030172070'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2010/10/must-read-for-every-web-developer.html' title='A must read for every web developer'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-3450054688893118221</id><published>2010-03-23T23:12:00.000-07:00</published><updated>2010-03-23T23:14:51.361-07:00</updated><title type='text'>212 degrees - An inspirational video</title><content type='html'>&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FpJQqzJj534&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/FpJQqzJj534&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="385" width="480"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-3450054688893118221?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/3450054688893118221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=3450054688893118221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/3450054688893118221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/3450054688893118221'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2010/03/212-degrees-inspirational-video.html' title='212 degrees - An inspirational video'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-3292180558530434644</id><published>2009-06-12T21:24:00.000-07:00</published><updated>2009-06-12T23:23:08.326-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='igoogle'/><category scheme='http://www.blogger.com/atom/ns#' term='social'/><category scheme='http://www.blogger.com/atom/ns#' term='web2works'/><category scheme='http://www.blogger.com/atom/ns#' term='enterprise'/><category scheme='http://www.blogger.com/atom/ns#' term='drop'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='opensocial'/><category scheme='http://www.blogger.com/atom/ns#' term='drag'/><category scheme='http://www.blogger.com/atom/ns#' term='pcm'/><category scheme='http://www.blogger.com/atom/ns#' term='shindig'/><category scheme='http://www.blogger.com/atom/ns#' term='wipro'/><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='portal'/><category scheme='http://www.blogger.com/atom/ns#' term='mashup'/><title type='text'>iGoogle like interface using Apache Shindig + JQuery</title><content type='html'>Shindig is a very useful Apache project currently in incubation. It provides a gadget server, social data server and javascript gadgets.* and opensocial.* APIs.&lt;br /&gt;&lt;br /&gt;My &lt;a href="http://weblabs.wiprosupport.com/ourteam.html"&gt;team&lt;/a&gt; at &lt;a href="http://www.wipro.com/"&gt;Wipro&lt;/a&gt; has been working on Apache Shindig since July 2008 and, we have successfully put together a framework that allows rapid development of Social Enterprise applications. This framework is called WiproWeb2Works and, provides among other things, a fully functional igoogle-like container for gadgets. We have in fact put a reference implementation of WiproWeb2Works framework - &lt;a href="http://weblabs.wiprosupport.com/festa"&gt;Festa&lt;/a&gt; on the Web for any one to get a feel of a "portal" application based on Apache Shindig. I'd encourage you to register (free!) and try it out today.&lt;br /&gt;&lt;br /&gt;In my honest opinion, Shindig is the best way to jumpstart development of a Web 2.0 content mashup/social application. While this is great news for those of us that want to quickly create slick applications, there are some rough edges though that need to be ironed out to make it production ready.&lt;br /&gt;&lt;br /&gt;Shindig provides a sample container right out of the box. This container is as elementary as a "hello world" application that you try in Chapter 1 of any book. It hardly demonstrates the power of Shindig or the potential it holds for building an app that looks &amp;amp; feels like &lt;a href="http://www.igoogle.com/"&gt;iGoogle&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ccHpjZLajI/SjM1d-g1O7I/AAAAAAAAA2o/WwQS3K8Ss1I/s1600-h/shindig_sample.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 242px;" src="http://2.bp.blogspot.com/_-ccHpjZLajI/SjM1d-g1O7I/AAAAAAAAA2o/WwQS3K8Ss1I/s320/shindig_sample.JPG" alt="" id="BLOGGER_PHOTO_ID_5346675971732093874" border="0" /&gt;&lt;/a&gt;In the remainder sections, I'd focus on the Container development in particular and, share tips &amp;amp; tricks to help you learn from our mistakes and, build apps that are better and faster than portal apps.&lt;br /&gt;&lt;br /&gt;There are plenty of articles out there on building websites that look like &lt;a href="http://www.igoogle.com/"&gt;igoogle&lt;/a&gt;. Here are 2 of my favorites -&lt;br /&gt;(1) &lt;a href="http://nettuts.com/tutorials/javascript-ajax/inettuts/"&gt;A JQuery based iGoogle interface&lt;/a&gt; by James Padolsey&lt;br /&gt;(2) &lt;a href="http://dojotdg.zaffra.com/2009/02/igoogle-like-drag-and-drop-for-shindig-ala-dojo/"&gt;A Dojo based iGoogle interface&lt;/a&gt; by Matthew Russell&lt;br /&gt;&lt;br /&gt;In the first article, James has provided a fully functional browser compatible source code on implementing an interface with drag &amp;amp; drop niceties. In the second article, Matthew shares his experience of implementing a shindig container using dojo.&lt;br /&gt;&lt;br /&gt;To be continued...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-3292180558530434644?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/3292180558530434644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=3292180558530434644' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/3292180558530434644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/3292180558530434644'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2009/06/igoogle-like-interface-using-apache.html' title='iGoogle like interface using Apache Shindig + JQuery'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-ccHpjZLajI/SjM1d-g1O7I/AAAAAAAAA2o/WwQS3K8Ss1I/s72-c/shindig_sample.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-277446955277416635</id><published>2009-05-21T03:13:00.000-07:00</published><updated>2009-05-21T03:28:28.335-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='catalina.policy'/><category scheme='http://www.blogger.com/atom/ns#' term='JAAS'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat'/><category scheme='http://www.blogger.com/atom/ns#' term='SecurityManager'/><title type='text'>Enable security in Tomcat</title><content type='html'>I finally figured a way to enable  Security Manager on Tomcat 6.0 (windows) . The documentation at &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/security-manager-howto.html"&gt;Apache Tomcat's official website&lt;/a&gt; is incorrect and, needs revision.&lt;br /&gt;&lt;br /&gt;Please follow these steps to enable security on your Tomcat server:-&lt;br /&gt;1) Right click on the tomcat monitor icon&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ccHpjZLajI/ShUq6G3c-zI/AAAAAAAAA14/WOrGLw9oaI0/s1600-h/right_click.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 188px;" src="http://4.bp.blogspot.com/_-ccHpjZLajI/ShUq6G3c-zI/AAAAAAAAA14/WOrGLw9oaI0/s320/right_click.JPG" alt="" id="BLOGGER_PHOTO_ID_5338220111081569074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;2) Open the Configure dialog.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ccHpjZLajI/ShUrDR6YJUI/AAAAAAAAA2A/nSJwn_HJxgA/s1600-h/general_tab.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 310px;" src="http://1.bp.blogspot.com/_-ccHpjZLajI/ShUrDR6YJUI/AAAAAAAAA2A/nSJwn_HJxgA/s320/general_tab.JPG" alt="" id="BLOGGER_PHOTO_ID_5338220268665447746" border="0" /&gt;&lt;/a&gt;3) Click on the Java tab&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ccHpjZLajI/ShUrNM9jPBI/AAAAAAAAA2I/y3cJNt4Uzwg/s1600-h/java_tab.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 310px;" src="http://3.bp.blogspot.com/_-ccHpjZLajI/ShUrNM9jPBI/AAAAAAAAA2I/y3cJNt4Uzwg/s320/java_tab.JPG" alt="" id="BLOGGER_PHOTO_ID_5338220439135271954" border="0" /&gt;&lt;/a&gt;4) Add 2 system properties - &lt;span style="font-weight: bold;"&gt;java.security.manager&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;java.security.policy&lt;/span&gt; that points to the policy file. I'm pointing to the default catalina.policy file that ships with tomcat distribution.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ccHpjZLajI/ShUrfkDKHEI/AAAAAAAAA2Y/MmIscfD-e0k/s1600-h/security_settings.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 597px; height: 37px;" src="http://4.bp.blogspot.com/_-ccHpjZLajI/ShUrfkDKHEI/AAAAAAAAA2Y/MmIscfD-e0k/s400/security_settings.JPG" alt="" id="BLOGGER_PHOTO_ID_5338220754570452034" border="0" /&gt;&lt;/a&gt;5) Add the 2 properties to java options&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ccHpjZLajI/ShUsF94UV8I/AAAAAAAAA2g/Si4JRUN3Kp0/s1600-h/java_security.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 310px;" src="http://3.bp.blogspot.com/_-ccHpjZLajI/ShUsF94UV8I/AAAAAAAAA2g/Si4JRUN3Kp0/s320/java_security.JPG" alt="" id="BLOGGER_PHOTO_ID_5338221414339336130" border="0" /&gt;&lt;/a&gt;6) Click OK.&lt;br /&gt;7) Stop Service&lt;br /&gt;8) Start Service&lt;br /&gt;9) Tomcat is now running with security enabled.&lt;br /&gt;&lt;br /&gt;Thanks for reading this post. Please leave comments/suggestions to let me know if it worked for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-277446955277416635?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/277446955277416635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=277446955277416635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/277446955277416635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/277446955277416635'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2009/05/enable-security-in-tomcat.html' title='Enable security in Tomcat'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-ccHpjZLajI/ShUq6G3c-zI/AAAAAAAAA14/WOrGLw9oaI0/s72-c/right_click.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-7269119570051731013</id><published>2009-03-28T20:04:00.000-07:00</published><updated>2009-03-29T03:47:49.951-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ANT'/><category scheme='http://www.blogger.com/atom/ns#' term='YUI Compressor'/><category scheme='http://www.blogger.com/atom/ns#' term='moduledef'/><category scheme='http://www.blogger.com/atom/ns#' term='Minify Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript compression'/><category scheme='http://www.blogger.com/atom/ns#' term='compress javascript'/><title type='text'>Ant Task for YUICompressor</title><content type='html'>Here is a macro I wrote to look for javascript files recursively in a &lt;span style="font-weight: bold;"&gt;source &lt;/span&gt;folder, compress every one of them using &lt;a href="http://developer.yahoo.com/yui/compressor/"&gt;YUICompressor&lt;/a&gt; and copy the compressed javascript files to &lt;span style="font-weight: bold;"&gt;target&lt;/span&gt; folder. The usage of the task cannot get any simpler than this:-&lt;br /&gt;&lt;br /&gt;&lt;div   style="margin: 0pt; padding: 0pt; color: rgb(0, 0, 0); background-color: rgb(204, 204, 204);font-family:courier;font-size:10px;"&gt;&lt;br /&gt;&amp;lt; target name="compress" &amp;gt;&lt;br /&gt;&amp;lt;yuicompress src="uncompressed_folder" target="target_folder"/&amp;gt;&lt;br /&gt;&amp;lt;/target&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Here is the macro definition for &lt;span style="font-weight: bold;"&gt;yuicompress&lt;/span&gt;. Just place it before the yuicompress task in buildfile.xml&lt;br /&gt;&lt;br /&gt;&lt;div face="courier" size="10px" style="margin: 0pt; padding: 0pt; color: rgb(0, 0, 0); background-color: rgb(204, 204, 204);"&gt;&lt;br /&gt;&amp;lt;property description="YUICompressor" name="YUICompressor" value="&lt;span style="color:red;"&gt;./build/yuicompressor/yuicompressor-2.4.2.jar&lt;/span&gt;" /&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;macrodef name="yuicompress"&amp;gt;&lt;br /&gt;&amp;lt;attribute name="src"/&amp;gt;&lt;br /&gt;&amp;lt;attribute name="target"/&amp;gt;&lt;br /&gt;&amp;lt;sequential&amp;gt;&lt;br /&gt;    &amp;lt;echo message="Compressing files at @{src}" /&amp;gt;&lt;br /&gt;    &lt;span style="color:green;"&gt;&amp;lt;!-- create target folder if it doesn't exist already --&amp;gt;&lt;/span&gt;&lt;br /&gt;    &amp;lt;mkdir dir="@{target}"/&amp;gt;&lt;br /&gt;    &lt;span style="color:green;"&gt;&amp;lt;!-- Create directories recursively first.&lt;br /&gt;         Exclude javascript files as they will be put by YUICompressor later on --&amp;gt;&lt;/span&gt;&lt;br /&gt;    &amp;lt;copy todir="@{target}"&amp;gt;&lt;br /&gt;        &amp;lt;fileset dir="@{src}"&amp;gt;&lt;br /&gt;            &amp;lt;exclude name="**/*.js"/&amp;gt;&lt;br /&gt;        &amp;lt;/fileset&amp;gt;&lt;br /&gt;    &amp;lt;/copy&amp;gt;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:green;"&gt;&amp;lt;!-- Compress js files recursively --&amp;gt;&lt;/span&gt;&lt;br /&gt;    &amp;lt;apply executable="java" parallel="false" verbose="true" dest="@{target}"&amp;gt;&lt;br /&gt;        &amp;lt;fileset dir="@{src}"&amp;gt;&lt;br /&gt;            &amp;lt;include name="**/*.js"/&amp;gt;&lt;br /&gt;        &amp;lt;/fileset&amp;gt;&lt;br /&gt;        &amp;lt;arg line="-jar" /&amp;gt;&lt;br /&gt;        &amp;lt;arg path="${YUICompressor}" /&amp;gt;&lt;br /&gt;        &amp;lt;arg value="--charset" /&amp;gt;&lt;br /&gt;        &amp;lt;arg value="ANSI" /&amp;gt;&lt;br /&gt;        &amp;lt;arg value="-o" /&amp;gt;&lt;br /&gt;        &amp;lt;targetfile /&amp;gt;&lt;br /&gt;        &amp;lt;mapper type="glob" from="*.js" to="*.js" /&amp;gt;&lt;br /&gt;    &amp;lt;/apply&amp;gt;&lt;br /&gt;    &amp;lt;echo message="Files compressed and copied to @{target}" /&amp;gt;&lt;br /&gt;&amp;lt;/sequential&amp;gt;&lt;br /&gt;&amp;lt;/macrodef&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Reminder: Remember to replace &lt;a href="http://developer.yahoo.com/yui/compressor/"&gt;YUICompressor's&lt;/a&gt; location marked in &lt;span style="color:red;"&gt;red&lt;/span&gt; above&lt;br /&gt;&lt;br /&gt;Please leave a comment if you found it useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-7269119570051731013?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/7269119570051731013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=7269119570051731013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/7269119570051731013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/7269119570051731013'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2009/03/ant-task-for-yuicompressor.html' title='Ant Task for YUICompressor'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-5081027210849572672</id><published>2008-12-31T21:16:00.001-08:00</published><updated>2009-03-05T03:46:08.426-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shindig'/><category scheme='http://www.blogger.com/atom/ns#' term='samplecontainer'/><category scheme='http://www.blogger.com/atom/ns#' term='deploy'/><category scheme='http://www.blogger.com/atom/ns#' term='gadget'/><category scheme='http://www.blogger.com/atom/ns#' term='opensocial'/><category scheme='http://www.blogger.com/atom/ns#' term='non root'/><title type='text'>Deploying Shindig in a non root context</title><content type='html'>Shindig is configured, by default, to be accessed in ROOT context. While this is ok for development purposes, it is not desirable in a production setting where main applications may already be running in ROOT context OR in cases where a web server acts as a HTTP Reverse Proxy for an Appserver. &lt;br /&gt;&lt;br /&gt;This post describes the steps I followed to make Shindig gadget and opensocial containers work on my Tomcat Server in a non-Root Context. &lt;a href="http://markmail.org/message/7kuagby3zke3q2ra#query:using%20Shindig%20in%20a%20non%20root%20context+page:1+mid:tmd6jfybouseqfx6+state:results"&gt;Thanks a ton to Kevin Brown for providing valuable pointers in this email chain&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The following steps would enable deployment of Shindig in a non Root context on Tomcat and other AppServers.&lt;br /&gt;&lt;br /&gt;1) Build shindig using steps provided at &lt;a href="http://incubator.apache.org/shindig/#tab-building"&gt;http://incubator.apache.org/shindig/#tab-building&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;2) Copy shindig/java/server/target/shindig-server-1.1-SNAPSHOT.war to a temporary folder (say c:\temp)&lt;br /&gt;&lt;br /&gt;3) cd c:\temp&lt;br /&gt;&lt;br /&gt;4) unzip shindig-server-1.1-SNAPSHOT.war to c:\temp\shindig folder&lt;br /&gt;&lt;br /&gt;5) cd shindig/WEB-INF/classes/containers/default&lt;br /&gt;&lt;br /&gt;6) Open container.js in a text editor. Since the default setting assumes shindig to be in the root context, it is necessary to modify all URLs for opensocial calls to work correctly. After updating all URLs, save changes and close container.js.&lt;br /&gt;&lt;br /&gt;(There are some properties in shindig still that are pending migration to container.js, hence step#7 to 10. Thanks Carmen and Gerald for this suggestion)&lt;br /&gt;&lt;br /&gt;7) Extract shindig.properties from shindig/WEB-INF/lib/shindig-common-1.1-SNAPSHOT.jar to shindig/WEB-INF/classes folder&lt;br /&gt;&lt;br /&gt;8) Remove shindig.properties from shindig/WEB-INF/lib/shindig-common-1.1-SNAPSHOT.jar&lt;br /&gt;&lt;br /&gt;9) cd shindig/WEB-INF/classes&lt;br /&gt;&lt;br /&gt;10) Open shindig.properties in a text editor. Since the default setting assumes shindig to be in the root context, it is necessary to modify all URLs for gadget/concat calls to work correctly.&lt;br /&gt;&lt;br /&gt;11) Fix Shindig's sample opensocial container "samplecontainer"&lt;br /&gt;   (a) cd c:/temp/shindig/gadgets/files/samplecontainer&lt;br /&gt;   (b) Open samplecontainer.js in a text editor&lt;br /&gt;   (c) Append Shindig's context name in the URL assigned to the variable "socialDataPath"   (line# 44)&lt;br /&gt;   (d) Append Shindig's context name in the URI passed to sendRequestToServer() within requestGadgetMetaData function (line# 192)&lt;br /&gt;   (e) save &amp; close samplecontainer.js&lt;br /&gt;   (f) cd examples&lt;br /&gt;   (g) Open all gadget xmls and, update URL of images (for ex:- bubble.gif, nophoto.if etc.)&lt;br /&gt;   (h) Also, make the changes mentioned in steps b-g for samplecontainer provided under  c:/temp/shindig/WEB-INF/classes/gadgets/files/samplecontainer&lt;br /&gt;&lt;br /&gt;12)  Zip the contents of shindig folder and rename the zip file as shindig.war or any other name based on your preference.&lt;br /&gt;&lt;br /&gt;13) This war file would now work on Tomcat or any other app server in a non-root context&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-5081027210849572672?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/5081027210849572672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=5081027210849572672' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/5081027210849572672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/5081027210849572672'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2008/12/deploying-shindig-in-non-root-context.html' title='Deploying Shindig in a non root context'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-7678676176960663816</id><published>2008-08-22T21:43:00.000-07:00</published><updated>2008-08-22T23:36:13.938-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gadget XSD validation'/><title type='text'>Google Gadget XSD doesn't pass XSD validation</title><content type='html'>If you are having trouble getting your development tools to work smoothly with gadget  XSD to do tasks such as validating &amp;amp; parsing gadget xmls, then look no further. The problem lies in gadget XSD itself. The latest and greatest version &lt;a href="http://opensocial-resources.googlecode.com/svn/spec/0.8/gadgets/gadgets-extended.xsd"&gt;0.8&lt;/a&gt; of the gadget is not a valid XSD.&lt;br /&gt;&lt;br /&gt;Proof: Run it through &lt;a href="http://www.w3.org/2001/03/webdata/xsv"&gt;W3C XSD validator&lt;/a&gt; and you will find close to 12 errors.&lt;br /&gt;&lt;br /&gt;Here is the fixed XSD. Let me know if this works for you. &lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 0pt; background-color: rgb(204, 204, 204);font-family:courier;" &gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Module"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="ModulePrefs" minOccurs="0"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:choice minOccurs="0" maxOccurs="unbounded"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Require" type="GadgetFeatureType"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Optional" type="GadgetFeatureType"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Preload"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="href" type="xs:string" use="required"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="authz" default="none"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:restriction base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="none"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="signed"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="oauth"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="sign_owner" type="xs:boolean" default="true"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="sign_viewer" type="xs:boolean" default="true"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="views" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Icon"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:extension base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="mode"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:restriction base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="base64"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="type" type="xs:string"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:extension&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Locale"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="msg" minOccurs="0" maxOccurs="unbounded"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:extension base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="name" type="xs:string" use="required"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="desc" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:extension&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="lang" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="country" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="messages" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="language_direction"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:restriction base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="ltr"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="rtl"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Link"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="href" type="xs:string" use="required"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="rel" use="required"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:restriction base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="gadgets.help"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="gadgets.support"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="icon"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="OAuth" minOccurs="0" maxOccurs="1"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Service" maxOccurs="unbounded"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Request" type="OAuthResourceType" minOccurs="0"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Access" type="OAuthResourceType" minOccurs="0"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Authorization" minOccurs="0"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="url" type="xs:string" use="required"/&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="name" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:choice&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="title" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="title_url" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="description" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="author" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="author_email" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="screenshot" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="thumbnail" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="directory_title" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="author_affiliation" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="author_location" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="author_photo" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="author_aboutme" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="author_quote" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="author_link" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="show_stats" type="xs:boolean" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="show_in_directory" type="xs:boolean" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="string" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="width" type="xs:int" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="height" type="xs:int" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="category" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="category2" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="singleton" type="xs:boolean" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="render_inline" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="scaling" type="xs:boolean" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="scrolling" type="xs:boolean" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="UserPref" minOccurs="0" maxOccurs="unbounded"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="EnumValue" minOccurs="0" maxOccurs="unbounded"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="value" type="xs:string" use="required"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="display_value" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="name" type="xs:string" use="required"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="display_name" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="default_value" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="required" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="datatype" default="string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:restriction base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="string"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="hidden"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="bool"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="enum"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="list"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="number"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="location"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="urlparam" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="autocomplete_url" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="num_minval" type="xs:double" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="num_maxval" type="xs:double" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="str_maxlen" type="xs:int" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="restrict_to_completions" type="xs:boolean" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="prefix_match" type="xs:boolean" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="publish" type="xs:boolean" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="listen" type="xs:boolean" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="on_change" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="group" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Content" minOccurs="1" maxOccurs="unbounded"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:extension base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="type" use="optional" default="html"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:restriction base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="html"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="url"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="html-inline"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="href" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="view" type="xs:string" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="preferred_height" type="xs:integer" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="preferred_width" type="xs:integer" use="optional"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:extension&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType name="GadgetFeatureType"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:element name="Param" minOccurs="0" maxOccurs="unbounded"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleContent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:extension base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="name" type="xs:string" use="required"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:extension&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleContent&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="feature" type="xs:string" use="required"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;xs:complexType name="OAuthResourceType"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="url" type="xs:string" use="required"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="method" use="optional" default="GET"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:restriction base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="GET"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="POST"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:attribute name="param_location" use="optional" default="header"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:restriction base="xs:string"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="header"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="url"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;xs:enumeration value="body"/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:restriction&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:simpleType&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-7678676176960663816?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/7678676176960663816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=7678676176960663816' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/7678676176960663816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/7678676176960663816'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2008/08/google-gadget-xsd-doesnt-pass-xsd.html' title='Google Gadget XSD doesn&apos;t pass XSD validation'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-2532857268380327197</id><published>2008-08-06T01:01:00.000-07:00</published><updated>2008-08-06T01:10:40.977-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='gzip'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Enable gzip compression on Apache web server in 3 easy steps</title><content type='html'>Make the following changes in apache/conf/httpd.conf :-&lt;br /&gt;&lt;br /&gt;1) Uncomment "LoadModule deflate_module modules/mod_deflate.so"&lt;br /&gt;&lt;br /&gt;2) Add "SetOutputFilter DEFLATE" inside &lt;&amp;lt;IfModule mime_module&amp;gt; section&lt;br /&gt;&lt;br /&gt;3) Add "AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text/css" right after SetOutputFilter... line.&lt;br /&gt;&lt;br /&gt;Restart Apache. You should see a significant improvement in the turnaround time for your web applications. This setting works for all responses tunneled trough Apache for ex:- for java web applications deployed on a Tomcat integrated with apache web server etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-2532857268380327197?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/2532857268380327197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=2532857268380327197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/2532857268380327197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/2532857268380327197'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2008/08/enable-gzip-compression-on-apached-web.html' title='Enable gzip compression on Apache web server in 3 easy steps'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-7780792659185358851</id><published>2008-06-24T23:46:00.000-07:00</published><updated>2008-06-25T00:01:28.679-07:00</updated><title type='text'>Integrate php with MySQL</title><content type='html'>Open {PHP_DIR}/php.ini&lt;br /&gt;1) Check if the extension directory is set correctly. is is set incorrectly in the php.ini file  that ships with the installer. In that , Replace &lt;span style="color: rgb(0, 153, 0);"&gt;extension_dir="./"&lt;/span&gt; with &lt;span style="color: rgb(255, 0, 0);"&gt;extension_dir="./ext/" &lt;/span&gt;&lt;br /&gt;(2) Uncomment &lt;span style="color: rgb(255, 0, 0);"&gt;extension=php_mysql.dll&lt;/span&gt;&lt;br /&gt;(3) You should now be able to access your mysql database.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-7780792659185358851?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/7780792659185358851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=7780792659185358851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/7780792659185358851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/7780792659185358851'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2008/06/integrate-php-with-mysql.html' title='Integrate php with MySQL'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-8581142543884352972</id><published>2008-06-24T23:21:00.000-07:00</published><updated>2008-06-24T23:42:01.898-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='simple easy integrate Apache php'/><title type='text'>Integrate Apache 2.x with Php 5</title><content type='html'>Open {APACHE_DIR}/conf/httpd.conf&lt;br /&gt;1) Enable mod rewrite by uncommenting or adding  &lt;span style="color: rgb(255, 0, 0);"&gt;LoadModule rewrite_module modules/mod_rewrite.so&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2) Add the following lines in the load module section&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;PHPIniDir "C:/Program Files/php"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;LoadModule php5_module "C:/Program Files/php/php5apache2_2.dll"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3) Add php mime type&lt;br /&gt; (a) Search for &lt;span style="color: rgb(0, 0, 0);"&gt;"IfModule mime_module&lt;/span&gt;" tag&lt;br /&gt; (b) Add the following lines right after the "TypesConfig conf/mime.types"&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;                                     AddType application/x-httpd-php .php&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;                                     AddType application/x-httpd-php .php .html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(4) Allow full control to Apache's root folder that contains php files by creating or modifying (if one already exists) the &amp;lt;Directory&amp;gt; element for the root folder. Since the root folder for php is {APACHE_DIR}/htdocs folder itself on my machine, the directory entry looks like this:-&lt;br /&gt;&lt;directory&gt;&lt;br /&gt;Options Indexes FollowSymLinks&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    AllowOverride All&lt;/span&gt;&lt;br /&gt;Order allow,deny&lt;br /&gt;Allow from all&lt;br /&gt;&lt;/directory&gt;&lt;br /&gt;&lt;br /&gt;(5) Test the setup. Create a new file called info.php under {APACHE_DIR}/htdocs folder. Copy &amp;amp; paste the following lines into info.php&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;?php&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;phpinfo();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;?&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;(6) Access info.php from the browser . The integration with Apache is successful if you see a page that lists  information about the php environment installed on your machine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-8581142543884352972?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/8581142543884352972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=8581142543884352972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/8581142543884352972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/8581142543884352972'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2008/06/integrate-apache-2x-with-php-5.html' title='Integrate Apache 2.x with Php 5'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-8816335362997451528</id><published>2008-06-24T23:12:00.000-07:00</published><updated>2008-06-24T23:45:11.140-07:00</updated><title type='text'>Installing php5</title><content type='html'>On Windows XP Pro:-&lt;br /&gt;1) download php's installation zip file from &lt;a href="http://www.php.net/"&gt;http://www.php.net&lt;/a&gt;&lt;br /&gt;2) Unzip the files to "C:/Program Files/php" folder&lt;br /&gt;3) Add "C:/Program Files/php" to the PATH environment variable. Right click My Computers-&gt;properties-&gt;Advanced-&gt;Environment Variables. Update PATH variable under system variables section.&lt;br /&gt;4) rename php.ini-dist as &lt;span style="color: rgb(255, 0, 0);"&gt;php.ini&lt;/span&gt; under "C:/Program Files/php" folder&lt;br /&gt;5) Restart PC. This makes the os  load all  files residing in "C:/Program Files/php" folder.&lt;br /&gt;6) After restart, open command line window (start-&gt;run-&gt;cmd.exe) and run &lt;span style="font-weight: bold;"&gt;php -version&lt;/span&gt;&lt;br /&gt;7) The installation is successful if the php interpreter shows version information without any errors or exceptions&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-8816335362997451528?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/8816335362997451528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=8816335362997451528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/8816335362997451528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/8816335362997451528'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2008/06/installing-php5.html' title='Installing php5'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8027374637859830625.post-6315446622707085874</id><published>2008-06-10T21:07:00.000-07:00</published><updated>2008-06-24T23:12:08.439-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reverse Proxy'/><category scheme='http://www.blogger.com/atom/ns#' term='Proxy'/><category scheme='http://www.blogger.com/atom/ns#' term='Integration'/><category scheme='http://www.blogger.com/atom/ns#' term='integrate'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Integrate Apache Web Server 2.x with Tomcat 6.x on Windows XP</title><content type='html'>1) Enable Apache's HTTP proxy module by uncommenting the following lines in {APACHE_DIR}/conf/httpd.conf&lt;br /&gt;&lt;br /&gt;LoadModule proxy_module modules/mod_proxy.so&lt;br /&gt;LoadModule proxy_http_module modules/mod_proxy_http.so&lt;br /&gt;&lt;br /&gt;2) Right at the end of the Load module section in httpd.conf, register URLs that should be forwarded to Tomcat like this:-&lt;br /&gt;ProxyPass        &lt;span style="color: rgb(255, 153, 0);"&gt;relative_url&lt;/span&gt;   &lt;span style="color: rgb(0, 153, 0);"&gt;translated_url&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For ex, Accessing a web application named 'tp' deployed on a local Tomcat server listening on port 8080  through Apache's http proxy (http://localhost/tp) would like this:-&lt;br /&gt;ProxyPass         &lt;span style="color: rgb(255, 153, 0);"&gt;/tp&lt;/span&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt;http://localhost:8080/tp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3) Add Apache's proxy to Tomcat's &amp;lt;connector&amp;gt; element associated with port 8080 in {TOMCAT_DIR}/conf/server.xml by adding the proxy attributes like this:-&lt;br /&gt;&amp;lt;connector port="8080" protocol="HTTP/1.1"&lt;br /&gt;      connectiontimeout="20000"&lt;br /&gt;      redirectport="8443"&lt;span style="color: rgb(255, 0, 0);"&gt;              &lt;br /&gt;      proxyName="localhost"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;      proxyPort="80"&lt;/span&gt;/&amp;gt;&lt;br /&gt;&lt;br /&gt;That's all there is to it. You should now be able to access tomcat via Apache Web Server's HTTP reverse proxy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8027374637859830625-6315446622707085874?l=pillvin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pillvin.blogspot.com/feeds/6315446622707085874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8027374637859830625&amp;postID=6315446622707085874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/6315446622707085874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8027374637859830625/posts/default/6315446622707085874'/><link rel='alternate' type='text/html' href='http://pillvin.blogspot.com/2008/06/integrate-apache-web-server-2x-with.html' title='Integrate Apache Web Server 2.x with Tomcat 6.x on Windows XP'/><author><name>Vinod</name><uri>http://www.blogger.com/profile/18428327079833435971</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_-ccHpjZLajI/SE9UsbH1MpI/AAAAAAAAAqE/kHISmbOvPHQ/S220/Vinod.jpg'/></author><thr:total>0</thr:total></entry></feed>
