ChangeLog for package XiMpLe

changes in version 0.10-3 (2020-09-19)
fixed:
  - *-package.R/.Rd: use macros like \packageDescription{}
  - pasteXMLTag(): fixed warning when tag contains only whitespace chars
added:
  - pasteXML(): new argument "tidy.omit" to define node names where "tidy"
    should not replace characters; by default <![CDATA[ ]]> nodes are omitted

changes in version 0.10-2 (2017-12-12)
fixed:
  - node<-: somehow sapply() in R-devel began to return lists where until now
    vectors were returned, which broke this method
changed:
  - consequently use USE.NAMES=FALSE in sapply to reduce memory overhead
  - replaced SWeave/PDF vignette with a version in RMarkdown/HTML

changes in version 0.10-1 (2017-04-10)
fixed:
  - XMLValue() didn't return values in "!value!" special child nodes
  - adjusted internal function XML.nodes() to work with R 3.3 (embedding S4
    objects in lists)
added:
  - new method validXML() for some basic validity checks
  - new class XiMpLe.validity to define valid child nodes and attributes
  - new function is.XiMpLe.validity()
  - new method XMLgenerators() for objects of class XiMpLe.validity
  - new tests for validity checks
  - XMLTree() (and hence objects of class XiMpLe.doc) now also accept a list
    of XiMpLe nodes with <?... ?> style tags as the "xml" slot
changed:
  - moved documentation of is.XiMpLe.node() and is.XiMpLe.doc() to the
    respective classes
  - pasteXML() gained support for tag names starting with "?" and ends them
    with "?>" instead of "/>"
  - parseXMLTree() now accepts more than one XML declaration at the beginning
    of a file
  - version number took a big jump only because of the CRAN policies!

changes in version 0.03-23 (2015-11-24)
changed:
  - relocated the unit tests to tests/testthat
fixed:
  - XMLScanDeep() was said to examine node names, children and values as well
    as attributes, but in fact it was hard-wired on attributes only. removed
    children from the list and added support for names and values
  - corrected internal function setMinIndent() and pasteXMLTag() for better
    indentation for comments
  - internal function indent() can now handle negative levels

changes in version 0.03-22 (2014-12-02)
fixed:
  - added curly brackets to the function bodies of all setGeneric() calls to
    satisfy roxygen2
changed:
  - allowing empty attributes (attr=""), these were skipped, but only if
    there was more than one attribute

changes in version 0.03-21 (2013-12-21)
added:
  - new attribute "as.list" added to XMLScan(), if TRUE forces the return
    value to be a list of length 1 (default is still to directly return the
    single node).
  - new method XMLScanDeep() recursively scans for attributes and returns all
    which were found
changed:
  - added a proper GPL notice at the beginning of each R file
  - the vignette was moved from inst/doc to inst/vignettes
  - synced names of Author: and Maintainer: in DESCRIPTION with Autors@R:

changes in version 0.03-20 (2013-03-30)
changed:
  - internally replaced paste(..., sep="") calls with paste0(...). for R
    versions older than 2.15 (when paste0() was introduced), a wrapper function
    should kick in, so we don't need to change the dependencies.

changes in version 0.03-19 (2013-02-24)
added:
  - new methods XMLScan() and XMLScan()<- to search an XML tree recursively
    for appearances of certain node names

changes in version 0.03-18 (2013-02-11)
changed:
  - renamed getter methods from getXML*() into the more generic XML*()
added:
  - added setter methods XML*()<- to all getter methods
  - added tests for getter/setter methods

changes in version 0.03-17 (2013-02-04)
added:
  - added proper is.XiMpLe.node() and is.XiMpLe.doc() functions
  - added getter functions for all slots in XiMpLe.node and XiMpLe.doc
    objects (e.g., getXMLName() to get the name slot of a XiMpLe.node object)

changes in version 0.03-16 (2012-11-05)
added:
  - added examples to all functions
  - added a vignette
  - additional tests for node()<-
fixed:
  - fixed dropping of last tag/text value if XML was incomplete, e.g., just
    an excerpt of a full tree
  - fixed handling of empty tags completely without space, e.g. "<br/>"
    instead of "<br />"
  - parsing error for DOCTYPE nodes mixed up elements and previously ignored
    the "decl" value
  - node()<- now replaces both text values and pseudo tags with a new value.
    this can still be problematic for child nodes which contain a mix of
    pseudo and actual tags, so a warning will be given until this is resolved
changed:
  - node() now reports text values of nodes which have "value" and a pseudo
    tag at the same time as one character string, like pasteXML does

changes in version 0.03-15 (2012-10-26)
fixed:
  - eliminated a memory problem for large XML trees. calling unlist() with
    use.names=FALSE really makes a difference...
changed:
  - reviewed the garbage collecting and internally moved it out of
    XML.nodes() into XML.single.tags()

changes in version 0.03-14 (2012-05-11)
added:
  - forcing garbage collection gc() in internal function XML.nodes(), which
    iterates through parsed XML trees
