2005-10-06  Per Bothner  <per@bothner.com>

	* NodeTree.java (writeObject): Atomize plain values with
	MakeText.text$C.

	* XMLPrinter.java (writeObject): Disable intra-sequence space
	for SeqPosition - i.e. nodes - and UnescapedData.

2005-08-16  Per Bothner  <per@bothner.com>

	* NodeTree.java (typedValue): New method.

	* NodeTree.java (writePosition): Update to return void.
	* XMLPrinter.java (consume, writePosition): Likewise.

2005-07-27  Per Bothner  <per@bothner.com>

	* XMLPrinter.java (writeChar): Fix bug that suppressed soem spaces.

2005-07-21  Per Bothner  <per@bothner.com>

	* XMLPrinter.java (doctypeSystem, doctypePublic, indentLoc): New fields.
	(beginGroup): Use new fields to control output.

2005-04-03  Per Bothner  <per@bothner.com>

	* NamespaceBinding.java: Fix typo in javadoc.
	* SName.java: Fix javadoc problem parsingof  first line.

2005-01-07  Per Bothner  <per@bothner.com>

	* SName.java: Remove some TABs so PreProcess code looks better.
	* XName.java: Likewise.

2005-01-03  Per Bothner  <per@bothner.com>

	* XMLPrinter.java: Get the pretty-printer support more-or-less working.
	(printIndent): Convert boolean to tri-state int.

2004-12-22  Per Bothner  <per@bothner.com>

	* SName.java: New class.
	* Makefile.am: Update accordingly.
	* XName.java: Modify to extends SName.
	* ParsedXMLToConsumer.java (closeTag): Pass prefix to new XName.
	* NodeTree.java (posLocalName): Update a getLocalName to getLocalPart.

2004-11-06  Per Bothner  <per@bothner.com>

	* XName.java (<init>): New constructor.
	(lookupPrefix): Rename to lookupNamespaceURI for consistency with DOM3.
	* ParsedXMLToConsumer.java (closeStartTag): Use new XName constructor.
	* NodeTree.java (posIsDefaultNamespace, posLookupNamespaceURI,
	posLookupPrefix): New methods.
	(posLocalName): Fall back to getNextTypeName.

2004-05-20  Per Bothner  <per@bothner.com>

	* NodeTree.java (posTarget):  New method.

2004-05-18  Per Bothner  <per@bothner.com>

	* XMLPrinter.java:  Add pretty-printing support.

2004-05-05  Per Bothner  <per@bothner.com>

	* ParsedXMLHandler.java.in (emitCDATA):  New method.
 	* ParsedXMLToConsumer.java (emitCDATA):  New method.
	* XMLParser.java.in (parse):  Call emitCDATA if we saw CDATA.
	* XMLPrinter.java (writeCDATA):  New method.

2004-04-18  Per Bothner  <per@bothner.com>

	* ParsedXMLToConsumer.java (emitComment, emitProcessingInstruction):
	Pass on if base is XConsumer.
	* XMLPrinter.java:  Implement XConsumer.
	(writeBaseUri, writeComment, writeProcessingInstruction):  New methods.

	* XMLPrinter.java (needXMLdecl):  New field.
	(beinDocument):  Don't emit XML decl yet, include it comes later
	as a processing instruction.  Instead set needXMLdecl.
	(closeTag):  Emit XML declaration if needXMLdecl is set.

	* NamespaceBinding.java (resolve):  New method.
	* XMLPrinter.java (beginGroup):  Check we haven't emitted namespace
	declaration yet in this beginGroup.

2004-01-12  Per Bothner  <per@bothner.com>

	* XMLPrinter.java (beginDocument):  New method - print XML declaration.

2004-01-04  Per Bothner  <per@bothner.com>

	* NodeTree (getIteratorAtPos):  New method.
	(posNamespaceURI, posPrefix, posLocalName, posFirstChild,
	posHasAttributes):  New DOM-like methods.

2003-12-24  Per Bothner  <per@bothner.com>

	* XName.java:  Implement Externalizable.
	(writeExternal, readExternal):  New methods.
	(setQName, getNamespaceNodes, setNamespaceNodes):  New methods.
	* NamespaceBinding.java:  Implement Externalizable.
	(writeExternal, readExternal):  New methods.
	(getPrefix, getUri, getNext, setPrefix, setUri, setNext):  New methods.
	(count, maybeAdd, toStringAll):  New methods.

2003-11-09  Per Bothner  <per@bothner.com>

	* NodeTree.java (toString):  New method.

2003-11-02  Per Bothner  <per@bothner.com>

	* XMLParser.java.in (<init>):  Remove unneeded throws specifications.

