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

	Fix bug reported by Damien Mattei compiling elements with attributes.
	* NodeConstructor.java (options): New field.
	(stringIsText): Remove field - use a bit in options instead.
	* MakeElement.java: Make Externalizable.
	Merge other flags into options.

2017-05-15  Per Bothner  <per@bothner.com>

	* NodeConstructor.java (isSideEffectFree): New method.
	Fixes bug reported by Damien MATTEI <damien.mattei@oca.eu>,

2016-11-28  Per Bothner  <per@bothner.com>

	* XDataType.java (cast): Allow casting from CharSequence,
	not just String.

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

	* KNode.java (toString): Default to "xhtml" style.

2016-08-14  Per Bothner  <per@bothner.com>

	* HttpPrinter.java (writeoBject): Special handling of Blob.
	This fixes doc/+default+.

2016-08-12  Per Bothner  <per@bothner.com>

	* HttpPrinter.java: Extend PrintConsumer rather than FilterConsumer.

	* Nodes.java (NodeVector.consumePosRange): Fix logic bug.

2016-06-25  Per Bothner  <per@bothner.com>

	* HttpPrinter.java (ignoring): Handle case when base is null.

2015-09-17  Per Bothner  <per@bothner.com>

	* NodeSetType.java (writeExternal, readExternal): New overriding
	methods.  These are compatible with the constructor and hence literals.
	* OccurrenceType.java (setBae): New protected method.

2015-08-18  Per Bothner  <per@bothner.com>

	* Nodes.java (NodeVector.withIndexes): New method.

2015-07-31  Per Bothner  <per@bothner.com>

	* Nodes.java: Updates for GapVector being removed by a
	SimpleVector/GapManager combination.
	* SortedNodes.java: Likewise.

2015-04-13  Per Bothner  <per@bothner.com>

	* NodeType.java (isInstance): If sequence item has OBJECT_VALUE,
	check type of actual item.
	(isInstance): New static overload.

2015-02-28  Per Bothner  <per@bothner.com>

	* NodeConstructor.java: Remove unneeded call to code.emitTryEnd.

2014-08-27  Per Bothner  <per@bothner.com>

	* XIntegerType.java (coerceFromObject): First coerce asIntNumOrNull
	before checking that it's in range.

2014-06-30  Per Bothner  <per@bothner.com>

	* NodeType.java (encodeType): New method.
	* XDataType.java (encodeType): New method.

2014-05-21  Per Bothner  <per@bothner.com>

	Change handling of text nodes to fix some corner cases.
	The rules rules for computed constructors and white-space is added
	in XQuery are complex, so just use an FString for literal content.
	* NodeConstructor.java (compileChild):  Use more general valueIfConstant
	rather than just QuoteExp's getValue.
	Don't call compileToNode if child is a MakeText
	Optimize case where argument is a quoted FString - from literal content.
	* MakeText.java (compileToNode): Replace body by throwing an exception.

	* KNode.java (make): Fix bug in ENTITY skipping.  Add optimization.

	* MakeWithBaseUri.java (apply): Remove bogus debug call.

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

	* XDataType.java: Use RealNum.isReal.
	* XIntegerType.java: Likewise.

	* HttpPrinter.java: Make sure Error is uncaught or re-thrown.
	* WriteTo.java: Likewise.
	* XDataType.java: Likewise.

2014-02-06  Per Bothner  <per@bothner.com>

	* Document.java (docMapLocation): Change from ThreadLocation
	to ThreadLocal.

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

	* Makefile.am: Merge into ../../../gnu/Makefile.am and remove.

2013-11-03  Per Bothner  <per@bothner.com>

	* Nodes.java: Update for new Values API.  An optimized
	representation for position references.
	(class NodeVector): Helper class for sequences of node references.
	* SortedNodes.java: Use new Nodes implementation.
	* SortNodes.java (apply1): Simplify by using canonicalize.

	* KNode.java: Add generic parameters on inherited SeqPosition.

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

	* MakeElement.java (startElement): Require qname argument to be Symbol.
	* MakeAttribute.java (startAttribute): Likewise.

2012-10-21  Per Bothner  <per@bothner.com>

	* NodeConstructor.java (stringIsText): New field.
	(setStringIsText): New setter.
	(compileChild): New stringIsText parameter.
	(writeContent, writeContentS): New methods.
	* MakeElement.java (makeElementS): New static field.  Use to control
	whether to call writeContent or writeContentS.
	* MakeAttribute.java (makeAttributeS): Similar new field.
	* DocumentConstructor.java: Update.
	* MakeWithBaseUri.java: Update.

2012-10-20  Per Bothner  <per@bothner.com>

	* MakeText.java (compileToNode): Generalize from String to CharSequence.

2012-03-18  Per Bothner  <per@bothner.com>

	* PrecedingAxis.java (scan): Fix thinkos - and thus 8 testsuite
	failures.

2011-06-23  Per Bothner  <bothner@kuling.bothner.com>

	* ElementType.java (anyElement): Add casts to disambiguate.

2010-11-26  Per Bothner  <per@bothner.com>

	* ElementType.java: Update, since Symbol constructor is now protected.
	* AttributeType.java: Likewise.

2010-10-05  Per Bothner  <per@bothner.com>

	* XDataType.java (convertValue): New method.
	* NodeType.java (convertValue): New method.

2010-09-28  Per Bothner  <per@bothner.com>

	* NodeConstructor.java (compile): Change to be less kludgy - i.e.
	don't existing Variable.  This avoids a StackMapTable failure.

	* XDataType.java (emitTestIf): Add necessary coercion before
	storing into Declaration.

	* AttributeType.java (coerceOrNull): Change return type to KAttr.

2010-09-16  Per Bothner  <per@bothner.com>

	* CompileXmlFunctions.java: Update validateApply methods, which
	no longer take a 'boolean argsInlined' parameter.

2010-08-31  Per Bothner  <per@bothner.com>

	* XIntegerType.java (valueOf): Don't need to check for initial
	'+' since that is now handled by IntNum.valueOf.

2010-08-27  Per Bothner  <per@bothner.com>

	* TreeScanner.java: Update to use Procedure.validateApplyKey,
	and move inlineXxx method to CompileArith.
	* MakeUnescapedData.java: Likewise.
	* CompileXmlFunctions.java: New class
	with new (moved/renamed) validateXxx methods.
	* Makefile.am: Update accordingly.

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

	* HttpPrinter.java (reset): New method.

2010-07-05  Per Bothner  <per@bothner.com>

	* WriteTo.java (writeTo(Object,Path,OutputStream)): New method,
	factoring out commonality of writeTo and writeToIfChanged.
	(writeTo): If extension is "html" default style to "html".

