<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>4079</bug_id>
          
          <creation_ts>2005-07-20 00:40:33 -0700</creation_ts>
          <short_desc>Support EXSLT with libexslt</short_desc>
          <delta_ts>2022-07-06 21:46:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>14525</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Romain Brestac">romain.brestac</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>cabo</cc>
    
    <cc>davem</cc>
    
    <cc>gregd72002</cc>
    
    <cc>ian</cc>
    
    <cc>jayvdb</cc>
    
    <cc>jensimmons</cc>
    
    <cc>julian.reschke</cc>
    
    <cc>m.david</cc>
    
    <cc>mike</cc>
    
    <cc>rindahl</cc>
    
    <cc>webdev</cc>
    
    <cc>zearin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>14957</commentid>
    <comment_count>0</comment_count>
    <who name="Romain Brestac">romain.brestac</who>
    <bug_when>2005-07-20 00:40:33 -0700</bug_when>
    <thetext>Support EXSLT (XSLT extensions). EXSLT provide additional functions to XSLT.
A library exists in the system (since Panther) called libexslt.dylib. It would be easy to link webkit against 
this library and then use it.
For this purpose I think the function exsltRegisterAll is of interest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14958</commentid>
    <comment_count>1</comment_count>
      <attachid>3027</attachid>
    <who name="Romain Brestac">romain.brestac</who>
    <bug_when>2005-07-20 00:53:49 -0700</bug_when>
    <thetext>Created attachment 3027
Test case for one function, part of EXSLT.

This is a test case for libexslt support. It checks the availability of the
date:date function.

EXSLT has many other functions but does it make sense to test them individually
? If the date:date function fails, it means that the date module has not been
registered or EXSLT is not enabled at all.

This is my first test case so it is certainly not perfect ( comments welcome).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27675</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-01-03 15:38:08 -0800</bug_when>
    <thetext>Confirming that the test case fails in Safari, succeeds in xsltproc. Firefox 1.5 fails even worse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28328</commentid>
    <comment_count>3</comment_count>
      <attachid>5630</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-01-12 14:17:13 -0800</bug_when>
    <thetext>Created attachment 5630
proposed fix

Just do what the reporter has proposed (without really thinking this through :)
).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28329</commentid>
    <comment_count>4</comment_count>
      <attachid>5630</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-12 14:25:44 -0800</bug_when>
    <thetext>Comment on attachment 5630
proposed fix

Looks OK.  There are other places we might choose to register exslt, however
this one is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28344</commentid>
    <comment_count>5</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-01-12 21:42:41 -0800</bug_when>
    <thetext>Patch looks short and sweet, but before landing we should maybe look into the following:

- what other browsers support EXSLT?
- is EXSLT relatively stable as a spec and implementation  (so we won&apos;t be creating future possible compat 
issues)?
- is libexslt a high-quality implementation that is reasonably robust?

I think we should do some minimum level of due diligence before adding a new technology and a new 
dependency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28353</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-13 03:27:03 -0800</bug_when>
    <thetext>Also:

    4) Does registering exslt have an effect on other clients in-process who are also using libxslt? Good or 
bad?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28472</commentid>
    <comment_count>7</comment_count>
      <attachid>5630</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-15 00:24:53 -0800</bug_when>
    <thetext>Comment on attachment 5630
proposed fix

Removing this from the commit queue until mjs&apos;s &amp; darin&apos;s comments are
addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36720</commentid>
    <comment_count>8</comment_count>
    <who name="Julian Reschke">julian.reschke</who>
    <bug_when>2007-01-06 04:21:07 -0800</bug_when>
    <thetext>Support for exslt:node-set alone would be extremely useful. It&apos;s supported in Firefox3 and Opera 9.1, and MSIE has an equivalent extension (in their name 
space, of course).
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6927</commentid>
    <comment_count>9</comment_count>
    <who name="M. David Peterson">m.david</who>
    <bug_when>2007-06-21 02:26:30 -0700</bug_when>
    <thetext>Adding support for EXSLT via libexslt would be an *ENORMOUS* win for Safari, closing the final gap in browser support for exsl:node-set() while giving an extensive library of useful and, most importantly, productive functionality to the Safari web developer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6920</commentid>
    <comment_count>10</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-06-21 03:16:22 -0700</bug_when>
    <thetext>This seems reasonable to me.  We will need to include libexslt in the Windows WebKitAuxiliaryLibraries though in order to have it for Windows. 

