Основная проблема здесь с URL-адресом поиска:
http://code.google.com/intl/it/query/#p=appengine&q=query
Он не содержит символ ?, а также символ #. Такой URL не проходит проверку XML, поэтому я пробовал другие подходы (даже включение дополнительного параметра), но не нашел рабочего решения.
?
#
Вот что у меня сейчас (часть изображения обрезана для упрощения):
<?xml version="1.0" encoding="UTF-8"?> <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/"> <ShortName>Google AppEngine</ShortName> <Description>Search the GAE documents at Google Code website.</Description> <InputEncoding>UTF-8</InputEncoding> <Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,...</Image> <Url type="text/html" method="GET" template="http://code.google.com/intl/it/query/#p=appengine"> <Param name="a" value="{moz:locale}"/> <Param name="q" value="{searchTerms}"/> </Url> <moz:SearchForm>http://code.google.com/intl/it/appengine/docs/</moz:SearchForm> </OpenSearchDescription>
Используйте объект & для кодирования &, и XML будет действительным:
&
&
<?xml version="1.0" encoding="UTF-8"?> <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/"> <ShortName>Google AppEngine</ShortName> <Description>Search the GAE documents at Google Code website.</Description> <InputEncoding>UTF-8</InputEncoding> <Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,25</Image> <Url type="text/html" method="GET" template="http://code.google.com/intl/it/query/#p=appengine&q={searchTerms}"></Url> <moz:SearchForm>http://code.google.com/intl/it/appengine/docs/</moz:SearchForm> </OpenSearchDescription>
Скопируйте этот XML-код в http://validator.w3.org/check, чтобы подтвердить действительность.