2010-06-30  Per Bothner  <per@bothner.com>

	* HttpPrinter.java (beforeNode): New method override.
	(append): Remove method, replace by:
	(write): Override this instead.

2010-06-29  Per Bothner  <per@bothner.com>

	* HttpPrinter.java (endDocument):  If content-type is so far
	unspecified, defailt to text/plain.
	(beginData): Likewise.

	* HttpPrinter.java (endDocument): Handle the case when sbuf
	has content.

2010-05-19  Per Bothner  <per@bothner.com>

	* XmlNamespace.java: Update Namespace.getInstance -> valueOf.
	(make): Remove to valueOf.

2009-12-02  Per Bothner  <per@bothner.com>

	* KDocument.java (getDocumentElement): Need to skip comments.
	Also make return type more specific.

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

	* XDataType.java (untypedType): New XDataType for xs:untyped.
	(UNTYPED_TYPE_CODE): New constant.
	(isInstance): Handle UNTYPED_TYPE_CODE.

	* MakeElement.java (toString): New method.

2008-08-11  Per Bothner  <per@bothner.com>

	* XmlNamespace.java (make, <init>): Swap parameter order, to match
	writeExternal output (as used for literals).
	This fixes Savannah bug #24037 "xml namespace prefix and namespace
	uri swapped in output from compiled code".

2008-07-26  Per Bothner  <per@bothner.com>

	* XDataType.java (ANY_ATOMIC_TYPE_CODE): New constant.
	(anySimpleType): New type.
	(isInstance): Handle (approximately) anySimpleType.

2008-06-16  Per Bothner  <per@bothner.com>

	* MakeElement.java (tag): Give more specific type.

	* XIntegerType.java (valueOf): Initial signs are allowed even
	for unsigned types, to be compatible XML Schema 1.1 (and maybe
	XML Schema 1.0, but that is somewhat unclear).

2008-04-26  Per Bothner  <per@bothner.com>

	* SortedNodes.java (find): Use unsigned shift to avoid
	potential overflow error in binary search.

2008-01-16  Per Bothner  <per@bothner.com>

	* MakeUnescapedData (inline): Handle new argsInlined parameter.
	* TreeScanner.java (inline): Likewise.

2007-12-30  Per Bothner  <per@bothner.com>

	* Document.java: Split the uri-to-docujment cache into a string
	thread-local mp, and a soft global map, so the former can be cleared
	when done with a module.

2007-12-26  Per Bothner  <per@bothner.com>

	* AttributeAxis.java (scan): Add correct stop condition.
	Fixes Red Hat Bugzilla #370851 "XQuery miss-search".

2007-11-04  Per Bothner  <per@bothner.com>

	* XmlNamespace.java: Add missing support for pre-JAVA5.

2007-09-02  Oliver Flasch <oliver.flasch@cs.uni-dortmund.de>

	* XmlNamespace.java (make): New static methods.

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

	* Document.java (parse(Object)): Adjust index for BEGIN_ENTITY_SIZE.
	(parseCached): Use parse(Object) method.

2007-02-26  Per Bothner  <per@bothner.com>

	* MakeUnescapedData.java (inline): Update for new CanInline api.
	* TreeScanner.java (inline): Likewise.

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

	* XStringType.java: Semi-handle the non-use:regex PreProcess case.

2007-01-20  Per Bothner  <per@bothner.com>

	* KComment.java (valueOf): New factory method.
	* KProcessingInstruction.java (valueOf): New factory method.

	* XmlNamespace.java (getInstance): Intern parameters.
	Add " [xml]" to namespace name to make unique.

	* MakeElement.java (numArgs): Fix for case when tag is non-null.

2007-01-17  Per Bothner  <per@bothner.com>

	* XDataType.java (ANY_ATOMIC_TYPE_CODE): New constant.
	(anyAtomicType): New static.
	(isInstance): Handle ANY_ATOMIC_TYPE_CODE.

	* KNode.java (getNodeSymbol, getNodeNameObject): New methods.
	* NodeName.java: Remove no-longer-used class.
	* Makefile.am: Update accordingly.

2007-01-16  Per Bothner  <per@bothner.com>

	* XDataType.java (stringType): Use java.lang.CharSequence.
	(stringStringType): New type.
	(compare): Consider stringType and stringStringType as equivalent.
	(isInstance): Check for CharSequence.

	* TreeScanner.java (getDesc): New helper method.
	(apply): Map ClassCastException to more friendly WrongType.

2007-01-14  Per Bothner  <per@bothner.com>

	* XStringType.java: New class, extends XDataType.
	* XString.java: New class, implements CharSequence.
	* Makefile.am: Update accordingly.
	* XDataType.java (NORMALIZED_STRING_TYPE_CODE, TOKEN_TYPE_CODE,
	LANGUAGE_TYPE_CODE, NMTOKEN_TYPE_CODE, NAME_TYPE_CODE, NCNAME_TYPE_CODE,
	ID_TYPE_CODE, IDREF_TYPE_CODE, ENTITY_TYPE_CODE): New constants.

	* XIntegerType.java (isUnsignedType, isUnsignedType): New field, method.
	(<init>): Set isUnsignedType if name starts with "unsigned".
	(valueOf): Don't allow initial sign if isUnsignedType.
	Strip off initial '+'.

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

	* KNode.java (baseURI): Change return type to Path.

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

	* WriteTo.java: Update to use Path rather than URI_utils.

2006-12-29  Per Bothner  <per@bothner.com>

	* XDataType.java (anyURIType): Implement using gnu.text.Path.
	(toURI): Remove method - now use URIPath.makeURI instead.
	(isInstance, cast, valueOf): Update accordingly.

	* HttpPrinter.java (begindata): Fix non-CharSequence PreProcess-case.
	(append(String)): Removed, for same reason.
	* Nodes.java (append): Removed, for same reason.

2006-12-18  Per Bothner  <per@bothner.com>

	* WriteTo.java (writeTo, writeToIfChanged): Change filename to
	generalized URI, as handled by URI_utils.

2006-12-14  Per Bothner  <per@bothner.com>

	* XMLParser.jav: Removed class.  Now handled by new gnu.xml,XMLParser.
	* Makefile.am: Update accordingly.
	* Document.java: Update for new XMLParser API.

