ChangeLog 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080
  1. 2017-06-08 Per Bothner <per@bothner.com>
  2. * XMLFilter.java: Update for new source position model.
  3. 2016-10-29 Per Bothner <per@bothner.com>
  4. * XMLPrinter.java: Partly revert previous changes, for compatibility.
  5. (HtmlEmptyTags): Add 'command'.
  6. 2016-10-27 Per Bothner <per@bothner.com>
  7. * XMLPrinter.java: Change empty-element handling in default style to
  8. HTML-compatible "polyglot" style
  9. 2016-08-12 Per Bothner <per@bothner.com>
  10. * XMLPrinter.java: Change to extend PrintConsumer rather than OutPort.
  11. 2014-05-21 Per Bothner <per@bothner.com>
  12. * XMLFilter.java (startAttribute): Fix error check - we do allow
  13. attribute at document level - if we're stringizing.
  14. Also fix typo in error message.
  15. 2014-02-23 Per Bothner <per@bothner.com>
  16. * XMLParser.java (XMLStreamReader): Majorly simplify since
  17. BinaryInPort makes reading encoding declaration easier now.
  18. 2014-01-09 Per Bothner <per@bothner.com>
  19. * XMLParser.java: Update to use BinaryInPort.
  20. Add (non-enabled) hook for requiring an XML declaration.
  21. 2014-01-05 Per Bothner <per@bothner.com>
  22. * Makefile.am: Merge into ../../gnu/Makefile.am and remove.
  23. 2014-01-04 Per Bothner <per@bothner.com>
  24. * XMLParser.java: Fixed a number of little bugs found when
  25. processing a huge file. Also improve error robustness.
  26. Fixed convention for 'start' variable, since before we couldn't
  27. distinguish it from being unset vs set at end of buffer.
  28. * XMLFilter.java (writeJoiner): Make more robust.
  29. 2013-11-28 Matthieu Vachon <matthieu.o.vachon@gmail.com>
  30. * XMLFilter.java, XMLPrinter.java: Don't use @Override for a method
  31. implementing an interface - Java 5 doesn't like it.
  32. 2013-11-03 Per Bothner <per@bothner.com>
  33. * TextUtils.java (stringValue): Optimize to avoid a getValues call.
  34. * TextUtils.java (stringValue): Rewrite to avoid Values
  35. dependency on TreeList internals.
  36. 2013-11-01 Per Bothner <per@bothner.com>
  37. * XMLFilter.java (consume): Rename to writePosition.
  38. * XMLPrinter.java: Likewise.
  39. 2013-02-23 Per Bothner <per@bothner.com>
  40. * TextUtils.java (stingValue): Special handling for gnu.text.Char
  41. and java.lang.Character.
  42. 2013-01-23 Per Bothner <per@bothner.com>
  43. * XMLPrinter.java (startAttribute): Check for null type.
  44. * XMLFilter.java (startAttribute): Require type to be a Symbol.
  45. 2013-01-15 Per Bothner <per@bothner.com>
  46. * XMLPrinter.java (startElement): Check that type isn't null.
  47. 2012-10-21 Per Bothner <per@bothner.com>
  48. * XMLPrinter.java (writeObject): Remove never-true instanceof test.
  49. * XMLFilter.java (closeStartTag): Better error if start tag is not
  50. a symbol.
  51. 2012-10-03 Per Bothner <per@bothner.com>
  52. * XMLFilter.java (writeObject): Fix buggy handling of attribute
  53. implicitly specified by a Keyword, as when called from MakeElement.
  54. 2012-09-20 Per Bothner <per@bothner.com>
  55. * XMLPrinter.java (indentLoc): Add generic parameters.
  56. 2010-11-26 Per Bothner <per@bothner.com>
  57. * XName.java: Update, since Symbol constructor is now protected.
  58. 2010-11-21 Per Bothner <per@bothner.com>
  59. * XMLPrinter.java (writeDoctypeIfDefined, writeDoctype): New methods.
  60. (startElement): Use writeDoctypeIfDefined.
  61. 2010-08-02 Per Bothner <per@bothner.com>
  62. * XMLFilter.java (writeObject): Treat a java.util.List as
  63. multiple value - just iterate and write each element.
  64. 2010-07-05 Per Bothner <per@bothner.com>
  65. * XMLPrinter.java (isHtmlOrXhtml): New flag.
  66. (getHtmlTag): New method.
  67. (endElement): Re-do logic for handle "empty-elements".
  68. 2010-07-01 Per Bothner <per@bothner.com>
  69. * XMLPrinter.java: Add space after xml-declaration, if needed.
  70. 2007-12-30 Per Bothner <per@bothner.com>
  71. * XMLParser.java: Add support for XML 'standalone' declaration.
  72. 2007-01-20 Per Bothner <per@bothner.com>
  73. * XMLPrinter.java (setStyle): If html, pre-establish html namespace.
  74. 2007-01-16 Per Bothner <per@bothner.com>
  75. * XMLPrinter.java (mustHexEscape): New method.
  76. (write(int)): Use it.
  77. (write(String,int,int), write(char[],int,int)): Likewise.
  78. * XMLPrinter.java (write): Always escape U+00x85 and U+2028
  79. not just in attributes.
  80. 2007-01-14 Per Bothner <per@bothner.com>
  81. * XMLPrinter.java (script): New flag.
  82. (error): New method.
  83. (startAttribute): Call error if string and ! inStartTag.
  84. * XMLPrinter.java (write): Also escape U+00x85 and U+2028 in attributes.
  85. * XName.java (isNameStart): Use Character.isUnicodeIdentifierStart.
  86. (checkName): New static method.
  87. (isNmToken, isName(String), isNCName): New methods.
  88. (isName(String,boolean)): Remove method.
  89. * XMLFilter.java (writeProcessingInstruction): Update to use isNCName.
  90. * XMLFilter.java (writeProcessingInstruction): Collapse whitespace
  91. in target.
  92. 2007-01-11 Per Bothner <per@bothner.com>
  93. * XMLPrinter.java (startElement): Check for undeclare-namespaces
  94. in node's namespaceBindings, and ignore if undeclareNamespaces.
  95. 2007-01-04 Per Bothner <per@bothner.com>
  96. * NodeTree.java (baseUriOfPos): Change return type to Path.
  97. Use Path methods rather than URI_utils.
  98. Swap local variable names base and uri to be less confusing.
  99. 2007-01-02 Per Bothner <per@bothner.com>
  100. * XMLPrinter.java (<init>): Update to take Path.
  101. * XMLParser.java: Update to use gnu.text.Path.
  102. 2006-12-29 Per Bothner <per@bothner.com>
  103. * XMLParser.java: Change handling of encoding detection.
  104. Use new LineInputStreamReader class.
  105. Fully parse xml declaration, checking version, and making use
  106. of encoding specifier.
  107. * XMLFilter.java Fix case when SAX2 is not PreProcess-selected.
  108. De-tabify so PreProcess doesn't get confused.
  109. (write): Remove duplicate when PreProcess to not use CharSequence.
  110. 2006-12-16 Per Bothner <per@bothner.com>
  111. * XMLParser.java (XMLStreamReader): New static method.
  112. (parse): Use it.
  113. * XMLParser.java (parse): Call incrLineNumber immediately at each
  114. line, rather than deferring it.
  115. 2006-12-15 Per Bothner <per@bothner.com>
  116. * XMLFilter.java (closeStartTag): If out is a ContentConsumer, call
  117. endStartTag so it happens earlier, with correct line position.
  118. 2006-12-14 Per Bothner <per@bothner.com>
  119. * XMLParser.java.in: Removed. Replaced by ...
  120. * XMLParser.java: New file. Based on XMLParser.java.in, but with
  121. byte variant removed. Handwire using XMLFIlter and LineBufferedReader.
  122. Do line-ending handling here.
  123. Also handle encoding declaration.
  124. (parse): New static method.
  125. * Makefile.am: Update ccordingly.
  126. * XMLFilter.java: Also implement SourceLocator.
  127. (setSourceLocator): New method.
  128. (setLocator): Remove redundant method.
  129. (textFromParser): Simplify - line-ending handling now done in XMLParser.
  130. (SAW_CR): Removed constant - no longer needed.
  131. (linefeedFromParser): New method.
  132. * XMLFilter.java (inElement): New method.
  133. (emitEndElement, processingInstructionFromParser): Use it.
  134. * XMLFilter.java (emitEndAttributes): Do closeStartTag().
  135. * XMLFilter.java: Implement DocumentHandler, ContentHandler if SAX2.
  136. (setDocumentLocator, startElement*2, endElement*2, characters,
  137. ignorableWhitespace, processingInstruction, skippedEntity):
  138. Moved methods from ConsumeSAXHandler.
  139. (startPrefixMapping, endPrefixMapping): Ditto, but with implementation.
  140. 2006-12-06 Per Bothner <per@bothner.com>
  141. * XMLParser.java.in: Update for renamed Consumer methods.
  142. * NamedChildrenFilter.java: Likewise.
  143. * XMLPrinter.java: Likewise.
  144. * NodeTree.java: Likewise.
  145. * XMLFilter.java: Likewise.
  146. * XMLFilter.java (textFromParser): Fix test for nesting.
  147. 2006-11-25 Per Bothner <per@bothner.com>
  148. * TextUtils.java: New file, moved from gnu.kawa.xml.StringValue.
  149. (textValue): Moved from MakeText and renamed from text$C.
  150. (replaceWhitespace): Moved from XDataType.
  151. * Makefile.am: Update accordingly.
  152. * XMLFiliter.java: Update. Now need 3 fewer imports.
  153. 2006-11-24 Per Bothner <per@bothner.com>
  154. * XMLPrinter.java (write(int)): Fix typo in surrogates support.
  155. * XName.java (isNameStart, isNamePart): Change parameter to int
  156. so we can handle non-base-plane characters.
  157. (isName): Handle surrogates.
  158. 2006-11-22 Per Bothner <per@bothner.com>
  159. Partially revert changes from 11-17 and 11-18.
  160. * XMLFilter.java: Rename Consumer methods append->write.
  161. * XMLPrinter.java: Likewise.
  162. Write to bout rather than super - avoids cycle and more efficient.
  163. (write(String,int,int)): New method.
  164. * XMLFilter.java (endGroup): Set previous in all cases.
  165. 2006-11-18 Per Bothner <per@bothner.com>
  166. * XMLPrinter.java: Update writeChars -> append.
  167. * XMLFilter.java: Likewise.
  168. * XMLPrinter.java (append): Change return type if JAVA5.
  169. * XMLFilter.java: Add append methods.
  170. * NodeTree.java (baseUriOfPos): Remove throws clause.
  171. Catch and wrap URISyntaxException.
  172. 2006-11-17 Per Bothner <per@bothner.com>
  173. * XMLPrinter.java (savedHighSurrogate): New field,
  174. (writeChar): Rename to append. Combine surrogates if escaping.
  175. * XMLFIlter.java: Update writeChar -> append.
  176. (emitCharacterReference): Handle non-base-plane character values.
  177. * XMLFilter.java (beginGroup): Fix logic for inherited namespace:
  178. it should only inherit from outermost element, if there is one.
  179. * XMLPrinter.java (writeChar):
  180. * XMLFilter.java (textFromParserf): New method that performs
  181. line-ending normalization.
  182. * XMLParser.java.in (parse): Call XMLFilter's textFromParser.
  183. 2006-11-16 Per Bothner <per@bothner.com>
  184. * XMLFilter.java: Slightly more complicated rules to check for when to
  185. stringize, when to ignore, and when to add space.
  186. (ignoringLevel): New field. Check it when we should ignore all output.
  187. (stringizingElementLevel): Replace by stringizingElementNesting.
  188. Slighty different value.
  189. * XMLFilter.java (writePosition): Write word spaces if stringizing.
  190. * XMLFilter.java: Allocates qname and type fields in MappingInfo
  191. lazily, as needed. As a side effect, this fixes a crash.
  192. 2006-11-15 Per Bothner <per@bothner.com>
  193. * XMLFilter.java: (Re)implement normalization of xml:id attributes.
  194. (endAttribute): Do the normalization here.
  195. (endAttribute): Fix error in call to stringValue.
  196. (attrLocalName, attrPrefix): New fields.
  197. (inAttribute): Remove fields - used attrLocalName!=null instead.
  198. * XMLPrinter.java (write): Attribute character < ' ' must be escaped.
  199. * XMLFilter.java (beginGroupCommon, endGroup): When stringizing
  200. element, may need to add space before/after.
  201. * XMLFilter.java (beginAttributeCommon): Move endAttribute call to
  202. emitBeginAttribute, since we may have nested stringized attributes
  203. when called from XQuery element/attribute constructors.
  204. * XMLFilter.java (beginAttribute): Add (restore) some error checks.
  205. (beginDocument): Make sure "start tag" is null so above
  206. test for in a document is reliable.
  207. (closeStartTag, endGroup, endDocument): Clear popped workStack
  208. elements to possibly improve GC.
  209. 2006-11-14 Per Bothner <per@bothner.com>
  210. * XMLFilter.java (checkValidComment): New method.
  211. (writeComment): Rename to commentFromParser.
  212. (writeComment): Also do checkValidComment.
  213. (emitProcessingInstruction): Rename to processingInstructionFromParser.
  214. (processingInstructionCommon): New method.
  215. (writeProcessingInstruction): Add error checks.
  216. * XMLParser.java.in: Update method calls.
  217. * XMLFilter.java: Merge in "filtering" functionality from NodeTree.
  218. Primarily namespace-copying and error checking.
  219. * NodeTree.java: All event-handling fields and methods (such as
  220. writeObject) moved to XMLFilter.
  221. * XMLParser.java.in: Update for some XMLFilter method renaming.
  222. Make abstract, so we can make error method abstract.
  223. Handle "invalid character reference" by calling error directly.
  224. (open): Remove static method.
  225. * NamespaceBinding.java (merge, mergeHelper): Remove methods.
  226. Their functionality has been moved to XMLFilter.
  227. 2006-11-13 Per Bothner <per@bothner.com>
  228. * XMLPrinter.java (XMLPrinter): Now uses writeWordStart.
  229. (endNumber): New override.
  230. (writeObject): Use new writeWordStart/writeWordEnd to maybe add spaces.
  231. 2006-11-09 Per Bothner <per@bothner.com>
  232. * XMLPrinter.java: Update for Consumer changes,
  233. * NodeTree.java: Likewise.
  234. * XMLFilter,java: Likewise.
  235. 2006-11-08 Per Bothner <per@bothner.com>
  236. * ParsedXMLToConsumer.java: Renamed to ...
  237. * XMLFilter.java: New file.
  238. Belatedly remove 'extends ParsedXMLHandler'.
  239. (error): Move methods that were accidentally placed in MethodInfo.
  240. * Makefile.am: Update accordingly.
  241. 2006-11-05 Per Bothner <per@bothner.com>
  242. * ParsedXMLToConsumer.java (stringValue): Remove field. Store
  243. namespace atribute value in the tlist itself.
  244. 2006-11-01 Per Bothner <per@bothner.com>
  245. * ParsedXMLToConsumer.java: Merged in ParsedXMLHandler.java.in
  246. functionality - i.e. javadoc comments and the error methods.
  247. * ParsedXMLHandler.java.in: Removed, since never used directly.
  248. * Makefile.am: Update accordingly and simplify. Remove never-used
  249. and questionable support for byte parsing and handling.
  250. 2006-10-30 Per Bothner <per@bothner.com>
  251. * NodeTree.java: Add support for a tble of ID mappings,
  252. though until we do validation only xml:id attributes are recognized.
  253. (idNames, idOffsets, idCount): New fields.
  254. (makeIDtableIfNeeded, lookupID, enterID): New methods.
  255. 2006-10-29 Per Bothner <per@bothner.com>
  256. * ParsedXMLToConsumer.java: "Hash-cons" NamespaceBindings, to speed
  257. up parsing of XML file with lots of identical namespace declaration
  258. attributes - such as XQTS's XQTSCatalog.xml.
  259. (currentNamespacePrefix): New field.
  260. (stringValue): Pre-allocate rather than allocating one each time.
  261. (emitBeginAttribute)): Update accordingly.
  262. (endAttribute): Search for or allocate NamespaceBinding.
  263. (closeStartTag): Don't reverse NamespaceBinding list.
  264. (writeChar etc): Check currentNamespacePrefix rather than stringValue -
  265. which now never null.
  266. (MappingInfo.match(StringBuffer)): New method.
  267. * XName.java: Specify that namespace bindings are in inverse
  268. document/parsing order, since that makes parsing easier.
  269. * NamespaceBinding.java (nconc): New static helper method.
  270. * XMLPrinter.java (beginGroup): Print/sort bindings in reverse order.
  271. 2006-10-26 Per Bothner <per@bothner.com>
  272. * NodeTree.java (typeValue): Convert to UntypedAtomic for nodes
  273. types that require it.
  274. * NodeTree.java: Support "in-line" stringizing of nodes in
  275. attribute and similar contexts.
  276. (stringizingLevel, stringizingElementLevel): New field.
  277. (writeXxx): Check stringizingLevel.
  278. * NodeTree.java (endAttribute): If name is 'xml:id' normalize value.
  279. Re-write, mainly to correctly set in-scope namespaces of element.
  280. * NodeTree.java (groupLevel, groupNamespaces, gapStartTag, attrIndexes,
  281. workStack, attrCount, inAttribute, copyNamespacesMode): New fields.
  282. (COPY_NAMESPACES_PRESERVE, COPY_NAMESPACES_INHERIT): New fields.
  283. (writeObject): When converting Keyword as attribute, convert to Symbol.
  284. (closeTag): New method, called a number of places.
  285. (beginGroup*2, setGroupName, endGroup, rememberGroup, beginDocument,
  286. endDocument, setAttributeName, checkAttributeSymbol, beginDocument,
  287. ensureSpaceInWorkStack, rememberAttribute, beginAttribute*2, writeChar,
  288. checkWriteAtomic, write, writeBoolean, writeFloat, writeDouble,
  289. writeInt, writeLong, writeDocumentUri, error, checkValidComment,
  290. writeComment, checkProcessingInstruction): New methods.
  291. (endAttribute): Major change.
  292. * ParsedXMLToConsumer.java (closeStartTag): New new TreeList constants.
  293. If tlist is a NodeTree, calls its closeTag in turn.
  294. 2006-10-25 Per Bothner <per@bothner.com>
  295. * NamespaceBinding.java:(setNext): Also set depth field.
  296. (<init>): Use setNext.
  297. 2006-10-22 Per Bothner <per@bothner.com>
  298. * NodeTree.jave (baseUriOfPos): Need to update pos variable to parent.
  299. * XMLPrinter.java (beginEntity, endEntity): New methods, for XCosumer.
  300. * NodeTree.java (baseUriOfPos): New method, moved from TreeList.
  301. * NodeTree.java (writeObject): Handle UnescapedData.
  302. 2006-10-21 Per Bothner <per@bothner.com>
  303. * XMLPrinter.java (writeChar): Converting space to writeSpaceFill
  304. seems like a bad idea.
  305. * XMLPrinter.java (beginGroup): Only sort namespace declarations
  306. if canonicalize is true.
  307. 2006-10-19 Per Bothner <per@bothner.com>
  308. * XMLPrinter.java (printIndent): Make public.
  309. (<init>): Default is without pretty-printing.
  310. * XMLPrinter.java (indentAttributes): New field - for now always false.
  311. Old behavior was equivalent to true.
  312. (beginGroup, endGroup, closetag): Don't add extra pretty-printing
  313. block for attributes, unless indentAttributes.
  314. * XMLPrinter.java (beginGroup): By default sort namespace declarations.
  315. * XMLPrinter.java (writeChar): Escape control characters in attributes,
  316. since otherwise they get normalized to plain space.
  317. * XMLPrinter.java (writeChar): Uppercase hex character escapes.
  318. 2006-10-17 Per Bothner <per@bothner.com>
  319. * NamespaceBinding.java (merge, mergeHelper): New method.
  320. 2006-10-11 Per Bothner <per@bothner.com>
  321. * NodeTree.java (posLookupNamespaceURI): Simplify. No need to search
  322. up the document hierarchy since each element has NamespaceBindings.
  323. * XName.java (isNameStart, isNamePart): New functions,
  324. moved from XQParser.java.
  325. (isName): New method.
  326. 2006-09-28 Per Bothner <per@bothner.com>
  327. * NodeTree.java (ancestorAttribute): New method.
  328. 2006-09-26 Per Bothner <per@bothner.com>
  329. * XMLPrinter.java (htmlCompat): Replace field by ...
  330. (useEmptyElementTag):: ... new field.
  331. (setStyle, endGroup): Update appropriately.
  332. * XMLPrinter.java (writeChar): Use hex for character references.
  333. * XMLPrinter.java (beginGroup): If canonicalizing sort namespace
  334. declarations by prefix.
  335. * ParsedXMLToConsumer.java (closeStartTag): Use new TreeList methods
  336. setGroupAnd and setAttributeName instead of calling setIntN directly.
  337. * NodeTree.java: (duplicateAttributeMessage): New static method.
  338. 2006-09-19 Per Bothner <per@bothner.com>
  339. * XMLPrinter.java (canonicalizeCDATA) New option field.
  340. (writeCDATA): Call plain write if canonicalizeCDATA.
  341. 2006-09-14 Per Bothner <per@bothner.com>
  342. * NodeTree.java (getAttribute, getAttributeI): New methods.
  343. 2006-09-13 Per Bothner <per@bothner.com>
  344. * XMLPrinter.java: Change to extend OutPort rather than PrintConsumer.
  345. Simpler pretty-printing - just use super's methods rather than
  346. casting out field to OutPort.
  347. (<init>, make): Change constructors and factory method appropriately.
  348. (setPrintXMLdecl): New setter.
  349. (inDocument): New field.
  350. (isWordChar): Remove method - use method inherited from OutPort.
  351. (setIndentMode): New helper method, using code moved from beginGroup.
  352. (beginGroup, beginDocument): Call setIndentMode.
  353. (beginGrouop): Move startLogicalBlock before namespace output.
  354. * XMLPrinter.java (endDocument): Invoke freshLine on OutPort.
  355. 2006-09-01 Per Bothner <per@bothner.com>
  356. * XMLPrinter.java: Improved comments handling.
  357. (inComment): New field.
  358. (COMMENT): New constant.
  359. (writeChar): Put space between consequitive '-' in comment.
  360. (write): Check for '-' in comment.
  361. (beginComment, endCOmment): New methods.
  362. (writeComments): Re-implement using above methods.
  363. 2006-06-28 Per Bothner <per@bothner.com>
  364. * SName.java: Remove file.
  365. * Makefile.am: Update accordingly.
  366. * XName.java: Extends Symbol rather than SName.
  367. * XMLPrinter.java: Update SName -> Symbol.
  368. * ParsedXMLToConsumer.java (closeStartTag): Create Symbol with prefix.
  369. 2006-06-16 Per Bothner <per@bothner.com>
  370. * XMLPrinter.java (endAttribute): Ignore unmatched endAttribute.
  371. (writeObject): Interpret a Key as a beginAttribure.
  372. * NodeTree.java: Likewise.
  373. 2006-06-04 Per Bothner <per@bothner.com>
  374. * NodeTree.java (gapStartLastAtomic): New field.
  375. (writeObject): Add space between consequitive atomic values.
  376. (writeJoiner): New method - reset gapStartLastAtomic.
  377. * XMLPrinter.java (writeChars, write): Ensure prev!=WORD, even if
  378. empty string.
  379. 2006-03-26 Per Bothner <per@bothner.com>
  380. * NamespaceBinding.java (XML_NAMESPACE): New constant.
  381. (predefinedXML): Use new constant.
  382. 2006-03-20 Per Bothner <per@bothner.com>
  383. * XMLPrinter.java: Fix printing of tag by endGroup so it matches
  384. beginGroup, specifically when type is an SName.
  385. (groupNameStack): New field.
  386. (writeQName): New protected helper method.
  387. (beginGroup, endGroup): Use it.
  388. 2006-03-14 Per Bothner <per@bothner.com>
  389. * XMLPrinter.java (escapeNonAscii): New option.
  390. (beginGroup): If type is an SName, get and print prefix from it.
  391. (writeDouble, writeFloat): New methods.
  392. (formatDouble, formatFloat, formatDecimal): New static helper methods.
  393. (print): New method, to print accoring to XQuery specification.
  394. (writeObject): Default to calling print rather than writeChars.
  395. (writeChars): Do nothing, not even closeTag(), if zero chars.
  396. 2006-03-03 Per Bothner <per@bothner.com>
  397. * ParsedXMLToConsumer.java (emit): Ignore whitespace not in an element.
  398. * ParsedXMLToConsumer.java (emitProcessingInstruction): Ignore
  399. XML declaration.
  400. 2006-01-04 Per Bothner <per@bothner.com>
  401. * XMLParser.java.in (<init>): New constructor taking InputStream,
  402. even when 'CHAR is char'.
  403. (<init>): Simplify constructior taking URL.
  404. (open): New static method using URI_utils.getInputStream.
  405. 2005-12-03 Per Bothner <per@bothner.com>
  406. * XMLPrinter.java (startWord): Don't print inter-word space
  407. if column is zero.
  408. 2005-11-14 thomas kirk <tk@research.att.com>
  409. * NodeTree.java (toString): Close CharArrayOutPort.
  410. 2005-11-03 Per Bothner <per@bothner.com>
  411. * XMLPrinter.java (consume): Provide implementation.
  412. (write): Only call closeTag if we actually write something.
  413. 2005-10-06 Per Bothner <per@bothner.com>
  414. * NodeTree.java (writeObject): Atomize plain values with
  415. MakeText.text$C.
  416. * XMLPrinter.java (writeObject): Disable intra-sequence space
  417. for SeqPosition - i.e. nodes - and UnescapedData.
  418. 2005-08-16 Per Bothner <per@bothner.com>
  419. * NodeTree.java (typedValue): New method.
  420. * NodeTree.java (writePosition): Update to return void.
  421. * XMLPrinter.java (consume, writePosition): Likewise.
  422. 2005-07-27 Per Bothner <per@bothner.com>
  423. * XMLPrinter.java (writeChar): Fix bug that suppressed soem spaces.
  424. 2005-07-21 Per Bothner <per@bothner.com>
  425. * XMLPrinter.java (doctypeSystem, doctypePublic, indentLoc): New fields.
  426. (beginGroup): Use new fields to control output.
  427. 2005-04-03 Per Bothner <per@bothner.com>
  428. * NamespaceBinding.java: Fix typo in javadoc.
  429. * SName.java: Fix javadoc problem parsingof first line.
  430. 2005-01-07 Per Bothner <per@bothner.com>
  431. * SName.java: Remove some TABs so PreProcess code looks better.
  432. * XName.java: Likewise.
  433. 2005-01-03 Per Bothner <per@bothner.com>
  434. * XMLPrinter.java: Get the pretty-printer support more-or-less working.
  435. (printIndent): Convert boolean to tri-state int.
  436. 2004-12-22 Per Bothner <per@bothner.com>
  437. * SName.java: New class.
  438. * Makefile.am: Update accordingly.
  439. * XName.java: Modify to extends SName.
  440. * ParsedXMLToConsumer.java (closeTag): Pass prefix to new XName.
  441. * NodeTree.java (posLocalName): Update a getLocalName to getLocalPart.
  442. 2004-11-06 Per Bothner <per@bothner.com>
  443. * XName.java (<init>): New constructor.
  444. (lookupPrefix): Rename to lookupNamespaceURI for consistency with DOM3.
  445. * ParsedXMLToConsumer.java (closeStartTag): Use new XName constructor.
  446. * NodeTree.java (posIsDefaultNamespace, posLookupNamespaceURI,
  447. posLookupPrefix): New methods.
  448. (posLocalName): Fall back to getNextTypeName.
  449. 2004-05-20 Per Bothner <per@bothner.com>
  450. * NodeTree.java (posTarget): New method.
  451. 2004-05-18 Per Bothner <per@bothner.com>
  452. * XMLPrinter.java: Add pretty-printing support.
  453. 2004-05-05 Per Bothner <per@bothner.com>
  454. * ParsedXMLHandler.java.in (emitCDATA): New method.
  455. * ParsedXMLToConsumer.java (emitCDATA): New method.
  456. * XMLParser.java.in (parse): Call emitCDATA if we saw CDATA.
  457. * XMLPrinter.java (writeCDATA): New method.
  458. 2004-04-18 Per Bothner <per@bothner.com>
  459. * ParsedXMLToConsumer.java (emitComment, emitProcessingInstruction):
  460. Pass on if base is XConsumer.
  461. * XMLPrinter.java: Implement XConsumer.
  462. (writeBaseUri, writeComment, writeProcessingInstruction): New methods.
  463. * XMLPrinter.java (needXMLdecl): New field.
  464. (beinDocument): Don't emit XML decl yet, include it comes later
  465. as a processing instruction. Instead set needXMLdecl.
  466. (closeTag): Emit XML declaration if needXMLdecl is set.
  467. * NamespaceBinding.java (resolve): New method.
  468. * XMLPrinter.java (beginGroup): Check we haven't emitted namespace
  469. declaration yet in this beginGroup.
  470. 2004-01-12 Per Bothner <per@bothner.com>
  471. * XMLPrinter.java (beginDocument): New method - print XML declaration.
  472. 2004-01-04 Per Bothner <per@bothner.com>
  473. * NodeTree (getIteratorAtPos): New method.
  474. (posNamespaceURI, posPrefix, posLocalName, posFirstChild,
  475. posHasAttributes): New DOM-like methods.
  476. 2003-12-24 Per Bothner <per@bothner.com>
  477. * XName.java: Implement Externalizable.
  478. (writeExternal, readExternal): New methods.
  479. (setQName, getNamespaceNodes, setNamespaceNodes): New methods.
  480. * NamespaceBinding.java: Implement Externalizable.
  481. (writeExternal, readExternal): New methods.
  482. (getPrefix, getUri, getNext, setPrefix, setUri, setNext): New methods.
  483. (count, maybeAdd, toStringAll): New methods.
  484. 2003-11-09 Per Bothner <per@bothner.com>
  485. * NodeTree.java (toString): New method.
  486. 2003-11-02 Per Bothner <per@bothner.com>
  487. * XMLParser.java.in (<init>): Remove unneeded throws specifications.
  488. 2003-10-30 Per Bothner <per@bothner.com>
  489. * NamespaceBinding.java (toString): New method.
  490. * ParsedXMLToConsumer.java (closeStartTag): Fix thinko.
  491. 2003-10-29 Per Bothner <per@bothner.com>
  492. * ParsedXMLToConsumer.java: Re-implement namespaces to preserve
  493. namespace info using a chain of NamespaceBindings.
  494. * ParsedXMLToConsumer.java (emitEndElement): Don't allocate a
  495. String for the end tag.
  496. * XMLPrinter.java: Print out namespace declarations.
  497. 2003-10-28 Per Bothner <per@bothner.com>
  498. * NamespaceBinding.java: New class.
  499. * XName.java: New class.
  500. * Makefile.am (java_sources): Update accordingly.
  501. 2003-10-28 Per Bothner <per@bothner.com>
  502. * Makefile.am (DONE_EDIT_SUBS): Move from ../../Make-rules.
  503. Simplify to not insert extra line. This matches build.xml and more
  504. importantly avoids a GNU sed feature (missing in Mac OSX Panther sed).
  505. 2003-09-09 Per Bothner <per@bothner.com>
  506. * ParsedXMLToConsumer.java (<init>): Only use output TreeList
  507. directly if it's a NodeList - not if it's a SortedNodes, say.
  508. 2003-08-03 Per Bothner <per@bothner.com>
  509. * NodeTree.java (nextPos): New method. Allows client simplification.
  510. 2003-08-01 Per Bothner <per@bothner.com>
  511. * XMLPrinter.java (setStyle): Default htmlCompat to false.
  512. 2003-07-23 Per Bothner <per@bothner.com>
  513. * NodeTree.java (stableCompare): New method.
  514. (getId): New method.
  515. (id, counter): New fields used by getId.
  516. 2003-07-10 Per Bothner <per@bothner.com>
  517. * NodeTree.java: New class, extends TreeList.
  518. * Makefile.am (java_sources): Add NodeTree.java.
  519. * XMLPrinter.java (writeObject): Don't call closeTag if parameter
  520. is SeqPosition or Consumable and not UnescapedData.
  521. 2003-06-27 Per Bothner <per@bothner.com>
  522. * NamespaceResolver.java: Removed - functionality merged with
  523. ParsedXMLToConsumer.java.
  524. * Makefile.am (java_sources): Update accordingly.
  525. * ParsedXMLToConsumer.java: Merge in NamespaceResolver functionality,
  526. but hopefully more efficient. This is a major re-write.
  527. (class MappingInfo): New helper class.
  528. 2003-05-30 Per Bothner <per@bothner.com>
  529. * XMLPrinter.java (toString): New utility function.
  530. 2003-05-02 Per Bothner <per@bothner.com>
  531. * NamespaceResolver.java (parser, mismatchReported): New field.
  532. (setParser): New method.
  533. (endGroup): Call parser's error if mismatch.
  534. * ParsedXMLToConsumer.java (emitEndElement): Add sanity check.
  535. * XMLParser.java.in (parse): Set this.pos before calling
  536. emitBeginElement and emitEndElement, for better error reporting.
  537. 2003-04-12 Per Bothner <per@bothner.com>
  538. * XMLParser.java.in (parse): Handle Names according to XML 1.1
  539. candidate, allowing many other characters.
  540. 2003-01-28 Per Bothner <per@bothner.com>
  541. * VariableProvider.java: Removed - superceded more-or-less by XQuery.
  542. 2003-01-24 Per Bothner <per@bothner.com>
  543. * NamespaceResolver.java (beginAttribute): Fix off-by-one error
  544. reported 1/22 by Robert Yokota <ryokota@modeln.com>.
  545. 2003-01-09 Per Bothner <per@bothner.com>
  546. * NamedChildrenFilter.java: Update for gnu.lists changes.
  547. * NamespaceResolver.java: Likewise.
  548. * XMLPrinter.java: Likewise.
  549. * XMLPrinter.java (<init>): Add 5 new constructors.
  550. (setStyle): New method.
  551. (make): Use setStyle.
  552. 2003-01-05 Per Bothner <per@bothner.com>
  553. * XPath.java: Removed - superceded more-or-less by XQuery.
  554. * XPathConstants.java: Likewise.
  555. * XPathContext.java: Likewise.
  556. * XPathFunction.java: Likewise.
  557. * XPathParser.java: Likewise.
  558. * XPathVariable.java: Likewise.
  559. * Makefile.am: Update acordingly.
  560. 2002-11-16 Per Bothner <per@bothner.com>
  561. * QName.java.in: Removed - now uses gnu.mapping.Symbol.
  562. * Makefile.am, NamedChildrenFilter.java, NamespaceResolver.java:
  563. Update accordingly.
  564. 2002-07-25 Per Bothner <per@bothner.com>
  565. * NamedChildrenFilter.java (writeObject): Check if val is Consumable.
  566. 2002-07-02 Per Bothner <per@bothner.com>
  567. * XMLPrinter.java: Replace all calls of writeRaw to super.write.
  568. This avoids a JDK1.1 problem with super.out not being accessible.
  569. (writeRaw): Remove no-longer-used methods.
  570. 2002-06-26 Per Bothner <per@bothner.com>
  571. * XMLParser.java.in (parse): Fix setting of 'start' after 'fill'.
  572. 2002-06-24 Per Bothner <per@bothner.com>
  573. * Makefile.am: Renamed generated XMLParser class to XMLParserChar.
  574. * ParsedXMLToConsumer.java (parse): Remove static helper method.
  575. Replaced by new Document.parse methods.
  576. 2002-06-19 Per Bothner <per@bothner.com>
  577. * XMLParser.java.in: Set up for more useful inheritance.
  578. (buffer, pos, limit, in): Make protected.
  579. (parse): Initiaze start safely even if buffer is null.
  580. (error): Take extra serverity parameter.
  581. (parse): Chaneg calls to error apropriately.
  582. (fill): Handle copying saved data here, rather than in parse.
  583. (parse): More specific error message if expecting attribute name.
  584. 2002-05-06 Per Bothner <per@bothner.com>
  585. * NamespaceResolver.java (getIndex): Fix logic error.
  586. * XMLParser.java.in: New constructor.
  587. * QName.java.in (toString): Print a null namespaceURI as '*'.
  588. 2002-04-07 Per Bothner <per@bothner.com>
  589. * XPath.java: Mark as deprecated.
  590. * XPathConstants.java: Likewise.
  591. * XPathContext.java: Likewise.
  592. * XPathParser.java: Likewise.
  593. 2002-03-24 Per Bothner <per@bothner.com>
  594. * QName.java.in (hashCode): Allow localname to be null.
  595. 2002-03-02 Per Bothner <per@bothner.com>
  596. * Makefile.am (SED_REFERENCES_SUBS): Moved to Make-rules.
  597. 2002-02-15 Per Bothner <per@bothner.com>
  598. * Makefile.am (EXTRA_DIST): Leave out redundant $(java_sources).
  599. Add package.html.
  600. 2002-02-14 Per Bothner <per@bothner.com>
  601. * XMLPrinter.java (writeObject): Check for gnu.text.Char.
  602. 2002-02-13 Per Bothner <per@bothner.com>
  603. * ParsedXMLToConsumer.java (emitEntityReference): New method.
  604. * XMLPrinter.java (writeChar): Fix output of character references.
  605. (write): If a char is >= 127, pass it to writeChar.
  606. * Makefile.am (java_sources): Remove QName.java - it is in java_BUILT.
  607. * Makefile.am (DONT_EDIT_SUBS): Moved to ../../Make-rules.
  608. 2002-02-11 Per Bothner <per@bothner.com>
  609. * XMLPrinter.java (writeChar): Use character entity if non-ascii.
  610. 2002-02-05 Per Bothner <per@bothner.com>
  611. * XMLParser.java.in (parse): Handle space after attribute name.
  612. 2002-01-29 Per Bothner <per@bothner.com>
  613. * NamespaceResolver.java (beginGroup): Call closeStartTag.
  614. * XMLPrinter.java (escapeText): Make public.
  615. (<init>): New constructors.
  616. 2002-01-23 Per Bothner <per@bothner.com>
  617. * XMLPrinter.java: Re-write to inherit from PrintConsumer.
  618. 2002-01-21 Per Bothner <per@bothner.com>
  619. * ParsedXMLToConsumer.java (parse): Use NamespaceResolver.
  620. Add calls to out.beginDocument/endDocument.
  621. * XMLPrinter.java (writeObject): Check for UnescapedData.
  622. 2002-01-13 Per Bothner <per@bothner.com>
  623. * XMLPrinter.java (style): New field.
  624. (make): Static method - takes a style parameter.
  625. 2002-01-07 Per Bothner <per@bothner.com>
  626. * NamedChildrenFilter.java: New class, extends FilterConsumer.
  627. * Makefile.am (java_sources): Add NamedChildrenFilter.java.
  628. * NamespaceResolver.java (endAttributes): Fix range bug.
  629. * XMLPrinter.java (beginDocument, endDocument): New methods.
  630. 2002-01-02 Per Bothner <per@bothner.com>
  631. * XMLParser.java.in: No longer read entire file into buffer.
  632. This allows handling very large input files, but required lots of
  633. changes here and there.
  634. * ParsedXMLHandler.java.in (emitComment): Update API comment.
  635. 2001-12-24 Per Bothner <per@bothner.com>
  636. * XMLParser.java.in (parse): Fix comment reading to handle --->.
  637. * XMLPrinter.java (htmlCompat): New field.
  638. (endGroup): If htmlCompat, don't call closeTag.
  639. * XMLPrinter.java (writeObject): Handle null.
  640. Don't startWord if value is String or CharSeq.
  641. * NamespaceResolver.java (endGroup, writeChar, writeBoolean,
  642. writeFloat): Add missing calls to closeStartTag.
  643. 2001-11-24 Per Bothner <per@bothner.com>
  644. * XMLPrinter.java (writeObject): Handle null argument.
  645. 2001-11-16 Jim White <jim@pagesmiths.com>
  646. * QName.java.in: Fix syntax errors in WITHOUT REFERENCES case.
  647. 2001-11-12 Per Bothner <per@bothner.com>
  648. * QName.java.in (make): LocalName can be null (for XQuery '*').
  649. * NamespaceResolver.java (endAttributes); Fix off-by-one bug.
  650. * NamespaceResolver.java (resolve): Return "" if no namespace.
  651. 2001-11-05 Per Bothner <per@bothner.com>
  652. * XMLPrinter.java (out): Changed form PrintWriter to Consumer.
  653. Chaneg most method bodies to match.
  654. * XPath.java (main): Comment out.
  655. 2001-10-17 Per Bothner <per@bothner.com>
  656. * QName.java: Moved to QName.java.in.
  657. * QName.java.in: New file. Add code to using references to reclaim
  658. unused QNames. Make it conditional on --with-java-references.
  659. * Makefile.am: Update accordingly.
  660. * QName.java: Make it implement Externalizable.
  661. (writeExternal, readExternal, readResolve): New methods.
  662. * QName.java (getNamespaceURI, getLocalName): Make final.
  663. 2001-09-24 Per Bothner <per@bothner.com>
  664. * QName.java: New class.
  665. * ElementContext.java: Removed; subsumed by QName.
  666. * ElementType.java: Removed; subsumed by QName.
  667. * Makefile.am (java_sources): Update accordingly.
  668. * NamespaceResolver.java: Use QName instead of ElementContext.
  669. 2001-08-16 Per Bothner <per@bothner.com>
  670. * XMLPrinter.java: Implement positionConsumer.
  671. (writePosition): New methods.
  672. (writeObject): Handle SeqPosition.
  673. 2001-07-17 Per Bothner <per@bothner.com>
  674. * package.html: Belated initial check-in.
  675. * XPathContext.java (writePosition): New method.
  676. * ParsedXMLToConsumer.java: Handle that Consumer now uses endAttribute
  677. rather than endAttributes (which used to signal end of start tag).
  678. * XMLPrinter.java: Likewise.
  679. * NamespaceResolver.java: Likewise.
  680. 2001-05-09 Per Bothner <per@bothner.com>
  681. * XPath.java: Numerous small cleanups.
  682. (matchPath): Fix logic.
  683. (matchSingleStep): Convert more of the code for old Node-based.
  684. 2001-04-24 Per Bothner <per@bothner.com>
  685. * Xpath.java: Use new Convert.parseDouble method.
  686. * XPathParser.java: Likewise.
  687. 2001-04-09 Per Bothner <per@bothner.com>
  688. New package gnu.xml, moved/renamed from ../gnu/kawa/xml.
  689. * ParsedXMLHandler.java.in: Moved from gnu.kawa.xml.
  690. * XMLParser.java.in: Moved from gnu.kawa.xml.
  691. * XMLPrinter.java: Moved from gnu.kawa.xml.
  692. * ParsedXMLToConsumer.java: Moved from gnu.kawa.xml.
  693. * ElementContext.java: New class.
  694. * ElementType.java: New class.
  695. * NamespaceResolver.java: New class, extends gnu.util.FilterConsumer.
  696. * VariableProvider.java: New interface.
  697. * XPath.java: New class.
  698. * XPathConstants.java: New interface.
  699. * XPathContext.java: New class.
  700. * XPathFunction.java: New class.
  701. * XPathParser.java: New class.
  702. * XPathVariable.java: New abstract class.
  703. * Makefile.am: Moved from ../gnu/kawa/xml. Added new classes.
  704. Renamed some macros.
  705. * COPYING: New file.
  706. 2001-03-23 Per Bothner <per@bothner.com>
  707. * Makefile.am: The automake Java support does not handle "built"
  708. Java sources, so roll our own.
  709. 2001-03-08 Per Bothner <per@bothner.com>
  710. * ParsedXMLToConsumer.java: Import gnu.lists instead of gnu.kawa.util.
  711. * XMLPrinter.java: Likewise.
  712. (writeObject): If Consumable, consume it.
  713. (write): Fixes - forgotten what.
  714. 2001-02-16 Per Bothner <per@bothner.com>
  715. New package.
  716. * ParsedXMLHandler.java.in: New to-be-preprocess-Java file.
  717. * gnu/kawa/xml/XMLParser.java.in: Likewise.
  718. * gnu/kawa/xml/ParsedXMLToConsumer.java: New class.
  719. * XMLPrinter.java: New class. Implements Consumer.