<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "./dtd/document.dtd">

<s1 title="Y2K Compliance">
	<s2 title="Apache Xerces Parser Year-2000 Readiness">
		<p>Q: Are the Xerces parsers Year-2000-compliant? </p>
		<p>Yes, Xerces-J and Xerces-C are Year 2000 compliant. 
		They do not currently use any dates at all (at least until the XML 
		Schema date datatypes are fully supported).  However, you may still 
		have Y2K problems if the underlying OS or Java implementation has 
		problems with dates past year 2000 (e.g. OS calls which accept or 
		return year numbers).</p>
		<p>Most (UNIX) systems store dates internally as signed 32-bit 
		integers which contain the number of seconds since 1st January 1970, 
		so the magic boundary to worry about is the year 2038 and not 2000. 
		But modern operating systems shouldn't cause any trouble at all.</p>
		
		<p>The Apache Xerces project is an open-source software product 
		of the Apache Software Foundation. The project and the Foundation 
		cannot and does not offer legal assurances regarding any suitability 
		of the software for your application. There are several commercial 
		support organizations and derivative products available that may be 
		able to certify the software and provide you with any assurances you 
		may require (IBM's Websphere product is one of them).</p> 
		<p>The Apache HTTP server software is distributed with the following 
		disclaimer, found in the software license: 	</p>
<source>THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.</source>
	</s2>
</s1>