2006-12-06  Per Bothner  <per@bothner.com>

	* NodeType.java (GROUP_OK): Renamed to ELEMENT_OK.
	* KNode.java: Update for renamed Sequence constant.
	* MakeAttribute.java: Update for renamed Consumer methods.
	* MakeResponseHeader.java: Likewise.
	* Document.java: Likewise.
	* HttpPrinter.java: Likewise.
	* DocumentConstructor.java: Likewise.
	* MakeElement.java: Likewise.
	* ElementType.java: Likewise.
	* Nodes.java: Likewise.
	* OutPOrt.java: Likewise.

	* ElementType.java: GroupPredicate was renamed to ElementPredicate.

2006-11-29  Per Bothner  <per@bothner.com>

	* Document.java (docAvailable): Moved to gnu.xquery.util/NodeUtils.
	(parseCached): Moved to NodeUtils and renamed to docCached.

2006-11-25  Per Bothner  <per@bothner.com>

	* StringValue.java: Class moved to gnu.xml.TextUtils.
	* Makefile.am: Update acordingly.
	* XDataType.java (replaceWhitespace): Move static method to TextUtils.
	* MakeText.java (text$C): Move to TextUtils and rename to textValue.
	* XDataType.java: Update accordingly.
	* Document.java: Likewise.
	* CommentConstructor.java: Likewise.
	* MakeCDATA.java: Likewise.
	* MakeText.java: Likewise.
	* MakeProcInst.java: Likewise.

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

	* NodeSetType.java: New class, extends OccurrenceType.
	* Makefile.am: Update accordingly.

2006-11-23  Per Bothner  <per@bothner.com>

	* TreeScanner.java: Implement CanInline.
	(inline): New method - set type based on that of predicate.
	(getPredicate): New method.
	* NodeConstructor.java (typeNodeTree): Remve static field, in favor of:
	(typeXMLFilter): New static field.
	(compile): Updated looked-for type of ConsumerTarget variable.

2006-11-22  Per Bothner  <per@bothner.com>

	* NodeConstructor.java (pushNodeConsumer, pushNodeContext):
	Change return type to XMLFilter.
	 (compile): Temporarily set more precise Consumer type.
	* MakeText.java (compileToNode): Optimize/inline the case that
	the text is a literal String.

	Partially revert changes from 11-17 and 11-18.
	* XDataType.java: Rename Consumer methods append->write.
	* MakeResponseHeader.java: Likewise.
	* HttpPrinter.java: Likewise.
	* Nodes.java: Likewise.

2006-11-20  Per Bothner  <per@bothner.com>

	* XDataType.java (update): Change parameter to take Consumer.

2006-11-19  Per Bothner  <per@bothner.com>

	* HttpPrinter.java: Fix PreProcess directive.

2006-11-18  Per Bothner  <per@bothner.com>

	* MakeResponseHeader.java: Update writeChars -> append.
	* HttpPrinter.java: Likewise.
	* KText.java: Likewise.
	* MakeText.java: Likewise.
	* Nodes.java: Likewise.

	* KNode.java (getOwnerDocument): Fully-qualify return type,
	to avoid confusion.
	(getBaseURI): Restore - needed for JAXP.
	(baseURI): Remove throws clause.

2006-11-17  Per Bothner  <per@bothner.com>

	* Nodes.java: Update writeChar -> append.

	* Nodes.java: Minor changes to increase (potential) flexibility.
	(handleNonNode): New method.

	* MakeText.java (apply1): Use text$C method for stringization since
	StringValue.stringValue doesn't handle multiple values right.
	(compile): New method to prevent bad inlining.

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

	* NodeType.java (compare): New method.

2006-11-15  Per Bothner  <per@bothner.com>

	* CommentConstructor.java (apply): Insert spaces between values of
	multiple values, not just multiple arguments.

2006-11-14  Per Bothner  <per@bothner.com>

	* MakeProcInst.java (procInst$C): Remove now-redundant testing.

	* XMLParser.java: Make use of enhanced XMLFilter.
	(messages): Remove field.
	(filter): New field.
	(error): Defer error reporting to XMLFilter.
	(getColumnNumber): Subtract one to get just-read column.
	* MakeElement.java: Namespaces copying is now handled by XMLFilter.
	* Nodes.java: Must now filter XConsumer events using XMLFilter.
	* NodeConstructor.java (pushNodeConsumer, popNodeConsumer,
	pushNodeContext, popNodeContext, compileUsingNodeTree): Likewise.
	(makeName, finishNode): Convenience methods for compiled code.

	* SortedNodes.java (curFragment): Remove unused/bogus field.

2006-11-13  Per Bothner  <per@bothner.com>

	* XMLParser.java: Implement gnu.text.SourceLocation.

	* AttributeType.java (getImplementationType): Be more specific.
	* ElementType.java (getImplementationType): Likewise.
	* ProcessingInstructionType.java (getImplementationType): Likewise.

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

	* MakeAttribute.java: Update for Consumer changes.
	* MakeResponseHeader.java: Likewise.
	* HttpPrinter.java: Likewise.
	* MakeElement.java: Likewise.
	* Nodes.java: Likewise.

2006-11-08  Per Bothner  <per@bothner.com>

	* XMLParser.java: Update for ParsedXMLToConsumer -> XMLFilter rename.

2006-10-31  Per Bothner  <per@bothner.com>

	* XDataType.java (booleanType): Use Type.boolean_type.
	(emitCoerceToObject, emitTestIf): Need special handling for xs:boolean
	since it is a primitive type.

	* NodeType.java (documentNodeTest, textNodeTest, commentNodeTest,
	anyNodeTest): New static fields, moved to XQParser.
	* DescendantOrSelfAxis.java (anyNode): New static field.
	(<init>): New private constructor.
	(make): Return anyNode if appropriate.  Use new constructor.

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

	* KNode.java (base): New convenience method.

	* ElementType.java (anyElement): New static final field.

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

	* Notation.java: New class.
	* Makefile.am: Update accordingly.
	* XDataType.java (NotationType): New static field.

2006-10-26  Per Bothner  <per@bothner.com>

	* KNode.java (atomicValue): Don't convert to UntypedAtomic here;
	thatis now handled by NodeTree.typevalue when it is appropriate.

	* MakeElement.java (beginGroup): Copy copyNamespacesMode to output
	Consumer if it is a NodeTree.

	* MakeElement.java (copyNamespacesMode): New field.
	(beginGroup): New copyNamespacesMode parameter.
	(apply, compileToNode): Update appropriately.

	* XmlNamespace.java: Renamed from gnu.kawa.lispexpr.XmlNamespace.
	(XHTML_NAMESPACE): New constant.
	(HTML): Use "" as prefix, to match xhtml recommendation.
	(HTML_BINDINGS): New field.
	(get): Set namespace nodes if this is HTML.
	(readResolve): Fix copy/paste error.
	* Makefile.am: Update accordingly.
	* ElementType.java (namespaceNodes): New field.
	(getNamespaceNodes, setNamespaceNodes): New methods.
	(getConstructor): If namespaceNodes set, copy to MakeElement instance.