We will also need #if ENABLE(EXSLT) and turn it on just for Mac and Windows.  (See how XSLT&apos;s ifdef/enabling works.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6917</commentid>
    <comment_count>11</comment_count>
    <who name="M. David Peterson">m.david</who>
    <bug_when>2007-06-21 04:15:23 -0700</bug_when>
    <thetext>PLEASE NOTE: In a recent post to XSL-List and EXSLT-DevList regarding the stability of the EXSLT spec, Dr. Michael Kay [http://saxonica.com] 

&gt;&gt; If it has a problem, it&apos;s that it&apos;s been too stable... There&apos;s quite a lot
in there that is a bit tentative and has been in that state for some years
and could do with firming up. However, it does distinguish stable
specifications from the more tentative proposals. The specs are a bit
informal, which means you may get interoperability issues across
implementations in corner cases, but you&apos;re unlikely to hit serious
backwards compatibility issues because it&apos;s an informal spec so as a vendor
you always have the choice whether to implement any changes or not.
 
The other issue of course is that many of the EXSLT functions become
obsolete when you move to XSLT 2.0, so if you put them into a 1.0
implementation now you may be committing yourself to carry them forward into
a future 2.0 implementation where they are (in many cases) no longer needed
except for backwards compatibility. &lt;&lt;

In regards to the second paragraph, it would be impossible to know what plans Apple might have for supporting XSLT 2.0, so this is obviously something that would need to be considered from a strategic level more so than a technical level, but my guess is that regardless of this decision, the reality of continuing to provide the libexslt library alongside any future implementation of XSLT 2.0 would be less of a concern, especially if that future XSLT 2.0 support were to come as a direct extension to the libxslt/libexslt library itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6916</commentid>
    <comment_count>12</comment_count>
    <who name="M. David Peterson">m.david</who>
    <bug_when>2007-06-21 04:16:32 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; This seems reasonable to me.  We will need to include libexslt in the Windows
&gt; WebKitAuxiliaryLibraries though in order to have it for Windows. 
&gt; 
&gt; We will also need #if ENABLE(EXSLT) and turn it on just for Mac and Windows. 
&gt; (See how XSLT&apos;s ifdef/enabling works.)
&gt; 

That&apos;s great news, Dave!  Looking forward to actively testing on both Mac and Windows once the support is made available. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6143</commentid>
    <comment_count>13</comment_count>
    <who name="Todd Ditchendorf">itod</who>
    <bug_when>2007-06-26 19:32:08 -0700</bug_when>
    <thetext>I just worked up a patch for this before searching and noticing this issue. Considering FF and Opera support at least exsl:node-set(), I agree WebKit should have this too. Programming XSLT 1.0 without this function can be fairly painful. My impression is that the XSLT community considers node-set() a basic necessity. IMO enabling all of exslt available (with exsltRegisterAll())  is the best approach tho.

I will try to add a test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6097</commentid>
    <comment_count>14</comment_count>
    <who name="M. David Peterson">m.david</who>
    <bug_when>2007-06-27 02:22:45 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; I just worked up a patch for this before searching and noticing this issue.
&gt; Considering FF and Opera support at least exsl:node-set(), I agree WebKit
&gt; should have this too. 

You can also get IE 5.x, 6, and 7 to support it using a trick from Julian Reschke (in whom I believe started this thread) that extended from an idea first suggested by David Carlisle.  You can find the details and test code @ http://dpcarlisle.blogspot.com/2007/05/exslt-node-set-function.html

&gt; Programming XSLT 1.0 without this function can be fairly
&gt; painful. My impression is that the XSLT community considers node-set() a basic
&gt; necessity. 

Oh this is for certain!

&gt; IMO enabling all of exslt available (with exsltRegisterAll())  is
&gt; the best approach tho.

I completely agree, especially given the ease of integrating it via using exsltRegisterAll.  That said, please see my follow-up comment[1] to Kurt Cagle earlier today regarding what I would personally term as the most important extension beyond exsl:node-set() &gt; Extension Functions. :)

[1] http://www.oreillynet.com/xml/blog/2007/06/apple_sees_the_xslt_light_adds.html#comment-879580

&gt; 
&gt; I will try to add a test case.

Thanks for your help and support with this, Todd!
&gt; 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5930</commentid>
    <comment_count>15</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-06-28 22:04:01 -0700</bug_when>
    <thetext>Someone needs to sign up to do the work here for this to make Safari 3.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5919</commentid>
    <comment_count>16</comment_count>
    <who name="M. David Peterson">m.david</who>
    <bug_when>2007-06-29 07:14:29 -0700</bug_when>
    <thetext>Dave,

I assume by &quot;someone&quot; you are referring to an internal Apple employee?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5892</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-06-29 13:22:34 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; I will try to add a test case.

