PracticalXML Change Log

Release History

VersionDateDescription
1.1.192015-12-27XPath
1.1.182014-01-22Converters, Parsing
1.1.172013-09-07ParseUtil, Converters
1.1.162013-08-28DomUtil, Converters
1.1.152013-06-30Converters
1.1.142013-06-15Converters, Asserts
1.1.132012-08-01DOM, parsing, build
1.1.122012-05-17XPath
1.1.112011-12-20Converters, Parsing, XPath
1.1.102011-09-21Converters, XPath
1.1.92011-05-11Converters, refactoring
1.1.82010-12-04JsonConverter, Json2XmlConverter
1.1.72010-11-18Converters
1.1.62010-08-04XmlUtil
1.1.52010-04-19DomUtil, Xml2BeanConverter
1.1.42010-03-04BeanConverter
1.1.32010-01-15CollectionConverter, DomUtil, XmlUtil, XPathWrapper
1.1.22009-12-31DomUtil, NodeListIterator
1.1.12009-12-30SimpleXMLReader, XMLFilterImplBridge
1.1.02009-11-30Conversion Utilities
1.0.52009-09-15DomAsserts, DomUtil
1.0.42009-09-10NodeListIterator
1.0.32009-07-14XmlUtil
1.0.22009-04-27OutputUtil, XmlBuilder
1.0.12009-04-25XmlUtil
1.0.02009-01-14First production release

Release 1.1.19 - 2015-12-27

TypeChangesBy
addAbstractStringFunction: a base class for writing XPath functions that accept stringskdgregory
addAdd examples for use of XPathWrapperkdgregory
updateFix default conversion functions for non-US localeskdgregory

Release 1.1.18 - 2014-01-22

TypeChangesBy
addBean conversion: add options to convert byte arrays using either base-64 or hex encodingkdgregory
addParseUtil.parse(InputStream): yet another parsing variantkdgregory

Release 1.1.17 - 2013-09-07

TypeChangesBy
addBean conversion: add options to convert enums using their string valuekdgregory
updateBean Conversion: converter-specific attributes are only namespaced if caller defines a namespace for conversion result (ie, the only time it matters is when the caller needs to separate application elements from the rest of the world)kdgregory
updateParseUtil.parseFromClasspath() now defaults to context classloaderkdgregory
updateSupport explicit Xalan serializerkdgregory

Release 1.1.16 - 2013-08-28

TypeChangesBy
addDomUtil.adoptChild(): moves a child from one DOM to another and attaches it to a new parentkdgregory
updateBean conversion: support subclasses of java.util.Date (as long as they have a constructor that takes a long)kdgregory
updateBean conversion: revise format of Calendar conversion; include millisecondskdgregory

Release 1.1.15 - 2013-06-30

TypeChangesBy
updateBean2XmlConverter: add option to call setAccessible(true) on accessor methods; handles case where object graph has a private class with public methodskdgregory
updateBean2XmlConverter/Xml2BeanConverter: add option to capture exceptions rather than throw them; useful when working with data types that the converter can't handlekdgregory

Release 1.1.14 - 2013-06-15

TypeChangesBy
addDomAsserts: add assertNotExists()kdgregory
updateBean2XmlConverter: recognize circular references; throw by default, optionally skipkdgregory

Release 1.1.13 - 2012-08-01

TypeChangesBy
addDomUtil: add removeAllChildren()kdgregory
addParseUtil: add parseFromClasspath()kdgregory
updateAdd dependency on KDGCommons; deprecate StringUtilskdgregory
updateChange Central Repository deploymentkdgregory

Release 1.1.12 - 2012-05-17

TypeChangesBy
addFunctionResolver: add clone(), toString()kdgregory
addXPathWrapperFactory: creates XPathWrapperss with same configkdgregory
updateXPathWrapper.bindDefaultNamespace(): deprecated due to uselessnesskdgregory

Release 1.1.11 - 2011-12-20

TypeChangesBy
updateBeanConverter: ConversionExceptions always contain locationkdgregory
updateBeanConverter: handle nexted collectionskdgregory
updateParseUtil: add parse(File)kdgregory
updateXPathWrapper: add evaluateAsElement()kdgregory
updateXPathWrapper: evaluate(Node, Class) now applies a filter, not a castkdgregory