2006-10-25  Per Bothner  <per@bothner.com>

	* StringValue.java (asString): New static method.
	* XDataType.java (cast): Use new method to cast to string.

2006-10-24  Per Bothner  <per@bothner.com>

	* Document.java (parseCached): Also call beginEntity/endEntity here.
	* Nodes.java (root): Fix thinko in BEGIN_ENTITY handling.

2006-10-22  Per Bothner  <per@bothner.com>

	* Document.java (parseCached): Also call beginEntity/endEntity.

	* MakeWithBaseUri.java: New class, extends NodeConstructor.
	* Makefile.am: Update accordingly.
	* KNode.java (make): Skip BEGIN_ENTITY instructions.
	(getBaseURI): Remove pointless method.
	* Document.java (parseCached): Inline call to removed BaseUri.baseUri.
	* Nodes.java (writeBaseUri): Removed method.
	(beginEntity, endEntity): New methods, for XConsumer.
	(root): Alternative and more efficient implementation.
	(root(Object)): Remove pointless method.

2006-10-19  Per Bothner  <per@bothner.com>

	* XTimeType.java (isInstance):  Component masks have to match, not
	just be a subset: An xs:gYearMonth is not an instance of an xs:gYear.

	* XIntegerType.java (negativeIntegerType): Fix thinko.

2006-10-11  Per Bothner  <per@bothner.com>

	* XDataType.java (replaceWhitespace): New static method.
	(valueOf): Do replaceWhitespace for anyURI.

	* XDataType.java (value): Check syntax of decimal literals.

	* UntypedAtomic.java (hashCode, equals): New methods.
	Needed for distinct-values.

	* CommentConstructor.java (apply): Handle the case when an argument
	is multiple Values.

	* Base64Binary.java (toString): Fix buglet.

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

	* KProcessingInstruction.java (coerceOrNullMethod): Fix buglet.

	* XTimeType.java (fixedTimeZone): New static field and helper method.
	(now): Use fxiedTimeZone to match XQuery specification.
	(parseDateTime): New static helepr method.
	(valueOf): Use parseDateTime

2006-09-30  Per Bothner  <per@bothner.com>

	* Document.java (parse, parseCached): Use new writeDocumentUri
	rather than incorrect writeBaseUri.

	* AncestorAxis.java (scan):  Fix logic error.
	* AncestorOrSelfAxis.java (svan): Likewise.

2006-09-28  Per Bothner  <per@bothner.com>

	* XTimeType.java (now): Also set TIMEZONE_MASK and hence timezone.

2006-09-14  Per Bothner  <per@bothner.com>

	* KNode.java (getNodeValue): New static methods.
	(getNodeValue): Use new method.
	* KElement.java (getAttribute, getAttributeNS, getAttributeNode,
	getAttributeNS): New implementations.
	(hasAttribute, hasAttributeNS): Optimization.
	* KAttr.java (getObjectValue): New static method.
	(getObjectValue): Use new method.
	* KProcessingInstruction.java (getNodeName): Fix copy-paste error.

	* KNode.java: Fix PreProcessing so we don't use org.w3c.dom
	except when use:org.w3c.dom.Node is selected.
	* KCharacterData.java: Likweise.
	* KElement.java: Likewise.
	* KComment.java: Likewise.
	* KAttr.java: Likewise.
	* KText.java: Likewise.
	* KCDATASection.java: Likewise.
	* KDocument.java: Likewise.
	* Nodes.java: Likewise.
	* KProcessingInstruction.java: Likewise.

	* XDataType.java (toURI): Make public.

	* AttributeAxis.java (scan): Optimize - break when no more attributes.

	* ChildAxis.java (scan): Make use of new filtering fileChildPos method.

2006-09-13  Per Bothner  <per@bothner.com>

	* KProcessingInstruction.java (getNodeType): Fix cut-and-paste error.

	* Document.java (close): New method.
	* KNode.java (toString): Add missing close call on XMLPrinter.

	* XMLParser.java (parseCached): Add missing close call on XMLParser.

2006-08-18  Per Bothner  <per@bothner.com>

	* XTimeType.java (now): New method.

2006-08-17  Per Bothner  <per@bothner.com>

	* ProcessingInstructionType.java (coerceMethod): Fix thinko.

2006-06-28  Per Bothner  <per@bothner.com>

	* NodeName.java: Update SName -> Symbol.
	* MakeElement.java: Likewise.
	* AttributeType.java (make, isInstance, coerceOrNull): Partial rewrite
	due to removla of SName class.
	* ElementType.java (make, isInstance, coerceOrNull): Likewise.
	(MATCH_ANY_LOCALNAM, MATCH_ANY_QNAME): New constant fields.

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

	* XDataType.java (getConstructor): New method.
	* ElementType.java (getConstructor): New method.
	* NodeType.java (getConstructor): New method.

	* OutputAsXML.java: Change implementation so it returns an FString
	value.  Alas, we lose some optimization.

2006-06-16  Per Bothner  <per@bothner.com>

	* MakeElement.java: Add support for interpreting keyword parameters
	as attribute constructors.
	(tag): New field.
	* Nodes.java (inAttribute): New field.
	(beginAttribute): Set it.
	(endAttribute): Ignore if inAttribute not set.

2006-03-27  Per Bothner  <per@bothner.com>

	* BinaryObject.java: New abstract class.
	* Base64Binary.java: New class, extends BinaryObject.
	* HexBinary.java: New class, extends BinaryObject.
	* Makefile.am: Update accordingly.
	* XDataType.java (base64BinaryType, hexBinaryType): New static fields.
	(cast, valueOf): Add support for new types.
	(parseHexBinary): Remove method - now in HexBinary.java.

	* XDataType.java (decimalType): Change implementation type to
	java.lang.Number.

2006-03-26  Per Bothner  <per@bothner.com>

	* XTimeType.java (typeXTimeType): Remove field, replacing it by ...
	(typeDateTime): .. new static field.
	(<init>): Use typeXTimeType by typeDateTime.	

	* XMLParser.java: Move "implements" into conditionally-compiled section.

	* StringValue.java: No longer extend Procedure1.
	(stringValue, string): Removed fields.
	(<init>, apply1): Removed methods.
	(stringValue): Merge in multi-item support from removed apply1.

2006-03-20  Per Bothner  <per@bothner.com>

	* NodeName.java (nodeName): Map String to SName, so the result will
	be an instance of xs:QName.