Something that would help the most are examples of actual Web sites using EXSLT features (as mentioned above, FF and Opera support exsl:node-set(), so I suppose there should be at least a few such sites?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5890</commentid>
    <comment_count>18</comment_count>
    <who name="Julian Reschke">julian.reschke</who>
    <bug_when>2007-06-29 13:40:48 -0700</bug_when>
    <thetext>Here&apos;s an example:

&lt;http://greenbytes.de/tech/webdav/rfc4287.xml&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5787</commentid>
    <comment_count>19</comment_count>
    <who name="M. David Peterson">m.david</who>
    <bug_when>2007-07-01 12:31:42 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #13)
&gt; &gt; I will try to add a test case.
&gt; 
&gt; Something that would help the most are examples of actual Web sites using EXSLT
&gt; features (as mentioned above, FF and Opera support exsl:node-set(), so I
&gt; suppose there should be at least a few such sites?)
&gt; 

While I need to clean up the sample XML data to make more sense (I pulled the data from a yet to be launched site), http://test.atomictalk.org/index.xml and http://test.atomictalk.org/index-node-set.xml will provide two samples: the first doesn&apos;t use node-set, the second does.  

The code is checked into http://atomictalk.googlecode.com/svn/trunk/

What this does: As the XML is parsed, it looks for @@ symbols (e.g. @@name-of-advice-element@@), looks for the advice:name-of-advice-element in the /my:session/my:page/page:config/page:advice/advice:*, and replaces the content of that element inline where it found the @@name-of-advice-element@@.  Of course, each advice element can contain the name of another advice element, and can also use conditional logic to determine if content should be replaced, and if so with what.  Without using exsl:node-set, this is dynamically evaluated each time the processor comes across an @@element-name@@ code block, so quite obviously this is an expensive way to process the advice elements.  Using node-set, the advice elements can be &quot;pre-compiled&quot; so it becomes a simple matter of looking up the element name and replacing the @@element-name@@ with the static string value of the element. 

That said, I quickly rewrote the tranformation code to accomodate the usage of exsl:node-set() for testing purposes.  More work is needed before it will be a good side-by-side comparison of using exsl:node-set() compared to not using it.  At the moment it pre-compiles the advice elements but doesn&apos;t use that pre-compiled data during the replace operation.  It&apos;s going to take quite a bit more code rewrite to get that to work properly, so for now this is simply a way to test whether exsl:node-set() is working properly.

I&apos;ll update this thread when the code has been rewritten in such a way as to be a good side-by-side comparion test case for exsl:node-set().

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5600</commentid>
    <comment_count>20</comment_count>
      <attachid>15386</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-07-04 11:44:31 -0700</bug_when>
    <thetext>Created attachment 15386
Test EXSLT support

This test, taken with minor modifications from &lt;http://www.biglist.com/lists/xsl-list/archives/200706/msg00280.html&gt;, lists supported EXSLT functions and elements. Opera 9.2 only supports exslt:node-set(), while Firefox 3 alpha has more extensive (but still far from complete) support.

It seems that exslt:node-set() is a must have, but the question of bringing in the whole libexslt is not entirely obvious to me. If we do so, it may complicate the task of rewriting our XSLT support to avoid creation of a separate DOM tree.

Can we start with only adding node-set() to our own contexts (with xsltRegisterExtFunction())? This would avoid affecting other clients in-process who are also using libxslt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5596</commentid>
    <comment_count>21</comment_count>
    <who name="M. David Peterson">m.david</who>
    <bug_when>2007-07-04 12:02:55 -0700</bug_when>
    <thetext>(In reply to comment #20)

&gt; Can we start with only adding node-set() to our own contexts (with
&gt; xsltRegisterExtFunction())? This would avoid affecting other clients in-
&gt; process who are also using libxslt.

The *real* key to all of this, in my own opinion, is providing the -- for all intents and purposes -- mandatory capability provided by the node-set function while at the same time providing consistency across browsers.  While the extended functionality of libexslt is nice, it certainly doesn&apos;t do a whole lot for the cross-browser developer, and having had *MANY* years of experience with the XSLT communities at large, I can assure that if there is one area of primary encouragement and focus it is that of maintaining consistency, writing portable XSLT when at all possible.  And this comes from a world in which the primary XSLT code base has been written to run on the server where control over the environment can be maintained.  The point becomes several magnitudes stronger when you consider that there are 4 primary browsers with enough market share to force at very least some effort at providing support for each of them.  In this regard, and while I hate to admit it, providing support past that of node-set could very easily be seen as a complete waste of time.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5302</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-07-07 03:08:04 -0700</bug_when>
    <thetext>exslt:node-set() is now in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5269</commentid>
    <comment_count>23</comment_count>
    <who name="M. David Peterson">m.david</who>
    <bug_when>2007-07-07 10:53:16 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; exslt:node-set() is now in.
&gt; 

FYI &gt; http://www.oreillynet.com/xml/blog/2007/07/apple_listens_to_community_add.html
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5149</commentid>
    <comment_count>24</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2007-07-08 21:35:06 -0700</bug_when>
    <thetext>Does Windows have libesxlt support?  Did it get added to the auxiliary libs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5150</commentid>
    <comment_count>25</comment_count>
    <who name="M. David Peterson">m.david</who>
    <bug_when>2007-07-08 22:31:51 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Does Windows have libesxlt support?  Did it get added to the auxiliary libs?
&gt; 

Yes &gt; http://www.oreillynet.com/xml/blog/2007/07/apple_listens_to_community_add.html (updatd w/ screenshots of both Safari+Mac and Safari+Windows) :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5070</commentid>
    <comment_count>26</comment_count>
    <who name="M. David Peterson">m.david</who>
    <bug_when>2007-07-10 10:07:04 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Does Windows have libesxlt support?  Did it get added to the auxiliary libs?
&gt; 

A bit of strangeness to report,

via http://www.oreillynet.com/xml/blog/2007/07/apple_listens_to_community_add.html#comment-947612

&lt;blockquote&gt;Just curious, how did you get the windows version working? In looking at your screenshot, you ran ...\WebKit-r24096\run_nightly_webkit.cmd which is identical to what I run (except for the full directory path) but I am getting a blank page.
Thanks!
Bruce&lt;/blockquote&gt;

Any ideas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>5019</commentid>
    <comment_count>27</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-07-11 06:01:14 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Any ideas?

Apparently not yet... Please file a new bug if this is a reproducible issue, as it may turn out to be unrelated to EXSLT. Let&apos;s keep this bug to track (possible) implementation of other EXSLT features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4956</commentid>
    <comment_count>28</comment_count>
    <who name="Bruce Rindahl">rindahl</who>
    <bug_when>2007-07-12 09:50:52 -0700</bug_when>
    <thetext>In reply to 27, I just installed windows nightly 24238 and it is now working fine.  I might have been using an old nightly - sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414</commentid>
    <comment_count>29</comment_count>
    <who name="Jim Fuller">jim.fuller</who>
    <bug_when>2007-09-17 07:57:12 -0700</bug_when>
    <thetext>When u have exslt support, you can test using my lo tech exslt coverage xslt,

explained here

http://jimfuller.blogspot.com/2007/09/testing-exslt-support.html

or you can just point your browser to here

http://www.webcomposite.com/func-avail.xsl

cheers, Jim Fuller

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361</commentid>
    <comment_count>30</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-09-18 09:35:00 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; When u have exslt support, you can test using my lo tech exslt coverage xslt, explained here
&gt; 
&gt; http://jimfuller.blogspot.com/2007/09/testing-exslt-support.html
&gt; 
&gt; or you can just point your browser to here
&gt; 
&gt; http://www.webcomposite.com/func-avail.xsl

Bug 15231

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195713</commentid>
    <comment_count>31</comment_count>
    <who name="Dave McCaldon">davem</who>
    <bug_when>2010-03-03 12:39:59 -0800</bug_when>
    <thetext>I have a need for the EXSLT strings:tokenize() function, I&apos;ve patched XSLTExtensions.cpp for my own purposes, but I&apos;d like to see it in WebKit.  Since XSLT 2.0 is nowhere in sight, EXSLT is the only hope!  I don&apos;t think it makes sense to add functions piecemeal; after nearly 5 years is there still anything preventing libexslt being included in the build and exsltRegisterAll() being called from registerXSLTExtensions() in XSLTExtensions.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195719</commentid>
    <comment_count>32</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-03-03 12:53:42 -0800</bug_when>
    <thetext>Nothing changed, adding full support is still blocked on having good answers to the questions in comments 5 and 6.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195730</commentid>
    <comment_count>33</comment_count>
    <who name="Dave McCaldon">davem</who>
    <bug_when>2010-03-03 13:19:09 -0800</bug_when>
    <thetext>Let&apos;s try to answer these then:

Q) What other browsers support EXSLT?
A) Firefox 3.0 seems to support most of EXSLT: https://developer.mozilla.org/En/EXSLT, obviously Safari and Chrome are limited by Webkit support (or lack of). IE and Opera don&apos;t seem to support anything other than node-set.