changed:
  - better handling of text value indentation via "shine" and "tidy"

changes in version 0.03-13 (2012-04-19)
added:
  - added a LICENSE file
  - debianized the sources
changed:
  - parseXMLTree() now takes connections as "file" parameter
  - commented CDATA tags (like they're used in XHTML) can now be detected and
    pasted
  - pasteXMLTag() adjusts indentation level of value tags and comments
fixed:
  - feeding internet addresses to parseXMLTree() no longer throws an error,
    skipping normalize.path() then now
  - parseXMLTree() now preserves newlines in value tags and comments

changes in version 0.03-12 (2012-03-18)
  - node() now also works with single XiMpLe.node objects (not only full
    trees)
  - added pasteXML methods to paste objects of classes XiMpLe.node and
    XiMpLe.doc in a more general manner. the former functions pasteXMLNode() and
    pasteXMLTree() are replaced by mere wrapper frunctions to pasteXML() and
    should not be used any longer.
  - fixed dropped text value if node also had child nodes in pasteXML()
  - fixed missing quotes in DOCTYPE id (pasteXML())

changes in version 0.03-11 (2012-03-14)
  - added functions XMLNode() and XMLTree() as constructor functions for XML
    nodes and trees.
  - added opton "object" to parseXMLTree(), to be able to parse XML trees not
    only from files, but also character vectors
  - output of internal function XML.single.tags() has no colname any more
  - text values of nodes are no longer followed by an empty newline in
    pasteXMLNode()

changes in version 0.03-10 (2012-03-11)
  - fixed bug in parsing of attributes, their names are now all quoted by
    default o not run into issues if they contain R-sensitive characters (like
    "http-equiv")

changes in version 0.03-9 (2012-03-10)
  - re-formatted the ChangeLog so roxyPackage can translate it into a NEWS.Rd
    file

changes in version 0.03-8 (2011-11-17)
  - rewrote large parts of internal function XML.single.tags() for more
    efficiency, allthough it's still quite lethargic when handling huge XML trees

changes in version 0.03-7 (2011-10-23)
  - added "&" to the special characters for "tidy" (only applies if theres
    space before and after)
  - "tidy" now also indents text in comments and CDATA if it includes the
    newline character

changes in version 0.03-6 (2011-10-09)
  - added "tidy" option to the paste functions, which is TRUE by default
    since "<" and ">" are invalid in attributes and text anyway

changes in version 0.03-5 (2011-10-07)
  - fixed tree parsing bug (in rare cases, comment and CDATA entries caused
    parsing to choke on empty lines)

changes in version 0.03-4 (2011-10-01)
  - added show methods for objects of class XiMpLe.doc and XiMpLe.node

changes in version 0.03-3 (2011-09-27)
  - changed default 'shine' value of pasteXMLNode() and pasteXMLTree() from 2
    to 1
  - pasteXMLNode() and pasteXMLTree() now try to call each other if fed with
    the wrong class object, but a warning is given
  - changed handling of 'value' in pasteXMLNode(), now reflects 'shine'
    setting/indentation

changes in version 0.03-2 (2011-09-17)
  - added docs for classed XiMpLe.doc and XiMpLe.node

changes in version 0.03-1 (2011-09-11)
  - fixed outstanding issue with complex value structures
  - changed "Author@R" to "Authors@R" in DESCRIPTION (for R >= 2.14)

changes in version 0.02-2 (2011-09-01)
  - fixed missing "methods" dependecy
  - adjusted docs a little

changes in version 0.02-1 (2011-08-30)
  - added option "indent.by" to the paste functions, in case one prefers
    space over tab.
  - moved all rk.* functions out of this package and into its own
    (rkwardplugdev)

changes in version 0.01-9 (2011-08-28)
  - tiny improvements to XML formatting
  - added functions rk.XML.tabbook(), rk.XML.dropdown(), rk.XML.plugin()
    rk.XML.pluginmap() and rk.plugin.skeleton() [to be moved again]

changes in version 0.01-8 (2011-08-26)
  - improved handling of comments a lot

changes in version 0.01-7 (2011-08-24)
  - fixed typo bug in XML.single.tags()
  - improved support for comments and CDATA
  - improved XML formatting

changes in version 0.01-6 (2011-08-23)
  - added functions pasteXMLTree() and pasteXMLNode()
  - added validity checks for classes XiMpLe.doc and XiMpLe.node
  - added function rk.XML.about() [which will probably be moved out of the
    package]

changes in version 0.01-5 (2011-08-22)
  - writing new node values with node<-() partly works

changes in version 0.01-4 (2011-08-21)
  - rewrote and renamed getNode() to node()

changes in version 0.01-3 (2011-08-18)
  - checks XML and DTD declaration now
  - added getNode() method

changes in version 0.01-2 (2011-08-15)
  - iterating through an XML tree actually works now

changes in version 0.01-1 (2011-08-14)
  - initial release via reaktanz.de