2006-03-17  Per Bothner  <per@bothner.com>

	* AttributeType.java (make(Symbol)): New factory method.
	* ElementType.java (make(Symbol)): New factory method.

	* XMLParser.java: Also implement org.xml.sax.Locator.
	(getName): Remove method.
	(getPublicId, getSystemId): New methods, impleementing Locator.
	(getLineNumber, getColumnNumber): Change to be consistent with SAX.	

2006-03-15  Per Bothner  <per@bothner.com>

	* ProcessingInstructionType.java: New class extends NodeType.
	* Makefile.am: Update accordingly.
	* MakeProcInst.java: New extends NodeConstructor.  Re-write
	accordingly.  Add some XQuery-required error checking.

2006-03-14  Per Bothner  <per@bothner.com>

	* StringValue.java: New class, some parts moved from gnu.xquery.utils.
	* CommentConstructor.java: No longer need to import StringValue.
	* MakeCDATA.java: Likewise.
	* MakeText.java: Likewise.

	* Document.java (parseCached, availableCached): Fixes needed for
	XPath/XQuery semantics.

	* KNode.java (atomicValue): Moved here from  gnu.xquery.util.NodeUtils.
	Kludge to create UntypedAtomic.

	* UntypedAtomic.java: New class.
	* XDataType.java: New class, extends gnu.bytecode.Type.
	* XTimeType.java: New class, extends XDataType.
	* XIntegerType.java: New class, extends XDataType.
	* XInteger.java: New class, extends gnu.math.IntNum.
	* Makefile.am (java_sources): Update accordingly.

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

	* SortNodes.java (compile): Don't canonicalize result, if target
	is ConsumerTarget or a StackTarget that takes a Values subtype.

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

	* Nodes.java (item): Fix bad recursion.
	Only include if use:org.w3c.dom.Node PreProcess-flag is given.

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

	* AttributeType.java: Fix tabs/spacing to PreProcess works properly,
	* ElementType.java: Likewise.

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

	* WriteTo.java (writeToIfChange): New static method and field.
	(ifChanged): New flag.
	(apply2): Use it.

2006-01-11  Per Bothner  <per@bothner.com>

	* HttpPrinter.java: If we see data (including beginGroup) before a
	beginDocumnet, pretend we saw a beginDocument anyway. This makes
	creating servlet output more flexible and easier, since we don't
	have to wrap everything in beginDocument/endDocument.

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

	* Document.java: No longer extend Procedure1.
	(appl1, apply): Remove methods.
	(makeURL): Remove methods - using URI_utils.resolve.
	(parse): Use generalized XMLParser constructor.
	(parseCached): Handle generauized names.
	* XMLParser.java (<init>): Handle generalized names.

2005-12-31  Per Bothner  <per@bothner.com>

	* KNode.java: Remove TAB in conditional text.
	* KAttr.java: Likewise.
	* KDocument.java: Likewise.

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

	* Document.java (makeURL): Update because BaseUri.hasScheme
	was moved and renamed to InPort.uriSchemeSpecified.

2005-11-14  thomas kirk  <tk@research.att.com>

	* HttpPrinter.java (endDocument): cclose OutPort.
	* KNode.java (toString): Close OutPort.

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

	* KNode.java: Implement Consumable.
	(consume): New method.

	* KNode.java (copy): New method, overrides SeqPosition.

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

	* CommentConstructor.java (numArgs): New method.

	* KText.java (make(String)): New static method.
	* MakeText.java: Extend NodeConstructor.
	(compileToNode): New method.
	(numArgs, apply1): New methods.
	(text$X, text$C): New static methods.
	(apply): Just call text$X.

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

	* Document.java (parseCached, availableCached): New static functions.

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

	* Nodes.java (writePosition) Change return type to void.
	* SortedNodes.java (writePosition): Likewise.

	* NodeConstructor.java (popNodeConsumer): Wrap NodeTree in KNode,
	as in 2004-05-20 change to popNodeContext.

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

	* KAttr.java: Make org.w3c.dom.*-dependencies conditional on
	new 'use:org.w3c.dom.Node' pre-processor condition.
	The default is now 'off'.
	* KCDATASection.java: Likewise.
	* KCharacterData.java: Likewise.
	* KComment.java: Likewise.
	* KDocument.java: Likewise.
	* KElement.java: Likewise.
	* KNode.java: Likewise.
	* KProcessingInstruction.java: Likewise.
	* KText.java: Likewise.
	* Nodes.java: Likewise.

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

	* DefineNamespace.java: Moved to gnu.kawa.lispexpr.
	The reason is so namespaces can work even when --disable-xml.

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

	* Children.java: Moved from gnu.mapping.xquery, because it is also
	used for Scheme.
	* Makefile.am: Update accordingly.