2003-10-30  Per Bothner  <per@bothner.com>

	* NamespaceBinding.java (toString):  New method.

	* ParsedXMLToConsumer.java (closeStartTag):  Fix thinko.

2003-10-29  Per Bothner  <per@bothner.com>

	* ParsedXMLToConsumer.java:  Re-implement namespaces to preserve
	namespace info using a chain of NamespaceBindings.
	* ParsedXMLToConsumer.java (emitEndElement):  Don't allocate a
	String for the end tag.
	* XMLPrinter.java:  Print out namespace declarations.

2003-10-28  Per Bothner  <per@bothner.com>

	* NamespaceBinding.java:  New class.
	* XName.java:  New class.
	* Makefile.am (java_sources): Update accordingly.

2003-10-28  Per Bothner  <per@bothner.com>

	* Makefile.am (DONE_EDIT_SUBS):  Move from ../../Make-rules.
	Simplify to not insert extra line.  This matches build.xml and more
	importantly avoids a GNU sed feature (missing in Mac OSX Panther sed).

2003-09-09  Per Bothner  <per@bothner.com>

	* ParsedXMLToConsumer.java (<init>):  Only use output TreeList
	directly if it's a NodeList - not if it's a SortedNodes, say.

2003-08-03  Per Bothner  <per@bothner.com>

	* NodeTree.java (nextPos):  New method.  Allows client simplification.

2003-08-01  Per Bothner  <per@bothner.com>

	* XMLPrinter.java (setStyle):  Default htmlCompat to false.

2003-07-23  Per Bothner  <per@bothner.com>

	* NodeTree.java (stableCompare): New method.
	(getId):  New method.
	(id, counter):  New fields used by getId.

2003-07-10  Per Bothner  <per@bothner.com>

	* NodeTree.java:  New class, extends TreeList.
	* Makefile.am (java_sources):  Add NodeTree.java.

	* XMLPrinter.java (writeObject):  Don't call closeTag if parameter
	is SeqPosition or Consumable and not UnescapedData.

2003-06-27  Per Bothner  <per@bothner.com>

	* NamespaceResolver.java:  Removed - functionality merged with
	ParsedXMLToConsumer.java.
	* Makefile.am (java_sources):  Update accordingly.
	* ParsedXMLToConsumer.java:  Merge in NamespaceResolver functionality,
	but hopefully more efficient.  This is a major re-write.
	(class MappingInfo):  New helper class.

2003-05-30  Per Bothner  <per@bothner.com>

	* XMLPrinter.java (toString):  New utility function.

2003-05-02  Per Bothner  <per@bothner.com>

	* NamespaceResolver.java (parser, mismatchReported):  New field.
	(setParser):  New method.
	(endGroup):  Call parser's error if mismatch.
	* ParsedXMLToConsumer.java (emitEndElement):  Add sanity check.

	* XMLParser.java.in (parse):  Set this.pos before calling
	emitBeginElement and emitEndElement, for better error reporting.

2003-04-12  Per Bothner  <per@bothner.com>

	* XMLParser.java.in (parse):  Handle Names according to XML 1.1
	candidate, allowing many other characters.

2003-01-28  Per Bothner  <per@bothner.com>

	* VariableProvider.java:  Removed - superceded more-or-less by XQuery.

2003-01-24  Per Bothner  <per@bothner.com>

	* NamespaceResolver.java (beginAttribute):  Fix off-by-one error
	reported 1/22 by Robert Yokota <ryokota@modeln.com>.

2003-01-09  Per Bothner  <per@bothner.com>

	* NamedChildrenFilter.java:  Update for gnu.lists changes.
	* NamespaceResolver.java:  Likewise.
	* XMLPrinter.java:  Likewise.
	
	* XMLPrinter.java (<init>):  Add 5 new constructors.
	(setStyle):  New method.
	(make):  Use setStyle.

2003-01-05  Per Bothner  <per@bothner.com>

	* XPath.java:  Removed - superceded more-or-less by XQuery.
	* XPathConstants.java:  Likewise.
	* XPathContext.java:  Likewise.
	* XPathFunction.java:  Likewise.
	* XPathParser.java:  Likewise.
	* XPathVariable.java:  Likewise.
	* Makefile.am:  Update acordingly.

2002-11-16  Per Bothner  <per@bothner.com>

	* QName.java.in:  Removed - now uses gnu.mapping.Symbol.
	* Makefile.am, NamedChildrenFilter.java, NamespaceResolver.java:
	Update accordingly.

2002-07-25  Per Bothner  <per@bothner.com>

	* NamedChildrenFilter.java (writeObject):  Check if val is Consumable.