Release 1.1.10 - 2011-09-21

TypeChangesBy
addBeanConverter: convert additional JDK data types (Calendar, Class, File, Locale, TimeZone)kdgregory
addXPathWrapper now supports a shallow clone(), that can be used to produce thread-local copieskdgregory

Release 1.1.9 - 2011-05-11

TypeChangesBy
addXml2JsonConverter: Add option to convert attributes as well as elements (tracker ID 3279326)kdgregory
updateOutputUtil: extract transformer creation code (which may contain implementation-dependent cruft) into a helper classkdgregory

Release 1.1.8 - 2010-12-04

TypeChangesBy
addAdd conversion methods that append JSON content to an existing DOMkdgregory

Release 1.1.7 - 2010-11-18

TypeChangesBy
updateBugfix (tracker ID 3102316): Introspector was reporting getter/setter methods with wrong number of params (which made converter fail)kdgregory

Release 1.1.6 - 2010-08-04

TypeChangesBy
updateBugfix: parseXsdDatetime() was throwing incorrect exceptionkdgregory

Release 1.1.5 - 2010-04-19

TypeChangesBy
addDomUtil: getAttributes(), getLocalName(Attr)kdgregory
addXml2BeanConverter: support conversion of attributes (outbound only)kdgregory

Release 1.1.4 - 2010-03-04

TypeChangesBy
addsupport enums (both directions)kdgregory

Release 1.1.3 - 2010-01-15

TypeChangesBy
addCollectionConverterkdgregory
addDomUtil: newDocument(QName), hasChildren(), hasElementChildren(), hasTextChildren()kdgregory
addXmlUtil: parseXsdDatetime() wasn't handling "Z" timezonekdgregory
updateXPathWrapper: evaluateAsStringList(), evaluate(Node,Class)kdgregory

Release 1.1.2 - 2009-12-31

TypeChangesBy
addNodeListIterator: now supports filtering of list by superclasskdgregory
updateDomUtil: use NodeListIterator for getChildren()kdgregory
updateNodeListIterator: recognize when NodeList is actually a Node (and traverse using nextSibling links if it is)kdgregory

Release 1.1.1 - 2009-12-30

TypeChangesBy
addSimpleXMLReader: a subclass of XMLFilterImpl that implements parse() via configured or provided SAX parser (base class delegates)kdgregory
addXMLFilterImplBridge: used to link SAXParser output to XMLFilterImpl, enabling filter overrideskdgregory

Release 1.1.0 - 2009-11-30

TypeChangesBy
addnet.sf.practicalxml.converter package, with BeanConverter and JsonConverter as static front-end classeskdgregory
updateOutputUtil: overloads of compact() and indent() that take arbitrary Source and Result paramskdgregory
updateXmlUtil: formatXsdBoolean(), parseXsdBoolean()kdgregory

Release 1.0.5 - 2009-09-15

TypeChangesBy
addDomUtil: filter()kdgregory
updateDomAsserts: XPath assertions now take any node as initial contextkdgregory
updateDomUtil: appendText() now returns the created nodekdgregory
updateDomUtil: getChildren(), getChild(), trimTextRecursive(), and removeEmptyTextRecursive() now take any Node (so you can pass Document as well as Element)kdgregory

Release 1.0.4 - 2009-09-10

TypeChangesBy
addNodeListIterator: wrapper for a NodeList that provides full iterator functionalitykdgregory

Release 1.0.3 - 2009-07-14

TypeChangesBy
addXmlUtil: add formatXsdDecimal()kdgregory

Release 1.0.2 - 2009-04-27

TypeChangesBy
addOutputUtil: added support for XMLReader as input sourcekdgregory
updateXmlBuilder: use SAX for text output; support PI nodeskdgregory

Release 1.0.1 - 2009-04-25

TypeChangesBy
addXmlUtil: add .scape(), unescape()kdgregory

Release 1.0.0 - 2009-01-14

No changes in this release.