Q) Is EXSLT relatively stable as a spec and implementation?
A) It seems so, the most recent exslt update I can find on exslt.org is Oct 14th 2003!

Q) Is libexslt a high-quality implementation that is reasonably robust?
A) Hard to answer, but it seems so for the set of functions I&apos;ve used (via Todd&apos;s XSLMate plugin for TextMate).

Q) Does registering exslt have an effect on other clients in-process who are also using libxslt?
A) Again, hard to answer, but since EXSLT functions exist in their own set of namespaces, probably not.

For the last two questions, it seems that only going ahead with a complete EXSLT and then testing it will determine the answers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269262</commentid>
    <comment_count>34</comment_count>
    <who name="Julian Reschke">julian.reschke</who>
    <bug_when>2010-08-25 08:46:49 -0700</bug_when>
    <thetext>I&apos;d like to add my support for supporting more of EXSLT (or to implement XSLT 2.0 :-).

Matching FF&apos;s functionality probably would be cool, as it would allow many more things in almost all UAs (note that for IE an XSLT can always fallback to MS-specific extension functions, as demonstrated for node-set many times).

FF does *not* implement exslt:date, which is a shame, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401095</commentid>
    <comment_count>35</comment_count>
    <who name="Julian Reschke">julian.reschke</who>
    <bug_when>2011-05-10 01:26:03 -0700</bug_when>
    <thetext>&gt; FF does *not* implement exslt:date, which is a shame, though.