2002-07-02  Per Bothner  <per@bothner.com>

	* XMLPrinter.java:  Replace all calls of writeRaw to super.write.
	This avoids a JDK1.1 problem with super.out not being accessible.
	(writeRaw):  Remove no-longer-used methods.

2002-06-26  Per Bothner  <per@bothner.com>

	* XMLParser.java.in (parse):  Fix setting of 'start' after 'fill'.

2002-06-24  Per Bothner  <per@bothner.com>

	* Makefile.am:  Renamed generated XMLParser class to XMLParserChar.

	* ParsedXMLToConsumer.java (parse):  Remove static helper method.
	Replaced by new Document.parse methods.

2002-06-19  Per Bothner  <per@bothner.com>

	* XMLParser.java.in:  Set up for more useful inheritance.
	(buffer, pos, limit, in):  Make protected.
	(parse):  Initiaze start safely even if buffer is null.
	(error):  Take extra serverity parameter.
	(parse):  Chaneg calls to error apropriately.
	(fill):  Handle copying saved data here, rather than in parse.
	(parse):  More specific error message if expecting attribute name.

2002-05-06  Per Bothner  <per@bothner.com>

	* NamespaceResolver.java (getIndex):  Fix logic error.

	* XMLParser.java.in:  New constructor.

	* QName.java.in (toString):  Print a null namespaceURI as '*'.

2002-04-07  Per Bothner  <per@bothner.com>

	* XPath.java:  Mark as deprecated.
	* XPathConstants.java:  Likewise.
	* XPathContext.java:  Likewise.
	* XPathParser.java:  Likewise.

2002-03-24  Per Bothner  <per@bothner.com>

	* QName.java.in (hashCode):  Allow localname to be null.

2002-03-02  Per Bothner  <per@bothner.com>

	* Makefile.am (SED_REFERENCES_SUBS): Moved to Make-rules.

2002-02-15  Per Bothner  <per@bothner.com>

	* Makefile.am (EXTRA_DIST):  Leave out redundant $(java_sources).
	Add package.html.

2002-02-14  Per Bothner  <per@bothner.com>

	* XMLPrinter.java (writeObject):  Check for gnu.text.Char.

2002-02-13  Per Bothner  <per@bothner.com>

	* ParsedXMLToConsumer.java (emitEntityReference):  New method.

	* XMLPrinter.java (writeChar): Fix output of character references.
	(write):  If a char is >= 127, pass it to writeChar.

	* Makefile.am (java_sources):  Remove QName.java - it is in java_BUILT.

	* Makefile.am (DONT_EDIT_SUBS):  Moved to ../../Make-rules.

2002-02-11  Per Bothner  <per@bothner.com>

	* XMLPrinter.java (writeChar):  Use character entity if non-ascii.

2002-02-05  Per Bothner  <per@bothner.com>

	* XMLParser.java.in (parse):  Handle space after attribute name.

2002-01-29  Per Bothner  <per@bothner.com>

	* NamespaceResolver.java (beginGroup):  Call closeStartTag.

	* XMLPrinter.java (escapeText):  Make public.
	(<init>):  New constructors.

2002-01-23  Per Bothner  <per@bothner.com>

	* XMLPrinter.java:  Re-write to inherit from PrintConsumer.

2002-01-21  Per Bothner  <per@bothner.com>

	* ParsedXMLToConsumer.java (parse):  Use NamespaceResolver.
	Add calls to out.beginDocument/endDocument.

	* XMLPrinter.java (writeObject):  Check for UnescapedData.

2002-01-13  Per Bothner  <per@bothner.com>

	* XMLPrinter.java (style):  New field.
	(make): Static method - takes a style parameter.

2002-01-07  Per Bothner  <per@bothner.com>

	* NamedChildrenFilter.java:  New class, extends FilterConsumer.
	* Makefile.am (java_sources):  Add NamedChildrenFilter.java.

	* NamespaceResolver.java (endAttributes):  Fix range bug.

	* XMLPrinter.java (beginDocument, endDocument):  New methods.

2002-01-02  Per Bothner  <per@bothner.com>

	* XMLParser.java.in:  No longer read entire file into buffer.
	This allows handling very large input files, but required lots of
	changes here and there.
	* ParsedXMLHandler.java.in (emitComment):  Update API comment.

2001-12-24  Per Bothner  <per@bothner.com>

	* XMLParser.java.in (parse):  Fix comment reading to handle --->.

	* XMLPrinter.java (htmlCompat):  New field.
	(endGroup):  If htmlCompat, don't call closeTag.

	* XMLPrinter.java (writeObject):  Handle null.
	Don't startWord if value is String or CharSeq.

	* NamespaceResolver.java (endGroup, writeChar, writeBoolean,
	writeFloat):  Add missing calls to closeStartTag.