2005-02-12  Per Bothner  <per@bothner.com>

	* DefineNamespace.java: Use different SetExp constructor,
	to avoid setting the 'binding' field, which will become private.

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

	* NodeType.java: Extend ObjectType, not ClassType.

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

	* MakeElement.java: Remove unneeded import.
	* NodeName.java: Likewise.

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

	* Focus.java, IteratorItems.java, ListItems.java:
	Change "select" (preprocessor) syntax.

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

	* AttributeConstructor.java: Removed - we now use MakeAttribute.
	* ElementConstructor.java: Removed - we now use MakeElement.
	* MakeElement.java: Moved from gnu.xquery.util.
	No longer implement CanInline - which re-wrote to ElementConstructor.
	Merg in namespaceNodes functionality from ElementConstructor.
	(getTagName): New static helper method.
	* MakeAttribute.java: Moved from gnu.xquery.util.
	(makeAttributeExp): New static field.
	(beginAttribute): Simplify.
	* Makefile.am: Update accordingly.

	* KAttr.java: Update to new "conditional configuration" syntax.
	* KDocument.java: Likewise.
	* KElement.java: Likewise.
	* KNode.java: Likewise.
	* AttributeType.java: Handle SName, and QName if using JAXP 1.3.
	* ElementType.java: Likewise.

	* NodeName.java: Simplify now that XName is qn SName/QName.

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

	* AttributeConstructor.java: Update Symbol->Location.
	* CommentConstructor.java: Likewise.
	* DocumentConstructor.java: Likewise.
	* ElementConstructor.java: Likewise.
	* MakeCDATA.java: Likwise.
	* MakeText.java: Likwise.

	* AttributeType.java (<init>): Removed constructor, replaced by ...
	(make): New static method, called in code generated by XQParser.
	* ElementType.java: Likewise.

	* DefineNamespace.java (scanForDefinitions): Type bound to the
	namespace isn't always a String - it can also be a ClassType.
	* NamespaceEnv.java: Removed.
	* Makefile.am: Update accordingly.

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

	* ElementConstructor.java (setNamespaceNodes): Use new XName
	constructor.
	* KNnode.java (coerce): New static convenience methods.
	(getNodeValue(StringBuffer)): New helper method.

	* KNode.java: Add some DOM3 (in JAXP 1.3 and Java 5) methods.
	Some are commented out unless --with-java-source=5, since they
	reference types that aren't in DOM 2.
	* KAttr.java: Likewise.
	* KDocument.java: Likewise.
	* KElement.java: Likewise.
	* KText.java: Likewise.

	* NodeCompare.java: Use non-deprecated WrongType.make variants.

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

	* Attributes.java:  Extend MethodProc instead of CpsProcedure.
	* CommentConstructor.java:  Likewise.
	* IteratorItems.java:  Likewise.
	* ListItems.java:  Likewise.
	* MakeCDATA.java:  Likewise.
	* MakeProcInst.java:  Likewise.
	* MakeResponseHeader.java:  Likewise.
	* MakeText.java:  Likewise.
	* NodeConstructor.java:  Likewise.
	* OutputAsXML.java:  Likewise.
	* TreeScanner.java:  Likewise.

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

	* AttributeConstructor.java:  Remove unused import statements.
	* CommentConstructor.java:  Likewise.
	* DefineNamespace.java:  Likewise.
	* KAttr.java:  Likewise.
	* KCDATASection.java:  Likewise.
	* KCharacterData.java:  Likewise.
	* KComment.java:  Likewise.
	* KDocument.java:  Likewise.
	* KElement.java:  Likewise.
	* KProcessingInstruction.java:  Likewise.
	* KText.java:  Likewise.
	* MakeCDATA.java:  Likewise.
	* MakeProcInst.java:  Likewise.
	* MakeResponseHeader.java:  Likewise.
	* MakeText.java:  Likewise.
	* MakeUnescapedData.java:  Likewise.
	* SortedNodes.java:  Likewise.
	* WriteTo.java:  Likewise.

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

	* KAttr.java (getObjectValue):  New method.

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

	* MakeCDATA.java (apply):  Remove accidental debu message.

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

	* CDataConstructor.java:  Renamed to ..
	* MakeCDATA.java:  ... new name.
	* TextConstructor.java:  Renamed to ..
	* MakeText.java:  ... new name.
	* MakeProcInst.java:  New class, extends CpsProcedure.
	* Makefile.am:  Update accordingly.

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

	* CDataConstructor.java:  New class, extends CpsProcedure.
	* KCharacterData.java:  New class, extends KNode.
	* KComment.java:  new class, extends KCharacterData.
	* KText.java:  Change to inherit KCharacterData.
	Move most methods to KCharacterData.
	* KCDATASection.java:  New class, extends KText.
	* KProcessingInstruction.java:  New class, extends KNode.
	* Makefile.am:  Update accordingly.

	* KText.java (getNodeType):  Fix to return TEXT_NODE.

	* KNode.java (make):  Handle CDATA_VALUE, COMMENT_VALUE
	and PROCESSING_INSTRUCTION_VALUE.
	An empty NodeTree is treated as an empty text node.

	* KNode.java (toString):  New method.

	* NodeConstructor.java (popNodeContext):  Wrap NodeTree as KNode.

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

	* CommentConstructor.java:  New class.
	* Makefile.am:  Update accordingly.
	* NodeConstructor.java (pushNodeContext):  Now returns XConsumer.
	* NodeType.java (PROCESSING_INSTRUCTION_OK):  Renamed to PI_OK.
	* Nodes.java (writeCDATA):  New method.

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

	* NodeType.java (COMMENT_OK, PROCESSING_INSTRUCTION_OK): New constants.
	(isInstance):  Handle new macros.
	* Nodes.java (writeComment, writeProcessingInstruction):  New methods.