Support for exslt:date-time (and just that) was just added to Mozilla trunk (https://bugzilla.mozilla.org/show_bug.cgi?id=603159)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434476</commentid>
    <comment_count>36</comment_count>
    <who name="Julian Reschke">julian.reschke</who>
    <bug_when>2011-07-09 04:14:39 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; &gt; FF does *not* implement exslt:date, which is a shame, though.
&gt; 
&gt; Support for exslt:date-time (and just that) was just added to Mozilla trunk (https://bugzilla.mozilla.org/show_bug.cgi?id=603159)

...and is present in Firefox 6 beta as of now (target release date August 2011)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472878</commentid>
    <comment_count>37</comment_count>
    <who name="Julian Reschke">julian.reschke</who>
    <bug_when>2011-09-25 06:17:19 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (In reply to comment #35)
&gt; &gt; &gt; FF does *not* implement exslt:date, which is a shame, though.
&gt; &gt; 
&gt; &gt; Support for exslt:date-time (and just that) was just added to Mozilla trunk (https://bugzilla.mozilla.org/show_bug.cgi?id=603159)
&gt; 
&gt; ...and is present in Firefox 6 beta as of now (target release date August 2011)

...and released.

See also &lt;http://greenbytes.de/tech/tc/xslt/#ft-exslt-date-time&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>921992</commentid>
    <comment_count>38</comment_count>
    <who name="Gregory Dymarek">gregd72002</who>
    <bug_when>2013-08-28 07:14:22 -0700</bug_when>
    <thetext>Is there any update on this?

Please note that the key questions and concerns from comment #5 and #6 were addressed in comment #33.

This is one of the items that IE is seems to be superior to Chrome: in IE 6+ one can use scripts to implement most of the EXSLT functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1881032</commentid>
    <comment_count>39</comment_count>
    <who name="Jen Simmons">jensimmons</who>
    <bug_when>2022-07-06 11:53:31 -0700</bug_when>
    <thetext>Is this something that&apos;s still relevant in 2022?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1881225</commentid>
    <comment_count>40</comment_count>
    <who name="Julian Reschke">julian.reschke</who>
    <bug_when>2022-07-06 21:46:46 -0700</bug_when>
    <thetext>Yes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>3027</attachid>
            <date>2005-07-20 00:53:49 -0700</date>
            <delta_ts>2005-07-20 00:54:47 -0700</delta_ts>
            <desc>Test case for one function, part of EXSLT.</desc>
            <filename>libexslt-support.zip</filename>
            <type>application/octet-stream</type>
            <size>2645</size>
            <attacher name="Romain Brestac">romain.brestac</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAHu88TIAAAAAAAAAAAAAAAARABAAbGliZXhzbHQtc3VwcG9ydC9VWAwAIc/aQjrP
2kL1AfUBUEsDBBQACAAIAHS88TIAAAAAAAAAAAAAAAAaABAAbGliZXhzbHQtc3VwcG9ydC8uRFNf
U3RvcmVVWAwAowLeQivP2kL1AfUB7Zi9TsMwFEa/m2aIhFR5YGBBMg9AJd7AqsrAzMaE0nZACkpF
W6ljnq0vBtf2V6AEhGApP/dEzonl+MbJ4GsHgIzXswvAAaiQLfHiHSqWHgU9iJ1TjA2WaLDCufp3
EMd+qmO+Q4353vjXWOjR4iHVY9tCz1OtzTHDSL3B6qppp3XT1sif8EbL2WMiRT/+NPJIW+7R7MeR
4bfiLHtxtm/iGIZhGEbK2ZHq6LDDMAzjBxLnB08HussWthd0+aqPoz0d6C5beF9Bl3RFO9rTge6y
OWkJNx/CJ+82L+JoT4cvvbJh/BsGWS7m/8uP9/+GYfxhpJxcT8Z43hD0iLnWa7nddQCzOfqLgCL/
LDzBS7unA91l20LAMA7FE1BLBwg77P9IGAEAAAQYAABQSwMECgAAAAAAgk70MgAAAAAAAAAAAAAA
AAkAEABfX01BQ09TWC9VWAwAowLeQqMC3kL1AfUBUEsDBAoAAAAAAIJO9DIAAAAAAAAAAAAAAAAa
ABAAX19NQUNPU1gvbGliZXhzbHQtc3VwcG9ydC9VWAwAowLeQqMC3kL1AfUBUEsDBBQACAAIAHS8
8TIAAAAAAAAAAAAAAAAlABAAX19NQUNPU1gvbGliZXhzbHQtc3VwcG9ydC8uXy5EU19TdG9yZVVY
DACjAt5CK8/aQvUB9QFjYBVjZ2BiwAQgMU4gNgJiBSg/CFmBAxZNIAAAUEsHCA2OI3ccAAAAUgAA
AFBLAwQUAAgACAB7vPEyAAAAAAAAAAAAAAAALgAQAGxpYmV4c2x0LXN1cHBvcnQvbGliZXhzbHQt
c3VwcG9ydC1leHBlY3RlZC50eHRVWAwAowLeQjrP2kL1AfUBhdBBa4MwGAbge3/Fh5duUEa0raYe
3QobdAych+6YmohhwYBJqk723xettbTD7fIlhCcvL58gDSuBaLhDC3QPin8xwAjVPkIzgJgVlJWP
pDgSNYHERADG4/9IyPQT2ufkdfc9JUcraQNt9Pb0caJ4gQca4FUdeD0944TVGtpku09uc4O1Xy/9
AQPoDpamuKiKU513LAQnybmyRGk7cwbkSLggBy64bkBm/RslmoXdgMwUqeayAF6kwlBG7QW2+/dd
8gAvHR6ywJ7KpClTKjMCGmlA5dIICiUjtA+tZEmdqY4uPpfEru0416VhczgwIWQVOldriGK7sfh2
BahGf6ilPzIX/7PU9Wqw3uaCfxXu1Kmwt7GFu77O7AdQSwcIQZN2UBkBAABfAgAAUEsDBBQACAAI
AIy88TIAAAAAAAAAAAAAAAAlABAAbGliZXhzbHQtc3VwcG9ydC9saWJleHNsdC1zdXBwb3J0Lnht
bFVYDACjAt5CWM/aQvUB9QEdi0EOwiAURPeegvw9rd25gHbnCfQC1tGSIBD+aOjtFVeTl/fGLe0V
zQdVQ05epuEoBmnN95CeXq6Xsz3JMh9cz6xyj9ANoOFe4IVoHJtGMVvFw0sMN/yQVt+l5Mqhu34n
lLMb//MFUEsHCC2tv3FnAAAAcwAAAFBLAwQUAAgACADPu/EyAAAAAAAAAAAAAAAAJQAQAGxpYmV4
c2x0LXN1cHBvcnQvbGliZXhzbHQtc3VwcG9ydC54c2xVWAwAowLeQvXN2kL1AQAAdVE7b8MgEN7z
K04sbivZNOoUK3amDpW6NUNXYs4FiYcFR+z8+2Ln0ZfKcMBx30tsd5M1cMQQtXcNW1ePbNeutlM0
daSTwagQ6ef7Cn6tzOBinSENU0RDzfk4jtX4VPnwwdebzYa/v73yfRAu9j7Y/wikILwxYKajhWBu
x1I4WZK2GP+icSJ0s70SDVp0VA4Bez1hbNgMZu3qHMgnGhKBRVJezkrWMOCXtIR2MHkarKBONewh
w/ZKR8jqlKtCEEehjThoo+kEvl96s8DiHPrkOsouQLvOJIkyH+A5J99X8DIPX7gg7zF1HcbYJwMn
nyAqn4yEgEIupKMPEgoKCQs4oDF+rLeHwNulnO0ehUlYZhMxh+6oYVf58uLS4F1xM1fcsxnIvwe9
3r++uf0EUEsHCG8QND4sAQAADQIAAFBLAwQUAAgACADPu/EyAAAAAAAAAAAAAAAAMAAQAF9fTUFD
T1NYL2xpYmV4c2x0LXN1cHBvcnQvLl9saWJleHNsdC1zdXBwb3J0LnhzbFVYDACjAt5C9c3aQvUB
AABjYBVjZ2BiwAQgMU4gNgJiBSg/CCShBQQeKUWJWPSAAQBQSwcIKGv4hyEAAABSAAAAUEsBAhUD
CgAAAAAAe7zxMgAAAAAAAAAAAAAAABEADAAAAAAAAAAAQO1BAAAAAGxpYmV4c2x0LXN1cHBvcnQv
VVgIACHP2kI6z9pCUEsBAhUDFAAIAAgAdLzxMjvs/0gYAQAABBgAABoADAAAAAAAAAAAQKSBPwAA
AGxpYmV4c2x0LXN1cHBvcnQvLkRTX1N0b3JlVVgIAKMC3kIrz9pCUEsBAhUDCgAAAAAAgk70MgAA
AAAAAAAAAAAAAAkADAAAAAAAAAAAQP1BrwEAAF9fTUFDT1NYL1VYCACjAt5CowLeQlBLAQIVAwoA
AAAAAIJO9DIAAAAAAAAAAAAAAAAaAAwAAAAAAAAAAED9QeYBAABfX01BQ09TWC9saWJleHNsdC1z
dXBwb3J0L1VYCACjAt5CowLeQlBLAQIVAxQACAAIAHS88TINjiN3HAAAAFIAAAAlAAwAAAAAAAAA
AECkgS4CAABfX01BQ09TWC9saWJleHNsdC1zdXBwb3J0Ly5fLkRTX1N0b3JlVVgIAKMC3kIrz9pC
UEsBAhUDFAAIAAgAe7zxMkGTdlAZAQAAXwIAAC4ADAAAAAAAAAAAQKSBrQIAAGxpYmV4c2x0LXN1
cHBvcnQvbGliZXhzbHQtc3VwcG9ydC1leHBlY3RlZC50eHRVWAgAowLeQjrP2kJQSwECFQMUAAgA
CACMvPEyLa2/cWcAAABzAAAAJQAMAAAAAAAAAABApIEyBAAAbGliZXhzbHQtc3VwcG9ydC9saWJl
eHNsdC1zdXBwb3J0LnhtbFVYCACjAt5CWM/aQlBLAQIVAxQACAAIAM+78TJvEDQ+LAEAAA0CAAAl
AAwAAAAAAAAAAECkgfwEAABsaWJleHNsdC1zdXBwb3J0L2xpYmV4c2x0LXN1cHBvcnQueHNsVVgI
AKMC3kL1zdpCUEsBAhUDFAAIAAgAz7vxMihr+IchAAAAUgAAADAADAAAAAAAAAAAQKSBiwYAAF9f
TUFDT1NYL2xpYmV4c2x0LXN1cHBvcnQvLl9saWJleHNsdC1zdXBwb3J0LnhzbFVYCACjAt5C9c3a
QlBLBQYAAAAACQAJACUDAAAaBwAAAAA=
</data>
<flag name="review"
          id="256"
          type_id="1"
          status="-"
          setter="romain.brestac"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5630</attachid>
            <date>2006-01-12 14:17:13 -0800</date>
            <delta_ts>2010-06-10 21:08:32 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>4079r1.txt</filename>
            <type>text/plain</type>
            <size>7985</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyMDM3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDYtMDEtWFggIFJvbWFpbiBCcmVzdGFjICA8
cm9tYWluLmJyZXN0YWNAb3JhbmdlLmZyPgorCisgICAgICAgIFJldmlld2VkIE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gVGVzdCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDc5CisgICAgICAgIFN1cHBvcnQgRVhTTFQgd2l0aCBsaWJleHNs
dAorICAgICAgICAKKyAgICAgICAgKiBmYXN0L3hzbC9saWJleHNsdC1zdXBwb3J0LnhzbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC94c2wvbGliZXhzbHQtc3VwcG9ydC54bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QveHNsL2xpYmV4c2x0LXN1cHBvcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwog
MjAwNi0wMS0xMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAbWFjLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QveHNsL2xpYmV4c2x0
LXN1cHBvcnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QveHNs
L2xpYmV4c2x0LXN1cHBvcnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC94c2wvbGliZXhzbHQtc3VwcG9ydC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0cyB0aGUgYXZhaWxhYmlsaXR5IG9mIHRoZSBkYXRlOmRh
dGUgZnVuY3Rpb24gaW5jbHVkZWQgaW4gRVhTTFQuIElmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVs
IHlvdSBzaG91bGQgcmVhZCB0aGUgd29yZCAndHJ1ZScgYmVsbG93OgorCit0cnVlCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L3hzbC9saWJleHNsdC1zdXBwb3J0LnhtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3hzbC9saWJleHNsdC1zdXBwb3J0LnhtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QveHNsL2xpYmV4c2x0LXN1cHBvcnQueG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8
P3htbC1zdHlsZXNoZWV0IHR5cGU9InRleHQveHNsIiBocmVmPSJsaWJleHNsdC1zdXBwb3J0Lnhz
bCI/PgorPHRlc3Q+PC90ZXN0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC94c2wvbGliZXhzbHQt
c3VwcG9ydC54c2wKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC94c2wvbGliZXhzbHQt
c3VwcG9ydC54c2wJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3hzbC9saWJleHNs
dC1zdXBwb3J0LnhzbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIj8+Cis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIgorICAgICAgICAgICAgICAg
IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIgorICAgICAg
ICAgICAgICAgIHhtbG5zOmRhdGU9Imh0dHA6Ly9leHNsdC5vcmcvZGF0ZXMtYW5kLXRpbWVzIgor
ICAgICAgICAgICAgICAgIGV4dGVuc2lvbi1lbGVtZW50LXByZWZpeGVzPSJkYXRlIj4KKworPHhz
bDpvdXRwdXQgbWV0aG9kPSJodG1sIiAvPgorPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iKiI+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+CisKK1RoaXMgdGVzdHMgdGhlIGF2YWlsYWJp
bGl0eSBvZiB0aGUgZGF0ZTpkYXRlIGZ1bmN0aW9uIGluY2x1ZGVkIGluIEVYU0xULiBJZiB0aGlz
IHRlc3QgaXMgc3VjY2Vzc2Z1bCB5b3Ugc2hvdWxkIHJlYWQgdGhlIHdvcmQgJ3RydWUnIGJlbGxv
dzo8YnIvPjxici8+Cis8eHNsOnZhbHVlLW9mIHNlbGVjdD0iZnVuY3Rpb24tYXZhaWxhYmxlKCdk
YXRlOmRhdGUnKSIvPgorPC94c2w6dGVtcGxhdGU+Cis8L3hzbDpzdHlsZXNoZWV0PgpJbmRleDog
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDEyMDM3KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAwNi0wMS0xMyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBm
YXN0L3hzbC9saWJleHNsdC1zdXBwb3J0LnhtbAorCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOiBBZGRlZCBsaWJleHNsdC5keWxpYgorICAgICAgICAqIGtodG1s
L3hzbC94c2x0X3Byb2Nlc3NvcmltcGwuY3BwOgorICAgICAgICAoRE9NOjpYU0xUUHJvY2Vzc29y
SW1wbDo6dHJhbnNmb3JtVG9TdHJpbmcpOiBDYWxsIGV4c2x0UmVnaXN0ZXJBbGwoKSBvbiBmaXJz
dCB1c2UuCisKIDIwMDYtMDEtMTIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQG1hYy5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTIwMzEpCisrKyBXZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTYxOSw2ICsx
NjE5LDggQEAKIAkJQkNFRjM0MzUwODdCNTYzRTAwQkJGODMzIC8qIGh0bWxmYWN0b3J5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VGMzQzMzA4N0I1
NjNFMDBCQkY4MzMgLyogaHRtbGZhY3RvcnkuaCAqLzsgfTsKIAkJRTFFRTc3MzcwOEYxMDg2QzAw
MTY2ODcwIC8qIFdlYkNvcmVUZXh0RGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTc3MzUwOEYxMDg2QzAwMTY2ODcwIC8qIFdlYkNvcmVU
ZXh0RGVjb2Rlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUUxRUU3NzM4MDhGMTA4NkMwMDE2Njg3MCAvKiBXZWJDb3JlVGV4dERlY29kZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNzczNjA4
RjEwODZDMDAxNjY4NzAgLyogV2ViQ29yZVRleHREZWNvZGVyLm1tICovOyB9OworCQlFMUYyNTZF
RDA5NzcwNzcyMDA0OUZFRkYgLyogbGliZXhzbHQuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUYyNTZFQzA5NzcwNzcyMDA0OUZFRkYgLyog
bGliZXhzbHQuZHlsaWIgKi87IH07CisJCUUxRjI1NkVFMDk3NzA3NzIwMDQ5RkVGRiAvKiBsaWJl
eHNsdC5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRjI1NkVDMDk3NzA3NzIwMDQ5RkVGRiAvKiBsaWJleHNsdC5keWxpYiAqLzsgfTsKIAkJ
RUQwNDhBQkMwODMzRjEzMjAwNkUxRTY3IC8qIHRleHRBcmVhUmVzaXplQ29ybmVyLnRpZmYgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVEMDQ4QUJCMDgz
M0YxMzIwMDZFMUU2NyAvKiB0ZXh0QXJlYVJlc2l6ZUNvcm5lci50aWZmICovOyB9OwogCQlGQUUw
NDE4QjA5NzU5Njk0MDAwNTQwQkUgLyogUmVuZGVyU1ZHSW1hZ2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBRTA0MTg5MDk3NTk2OTQwMDA1NDBCRSAv
KiBSZW5kZXJTVkdJbWFnZS5oICovOyB9OwogCQlGQUUwNDE4QzA5NzU5Njk0MDAwNTQwQkUgLyog
UmVuZGVyU1ZHSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkFFMDQxOEEwOTc1OTY5NDAwMDU0MEJFIC8qIFJlbmRlclNWR0ltYWdlLmNwcCAq
LzsgfTsKQEAgLTI1MDIsNiArMjUwNCw3IEBACiAJCUJFRjdFRUExMDVGRjhGMEQwMDk3MTdFRSAv
KiBLV1FFZGl0Q29tbWFuZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtXUUVkaXRDb21tYW5kLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRTFFRTc3MzUwOEYxMDg2
QzAwMTY2ODcwIC8qIFdlYkNvcmVUZXh0RGVjb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUZXh0RGVjb2Rlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRTFFRTc3
MzYwOEYxMDg2QzAwMTY2ODcwIC8qIFdlYkNvcmVUZXh0RGVjb2Rlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZVRleHRE
ZWNvZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKKwkJRTFGMjU2RUMwOTc3MDc3MjAwNDlGRUZGIC8qIGxpYmV4c2x0LmR5bGliICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVk
Lm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJleHNsdC5keWxpYjsgcGF0aCA9IC91c3IvbGliL2xp
YmV4c2x0LmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQlFRDA0OEFCQjA4
MzNGMTMyMDA2RTFFNjcgLyogdGV4dEFyZWFSZXNpemVDb3JuZXIudGlmZiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnRpZmY7IG5hbWUgPSB0
ZXh0QXJlYVJlc2l6ZUNvcm5lci50aWZmOyBwYXRoID0gUmVzb3VyY2VzL3RleHRBcmVhUmVzaXpl
Q29ybmVyLnRpZmY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVEQTRBQzk3MDc2RkI4
OTEwMEREMjNFQyAvKiBlZGl0X2FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBlZGl0X2FjdGlvbnMuaDsgcGF0aCA9IGVkaXRpbmcvZWRp
dF9hY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlGNTExN0JDOTAyRjlGRkVGMDE4NjM1Q0UgLyogS1dRU2lnbmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBLV1FTaWduYWwuaDsgcGF0aCA9IGt3cS9L
V1FTaWduYWwuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtMjg1Miw2ICsyODU1
LDcgQEAKIAkJCQk5M0YxOUIxNzA4MjQ1RTU5MDAxRTlBQkMgLyogbGliaWN1Y29yZS5keWxpYiBp
biBGcmFtZXdvcmtzICovLAogCQkJCTkzRjE5QjE4MDgyNDVFNTkwMDFFOUFCQyAvKiBsaWJ4c2x0
LmR5bGliIGluIEZyYW1ld29ya3MgKi8sCiAJCQkJQTg4QUQ1MkYwOTUyNEI5MjAwMUREMTk2IC8q
IFF1YXJ0ekNvcmUuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8sCisJCQkJRTFGMjU2RUQwOTc3
MDc3MjAwNDlGRUZGIC8qIGxpYmV4c2x0LmR5bGliIGluIEZyYW1ld29ya3MgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODY1
LDYgKzI4NjksNyBAQAogCQkJCUE4OEFEMzc2MDk1MjQ4MEEwMDFERDE5NiAvKiBKYXZhU2NyaXB0
Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLywKIAkJCQlBODhBRDM3NzA5NTI0ODBBMDAx
REQxOTYgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovLAogCQkJCUE4OEFEMzc4
MDk1MjQ4MEEwMDFERDE5NiAvKiBsaWJ4c2x0LmR5bGliIGluIEZyYW1ld29ya3MgKi8sCisJCQkJ
RTFGMjU2RUUwOTc3MDc3MjAwNDlGRUZGIC8qIGxpYmV4c2x0LmR5bGliIGluIEZyYW1ld29ya3Mg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yOTA4LDYgKzI5MTMsNyBAQAogCQkJCUY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEzMSAv
KiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgKi8sCiAJCQkJOTNGMUQzMUEwNTU4Q0M1QzAwODIx
QkMwIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8sCiAJCQkJODQwNjMzMDcwNzMxQTc3MjAwREIxRkQx
IC8qIGxpYnhzbHQuZHlsaWIgKi8sCisJCQkJRTFGMjU2RUMwOTc3MDc3MjAwNDlGRUZGIC8qIGxp
YmV4c2x0LmR5bGliICovLAogCQkJKTsKIAkJCW5hbWUgPSBGcmFtZXdvcmtzOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKSW5kZXg6IFdlYkNvcmUva2h0bWwveHNsL3hzbHRfcHJvY2Vzc29y
aW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9raHRtbC94c2wveHNsdF9wcm9jZXNzb3Jp
bXBsLmNwcAkocmV2aXNpb24gMTIwMzEpCisrKyBXZWJDb3JlL2todG1sL3hzbC94c2x0X3Byb2Nl
c3NvcmltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8
bGlieHNsdC94c2x0dXRpbHMuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L2RvY3VtZW50cy5oPgogI2lu
Y2x1ZGUgPGxpYnhzbHQvaW1wb3J0cy5oPgorI2luY2x1ZGUgPGxpYmV4c2x0L2V4c2x0Lmg+CiAK
ICNpbmNsdWRlIDxreG1sY29yZS9Bc3NlcnRpb25zLmg+CiAKQEAgLTI5OCw2ICsyOTksMTMgQEAg
c3RhdGljIGlubGluZSBRU3RyaW5nIHJlc3VsdE1JTUVUeXBlKHhtbAogCiBib29sIFhTTFRQcm9j
ZXNzb3JJbXBsOjp0cmFuc2Zvcm1Ub1N0cmluZyhOb2RlSW1wbCAqc291cmNlTm9kZSwgUVN0cmlu
ZyAmbWltZVR5cGUsIFFTdHJpbmcgJnJlc3VsdFN0cmluZywgUVN0cmluZyAmcmVzdWx0RW5jb2Rp
bmcpCiB7CitzdGF0aWMgYm9vbCByZWdpc3RlcmVkRVhTTFQgPSBmYWxzZTsKKworICAgIGlmICgh
cmVnaXN0ZXJlZEVYU0xUKSB7CisgICAgICAgIGV4c2x0UmVnaXN0ZXJBbGwoKTsKKyAgICAgICAg
cmVnaXN0ZXJlZEVYU0xUID0gdHJ1ZTsKKyAgICB9CisgICAgCiAgICAgUmVmUHRyPERvY3VtZW50
SW1wbD4gb3duZXJEb2N1bWVudCA9IHNvdXJjZU5vZGUtPmdldERvY3VtZW50KCk7CiAgICAgUmVm
UHRyPFhTTFN0eWxlU2hlZXRJbXBsPiBjYWNoZWRTdHlsZXNoZWV0ID0gbV9zdHlsZXNoZWV0Owog
ICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>15386</attachid>
            <date>2007-07-04 11:44:31 -0700</date>
            <delta_ts>2007-07-04 11:44:31 -0700</delta_ts>
            <desc>Test EXSLT support</desc>
            <filename>exslt-list.zip</filename>
            <type>application/zip</type>
            <size>2230</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">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
ADsHAAAAAA==
</data>

          </attachment>
      

    </bug>

</bugzilla>