2001-11-24  Per Bothner  <per@bothner.com>

	* XMLPrinter.java (writeObject):  Handle null argument.

2001-11-16  Jim White  <jim@pagesmiths.com>

	* QName.java.in:  Fix syntax errors in WITHOUT REFERENCES case.

2001-11-12  Per Bothner  <per@bothner.com>

	* QName.java.in (make):  LocalName can be null (for XQuery '*').

	* NamespaceResolver.java (endAttributes);  Fix off-by-one bug.

	* NamespaceResolver.java (resolve):  Return "" if no namespace.

2001-11-05  Per Bothner  <per@bothner.com>

	* XMLPrinter.java (out):  Changed form PrintWriter to Consumer.
	Chaneg most method bodies to match.

	* XPath.java (main):  Comment out.

2001-10-17  Per Bothner  <per@bothner.com>

	* QName.java:  Moved to QName.java.in.
	* QName.java.in:  New file.  Add code to using references to reclaim
	unused QNames.  Make it conditional on --with-java-references.
	* Makefile.am:  Update accordingly.

	* QName.java:  Make it implement Externalizable.
	(writeExternal, readExternal, readResolve):  New methods.

	* QName.java (getNamespaceURI, getLocalName):  Make final.

2001-09-24  Per Bothner  <per@bothner.com>

	* QName.java:  New class.
	* ElementContext.java:  Removed; subsumed by QName.
	* ElementType.java:  Removed; subsumed by QName.
	* Makefile.am (java_sources):  Update accordingly.
	* NamespaceResolver.java:  Use QName instead of ElementContext.

2001-08-16  Per Bothner  <per@bothner.com>

	* XMLPrinter.java:  Implement positionConsumer.
	(writePosition):  New methods.
	(writeObject):  Handle SeqPosition.

2001-07-17  Per Bothner  <per@bothner.com>

	* package.html:  Belated initial check-in.

	* XPathContext.java (writePosition):  New method.

	* ParsedXMLToConsumer.java: Handle that Consumer now uses endAttribute
	rather than endAttributes (which used to signal end of start tag).
	* XMLPrinter.java:  Likewise.
	* NamespaceResolver.java:  Likewise.

2001-05-09  Per Bothner  <per@bothner.com>

	* XPath.java: Numerous small cleanups.
	(matchPath):  Fix logic.
	(matchSingleStep):  Convert more of the code for old Node-based.

2001-04-24  Per Bothner  <per@bothner.com>

	* Xpath.java:  Use new Convert.parseDouble method.
	* XPathParser.java:  Likewise.

2001-04-09  Per Bothner  <per@bothner.com>

	New package gnu.xml, moved/renamed from ../gnu/kawa/xml.
	* ParsedXMLHandler.java.in:  Moved from gnu.kawa.xml.
	* XMLParser.java.in:  Moved from gnu.kawa.xml.
	* XMLPrinter.java:  Moved from gnu.kawa.xml.
	* ParsedXMLToConsumer.java:  Moved from gnu.kawa.xml.
	* ElementContext.java:  New class.
	* ElementType.java:  New class.
	* NamespaceResolver.java:  New class, extends gnu.util.FilterConsumer.
	* VariableProvider.java:  New interface.
	* XPath.java:  New class.
	* XPathConstants.java:  New interface.
	* XPathContext.java:  New class.
	* XPathFunction.java:  New class.
	* XPathParser.java:  New class.
	* XPathVariable.java:  New abstract class.
	* Makefile.am:  Moved from ../gnu/kawa/xml.  Added new classes.
	Renamed some macros.
	* COPYING:  New file.

2001-03-23  Per Bothner  <per@bothner.com>

	* Makefile.am:  The automake Java support does not handle "built"
	Java sources, so roll our own.

2001-03-08  Per Bothner  <per@bothner.com>

	* ParsedXMLToConsumer.java:  Import gnu.lists instead of gnu.kawa.util.
	* XMLPrinter.java:  Likewise.
	(writeObject):  If Consumable, consume it.
	(write):  Fixes - forgotten what.

2001-02-16  Per Bothner  <per@bothner.com>

	New package.
	* ParsedXMLHandler.java.in:  New to-be-preprocess-Java file.
	* gnu/kawa/xml/XMLParser.java.in:  Likewise.
	* gnu/kawa/xml/ParsedXMLToConsumer.java:  New class.
	* XMLPrinter.java:  New class.  Implements Consumer.