2004-03-09  Per Bothner  <per@bothner.com>

	* NodeName.java (nodeName):  If name is XName, extract its QName.

	* NodeType.java (DOCUMENT_OK):  New constant.
	(isInstance):  If kind is a DOCUMENT_VALUE, check DOCUMENT_OK.

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

	* DefineNamespace.java (rewrite):  Move handling to scanForDefinitions.

	* DefineNamespace.java (rewriteForm):  Use Translator's exp2Type.

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

	* Document.java (parse):  Returns a KDocument rather than a NodeTree.

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

	* KNode.java:  New class, extends SeqPosition, implements Node.
	* KText.java:  New class, extends KNode, implements Text.
	* KAttr.java:  New class, extends KNode, implements Attr.
	* KDocument.java:  New class, extends KNode, implements Document.
	* KElement.java:  New class, extends KNode, implements Element.
	* Makefile.am (java_sources):  Add new files.

	* ElementType.java (coerceOrNull, coerce):  Return a KElement.
	* NodeType.java (typeSeqPosition):  Replace by typeKNode.
	(nodeType):  Is now a KNode rather than a SeqPosition.
	(getImplementationType):  Return typeKNode instead of typeSeqPosition.
	(isInstance):  Instance must now be a KNode.
	(coerceForce, coerceOrNull):  Now check for KNode.
	* NodeConstructor.java (typeKNode):  New static field.
	(compileUsingNodeTree):  At end convert NodeTree to KNode.
	* Nodes.java:  Now implements org.w3c.dom.NodeList.
	(getLength, item):  New methods
	(get):  Use KNode.make to return a KNode rather than a SeqPosition.
	(getPosNext):  New optimized implementation.
	(root(AbstractSequence,int)):  Take a NodeTree and return a KNode.
	(root(Object)):  Require a KNode.
	* TreeScanner.java (apply):  Argument must be a KNode.

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

	* AttributeConstructor.java (setQName):  New method.
	(make):  Don't bother interning the sname.
	* ElementConstructor.java (qname):  Renamed field to 'type'
	and changed its type to Object.
	(getQName, getNamespaceURI, getLocalName):  Rewrite.
	(setQName, getNamespaceNodes, setNamespaceNodes):  New methods.
	(make, readExternal):  Don't bother interning the sname.

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

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

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

	* AttributeType.java (isInstance, coerceOrNull):  Handle XName.
	* ElementType.java (isInstance, coerceOrNull):  Handle XName.

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

	* Nodes.java (getSeq, getPos):  New convenience functions.
	* IntersectNodes.java:  New class, extends Procedure2.
	* Makefile.am:  Update accordingly.

	* UnionNodes.java:  It implements Inlineable.

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

	* Nodes.java (get):  Fix off-by-one bug.

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

	* NodeConstructor.java:  New abstract class, extends CpsProcedure.
	* Makefile.am:  Update accordingly.
	* AttributeConstructor.java:  Now extends NodeConstructor.
	(apply):  Update.  (compileToNode):  New, replaces compile method.
	* DocumentConstructor.java:  Likewise.
	* ElementConstructor.java:  Likewise.  Move getReturnType up.
	* TextConstructor.java:  Use two NodeConstructor helper methods.

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

	* Nodes.java (root):  New static methods.

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

	* AncestorAxis.java:  New class, extends TreeScanner.
	* AncestorOrSelfAxis.java:  Likewise.
	* FollowingAxis.java:  Likewise.
	* FollowingSiblingAxis.java:  Likewise.
	* PrecedingAxis.java:  Likewise.
	* PrecedingSiblingAxis.java:  Likewise.

	* ChildAxis.java (scan):  Re-write to use nextMatching.
	* DescendantAxis.java (scan):  Likewise.
	* DescendantOrSelfAxis.java (scan):  Likewise.

	* NamedAttributes.java:  Removed - no longer used.
	* NamedChildren.java:  Likewise.
	* NamedDescendants.java:  Likewise.
	* Makefile.am:  Update accordingly.

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

	* CoerceNodes.java:  New class, extends Procedure1.
	* Nodes.java:  New class, extends Values,
	* Makefile.am (java_sources):  Update accordingly.
	* SortNodes.java (apply1, compile):  Canonicalize result.
	* SortedNodes.java:  Now extends Nodes.
	Many methods are now inherited from Nodes.

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

	* SortNodes.java (compile):  Fix infinite compile-time recursion.

	* Focus.java (size, contextSize):  Remove unused fields.

	* ParentAxis.java (scan):  Fix thinko.

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

	* SortedNodes.java (finishFragment):  Move writePosition call to
	startFragment, so consuming won't miss any final values.

	* NodeType.java (ATTRIBUTE_OK):  New constant.
	(isInstance(AbstractSequence,int,int)):  Always false if EOF_VALUE.
	Check ATTRIBUTE_OK if ATTRIBUTE_VALUE.
	* SortNodes.java (numArgs):  Remove redundant method.
	(typeSortedNodes, makeSortedNodesMethod):  Make public.

	* TreeScanner.java:  New class, extends CpsProcedure.
	* AttributeAxis.java:  New class, extends TreeScanner.
	* ChildAxis.java:  New class, extends TreeScanner.
	* DescendantAxis.java:  New class, extends TreeScanner.
	* DescendantOrSelfAxis.java:  New class, extends TreeScanner.
	* ParentAxis.java:  New class, extends TreeScanner.
	* SelfAxis.java:  New class, extends TreeScanner.
	* AttributeType.java:  New class, extends NodeType.
	* Makefile.am (java_sources):  Update accordingly.

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

	* ElementType.java (getImplementationType):  New method.

	* Document.java (parse):  Create a NodeTree, not a TreeList.

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

	* UnionNodes.java:  New class, extends Procedure2.
	* Makefile.am (java_sources):  Update accordingly.

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

	* SortedNodes.java:  New class, extends Values.
	* SortNodes.java:  New class, extends Procedure1.
	* Makefile.am (java_sources):  Update accordingly.

	* ElementConstructor.java (compileUsingNodeTree):  Use new
	ConsumerTarget.compileUsingConsumer helper method.

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

	* NodeCompare.java:  New class, extends Procedure2.
	* Makefile.am (java_sources):  Update accordingly.

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

	* ElementConstructor.java (compileUsingNodeTree):  New static method.
	(typeNodeTree):  New static field.
	(compile):  Use compileUsingNodeTree.

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

	* XMLParser.java (<init>):  Re-do to deal with NamespaceResolver
	being merged into ParsedXMLToConsumer.

	* NodeType.java (isObject(Object)):  New method.
	* ElementType.java (isInstancePos):  If kind is OBJECT_VALUE, try
	isInstance(Object).  Fixes bug 6/17 by reported vizawalou@wanadoo.fr.

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

	* AttributeConstructor.java (apply):  Use CallContext's getNextArg
	method rather than getArgAsObject, which will be deprecated.
	* DocumentConstructor.java (apply):  Likewise.
	* ElementConstructor.java (apply):  Likewise.
	* TextConstructor.java (apply):  Likewise.

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

	* NamedAttributes.java (namedAttributes):  Use posToDataIndex.
	Fixes bug reported 05-18 by Seshukumar_Adiraju@infosys.com.

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

	* ListItems.java:  Handle non-Java2 case.
	* IteratorItems.java:  Handle non-Java2 case.

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

	* Focus.java.in:  Renemed to ..
	* Focus.java:   and changed to use new JAVA1/JAVA2 switching.
	* Makefile.am:  Update accordingly.

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

	* XMLParser.java (<init>):  New constructors automatically
	allocate a NamespaceResolver.
	* Document.java (parse):  Use new XMLParser constructor.
	Pass 'header' to SyntaxException constructor.

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

	* DefineNamespace.java (scanForDefinitions):  Set namespace
	Declaration's type to java.lang.String.

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

	* DefineNamespace.java (scanForDefinitions):  Use Translator's
	push method instead of pushBinding.

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

	* DocumentConstructor.java:  New class, extends CpsProcedure.
	* TextConstructor.java:  New class, extends CpsProcedure.
	* NodeName.java:  New class, extends Procedure1.
	* Makefile.am (java_sources):  Add new classes.

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

	* Document.java (makeUrl):  The 'url' argument can be a URL as well as
	a string, and now also takes a 'base' parameter.
	(parse, apply):  Use new new makeURL.
	(apply):  Implement specification in allowing a sequence of URLs,
	and an optional 'base' second parameter.

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

	* Document.java (parse):  Call writeBaseUri if a TreeList.

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

	* Attributes.java:  Update for gnu.lists changes.
	* ElementType.java:  Likewise.
	* NamedAttributes.java:  Likewise.
	* NamedDescendants.java:  Likewise.
	* NodeType.java:  Likewise.
	* NamedChildren.java:  Likewise.
	* NamedChildren.java (namedChildren):  Exit if no more children.
	* ListItems.java (apply):  Optimize - try using consumePosRange.

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

	* IteratorItems.java:  New class, extends CpsProcedure.
	* ListItems.java:  New class, extends CpsProcedure.
	* Makefile.am (java_sources):  Update accordingly.

2002-11-20  Per Bothner  <bothner@bothner.com>

	* NamespaceEnv.java (get):  Handle "class:" namespaces.

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

	* NamespaceEnv.java (NAMESPACE_PREFIX):  Moved to Interpreter.
	(get):  Update acordingly.
	* DefineNamespace.java (scanForDefinitions):  Likewise.

	* AttributeConstructor.java, ElementConstructor.java, ElementType.java,
	NamedAttributes.java:  Use gnu.mapping.Symbol instead of gnu.xml.QName.

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

	* NodeType.java:  Also implement TypeValue.
	(toString):  New method.
	(emitCoerceOrNullMethod, emitTestIf, emitIsInstance):  New methods.
	* ElementType.java (emitTestIf, emitIsInstance):  Moved up to NodeType.
	(emitCoerceOrNullMethod):  New protected method, overrides NodeType.

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

	* MakeUnescapedData.java (inline):  Take extra ExpWalker parameter.

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

	* HttpPrinter.java (addHeader):  Use Vector's addElement rather
	than add method, which is not in JDK 1.1.

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

	* XMLParser.java:  Share buffer with LineBufferedReader.
	(fill):  New method, to synchronize and read from LineBufferedReader.
	(error, getName, getLineNumber, getColumnNjmber):  New methods.

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

	* XMLParser.java:  New class, extends gnu.xml.XMLParserChar.
	* Makefile.am (java_sources);  Add new file.
	* Document.java (document):  Rename static helper methods to 'parse'.
	Inline ParsedXMLToConsumer.parse, which is now gone.
	Allocate new XMLParser instance.

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

	* NamedDescendants.java:  Support descdendant-or-self.

	* NodeType.java (coerceOrForce):  Better exception message.

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

	* ElementType.java (coerceOrNull):  Test coerceOrNull result for null.

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

	* Focus.java.in:  New class, moved from gnu/xquery/util.
	* Makefile.am (Focus.java):  New rule.

	* NamedChildren.java (namedChildren):  Use TreePosition push/pop.

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

	* NamedAttributes.java:  Take single QName argument.

	* ElementType.java (coerceOrNull):  Use NodeType's coerceOrNull.
	* NamedDescendants.java:  Accept general NodePredicate rather than
	just a GroupRedpcate.  Should rename class!
	* NamedChildren.java:  Likewise.
	(namedChildren):  Use nextNodeIndex.

	* NodeType.java:  Implement NodePredicate and Externalizable.
	(writeExternal, readExternal):  New methods.
	(TEXT_OK, GROUP_OK):  New constants.
	(kinds):  New field.
	(<init>):  Set kinds field.
	(emitCoerceFromObject):  Also push value of kinds.
	(coerceFromObject):  Cal ceorceForce instead of coerce.
	(isInstance):  New methods.
	(coerceOrNull, ceorceForce):  New methods.
	(coerce):  Remove method.

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

	* ElementType.java:  New constructor.
	(getNamespaceURI, getLocalName):  New accessor methods.
	(isInstance):  Check that argument triple is actually a group.
	(coerceOrNull):  Likewise.

	* NamedDescendants.java (apply, namedDescendants):  Take a single
	GroupPredicate argument instead of a namespaceURL+localName pair.
	* NamedChildren.java (namedChildren, apply, getNamedChild):  Likewise.
	(getNamedChild):  Use predicate's isInstance method.
	(numArgs):  Takes 2 instead of 3 arguments.
	(compile):  Update accordingly.  Update for new SeriesTarget semantics.
	Can now safely pushScope/popScope.

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

	* HttpPrinter.java (beginData):  Write out and clear sbuf buffer.
	(writeObject):  If value is Consumable but not UnescapedData (e.g. a
	TreeList containing response-header attributes), consume it.
	(write):  New method.

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

	* HttpPrinter.java (sawContentType):  Make protected, for used
	by ServletPrinter.

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

	* ElementConstructor.java (apply): Check if body object is Consumable.

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

	* NamedChildren.java:  Moved from gnu.xquery.util.
	* NodeType.java  Moved from gnu.xquery.util.
	* ElementType.java  Moved from gnu.xquery.util.
	* NamedDescendants.java:  New class, extends CpsProcedure.
	* Makefile.am:  Update accordingly.

	* NamedChildren.java:  Implement Externalizable.
	(writeExternal, readExternal):  New methods.

	* NamedChildren.java:  Implement GroupPredicate.
	(isInstance):  New methods, needed for GroupPredicate.
	(<init>):  New constructor.

	* package.html:  New file, for javadoc.

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

	* WriteTo.java (writeTo):  Disambiguate XMLPrinter constructor.

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

	* HttpPrinter.java (beginData):  New method.
	(beginGroup):  Call beginData.
	(writeObject):  New method, calls beginData.

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

	* Document.java:  Moved form gnu.xquery.util.
	(document):  Use ParsedXMLToConsumer.parse.  Remove 1 overload.
	* MakeUnescapedData.java: New class, extends Procedure1.
	* Makefile.am:  Update accordingly.

	* Document.java:  Moved from gnu.xquery.util.

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

	* Write.java:  Moved from gnu.kawa.functions.
	* Makefile.am:  Update accordingly.

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

	* HttpPrinter.java:  New class, extends FilterConsumer,
	* MakeResponseHeader.java:  new class, extends CpsProcedure.
	* Makefile.am (java_sources):  Update accordingly.

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

	* Attributes.java:  Fix/update 'package' declaration.

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

	* ElementConstructor.java (compile):  Use compileWithPosition.

	* NamespaceEnv.java (get):  Recognize ':name' as no namespace.

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

	* DefineNamespace.java:  New class, moved and renamed from
	kawa.standard.define_namespace.

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

	* ElementConstructor.java (compile):  Fix off-by-one error.

	* ElementConstructor.java (getmlName,getQName, getnNmespaceURI,
	getLocalName, getPrefix, toString):  New helper methods.
	* AttributeConstructor.java:  New class, extends CpsProcedure.
	* Makefile.am (java_sources):  Add AttributeConstructor.java.

	* NamespaceEnv.java (NAMESPACE_PREFIX):  New constant.
	(get):  Use NAMESPACE_PREFIX.

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

	* OutputAsXML.java:  New class, extends CpsProcedure.

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

	* NamedAttributes.java:  Fixed wrong "package" specifier.  Oops.

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

	* NamespaceEnv.java:  New class extends Environment.
	* Makefile.am:  Update accordingly.

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

	New package.  XML-related Procedures and other classes.
	* Attributes.java:  New class, extends CpsProcedure.
	* ElementConstructor.java:  New class, extends CpsProcedure.
	* NamedAttributes.java:  New class, extends CpsProcedure.
	* Makefile.am: New file.
