Free Open-Source Software

17 July. 2012

Fixed a bug in calculation arc weight retrieval for Pavel Tonev.

27 June. 2012

Fixed a bug in custom namespace binding for the data store when doing XQueries for Matt DeAngelis.

10 November. 2011

Fixed a bug in the org.xbrlapi.cache.CacheImpl getCacheURI() method, that was identified by Henk Spaan. The comparison ‘uriMap.containsKey(uri.toString())’ has always failed, because the key is a URI rather than a String.

10 November. 2011

Fixed a bug in the org.xbrlapi.cache.CacheImpl getCacheURI() method, that was identified by Henk Spaan. The comparison ‘uriMap.containsKey(uri.toString())’ has always failed, because the key is a URI rather than a String.

7 November. 2011

Changed the XPointer module to use generics. Changed the XMLDOMSerializer to not use the deprecated Apache Xerces serialization library.

4 November. 2011

Changed XLink role attribute values and XML Schema target namespace values to be String data types rather than URI data types to be more accommodating of difficulties that are encountered in conforming properly to the URI specifications.

11 July. 2011

Changed method signatures in the aspect value labelling system to prevent method signature ambiguity in calls from Freemarker where null arguments are provided. The ambiguity was between list arguments and non-list arguments.

8 June. 2011

Changed the loader constructors to require an entity resolver to be specified when creating a loader. This will encourage use of entity resolvers with document caching so that the formation of schema grammar pools is not irritatingly slow because of internet file downloads each time a loader is created.

7 June. 2011

Bought the Maven POM files up to date and ensured that they also run correctly using TestNG.

Modified the SAX parser used by the loader to cache the XBRL related schemas. This improves performance and reduces dependencies on schemaLocation attribute values. Added a new schema for XML Schemas. It is based on the schemas issued with the XML Schema specifications and is available from the XBRLAPI website.

3 June. 2011

Completed migration to using TestNG for unit testing.

Significantly refactored the unit testing code to improve the ability to run the tests in parallel. This particularly affected the units test of the data store implementations.

2 June. 2011

Added unit tests and made sure they all pass for the embedded eXist data store implementation.

Began migration to using TestNG for unit testing.

1 June. 2011

Created new embedded eXist data store implementation. It still needs a lot of work!

Removed JUnit test suites in preparation for migration to JUnit 4.X.

Cleaned up obsolete JAR dependencies.

Improved the handling of XML serialization throughout the API by using the org.w3c.dom.ls.LSSerializer interface instead of deprecated XML serializers.

Fixed a bug in the relationship persistence functionality that prevented the API from detecting relationships to locators with invalid href attributes (ones that do not link to an external XML resource).

31 May. 2011

Modified the StorerImpl to enable the persistence of relationships to work in the eXist data store as well as in other data stores.

Improved the efficiency of the eXist data store implementation based on comments from R. Oldenburg.

30 May. 2011

Modified the index configuration for the eXist data store to reflect usage of eXist 1.4.

31 January. 2011

Added the org.xbrlapi.Instance#getFacts(URI, String) method to get all facts with a given namespace and name from an XBRL instance.

Added the org.xbrlapi.Instance#getFacts(org.xbrlapi.Concept) method to get all facts for a given concept0 from an XBRL instance.

Similar methods were added to the org.xbrlapi.data.Store interface to enable facts to be retrieved across all instances.

13 December. 2010

Revised the aspect value caching system to make it clearer and to ensure that it refreshes appropriately.

7 December. 2010

Added ability to analyse domain member usability.

2 December. 2010

Added new static methods to the Hypercube implementation to analyse the hypercubes that are inherited by a given concept.

Added new dimension retrieval capabilities for hypercubes.

29 November. 2010

Fixed bugs in the period aspect value implementation so that instant periods are properly handled. Improved the period aspect value labelling system.

Simplified the non-fragment XML resource constructors to only use the builder when necessary.

Added a new entity resolver constructor to make it easier to generate an entity resolver using an existing cache.

Changed Indexes to Indices in some method signatures.

11 November. 2010

Added Apache commons lang library version 2.5 to the set of project dependencies. This library supports simplified handling of string escaping for XML/HTML/XHTML etc. This improves the intelligence with which non numeric values with escaped and unescaped XHTML content can be handled, as well as improving the handling of XHTML labels.

10 November. 2010

This is a red-letter day. Finally, the SAX parser is doing XML Schema validation of documents as they are loaded into the data store. This modifies input data based upon XML schema default values and data types, substantially simplifying things like getting semantic matching done on entity identifiers. It means that the original documents cannot be recovered in a form that is syntactically identical to the form that they were obtained in. This limitation is deemed to be less significant than reaping the benefits of XML Schema based modification of data values based on defaults and data types.

9 November. 2010

Fixed a bug in the retrieval of entity aspect value labels that was preventing generic labels for entity identifier resources from being detected.

8 November. 2010

Extended range of SEC RSS feed data that is extracted by the SEC Grabber.

Fixed a bug in the analysis of scenarios in dimensional aspect models. If you have a version of the 5.3 file release, that was downloaded before 8 November, 2010, get a new copy that addresses this bug.

5 November. 2010

Prepared for 5.3 file release.

Updated to eXist version 1.4.

Migrated the new alternative aspects package to the usual org.xbrlapi.aspects package, deleting the previous version of the aspects package. The changes significantly enhance the speed with which aspects are handled, as well as ensuring that aspect values are comparable at a semantic level, just based on their ID properties. Some work will be required to migrate existing aspect model code to use the new aspect model designs. Added new methods to the org.xbralpi.aspects.FactSet interface to enable selection of a subset of facts in the set that match a collection of aspect values.

21 October. 2010

Added a new database cache size option for the load example to assist Elizabeth Blankespoor with troubleshooting her MS Windows installation of the XBRLAPI and the Oracle Berkeley XML database.

20 October. 2010

Improved the handling of XHTML content in mixed XLink resources by adding a new specific method for accessing that content. Also renamed the getContent method to make it more specific to its function.

24 September. 2010

Added aspect value pair XML resources to the API so that it is possible to persist information about fragments and the values that they have for aspects. This is useful in improving performance of aspect analysis for facts, contexts, units etc.

Note that this is one more small step along the path toward translating XBRL information into a series of RDF triples.

23 September. 2010

Fixed a bug in the analysis of XML Schema type derivations. The bug prevented recognition of types being "derived" from themselves.

29 July. 2010

Fixed bug in the cache handling of MS Windows File Scheme URIs. The conversion back from the cache file to the original URI was leaving off the drive letter. This problem was identified by Raghavendra Sidhanti.

26 July. 2010

Fixed various bugs identified by unit tests in relation to xml:lang attribute handling. Eliminated the getLanguage() method from the Resource interface and implementation becuase it is a naive poor-cousin version of the getLanguage() method available from the Fragment interface and implementation.

21 July. 2010

Modified the getLabels method of the BaseStore implementation to better handle null selection criteria for resource roles and link roles and language codes. Made the same changes for reference resource retrievals also.

20 July. 2010

Changed the fragment builder to add XML namespace attributes using the setAttributeNS method so that they are treated as having QName names. The previous approach was intended to work around some software with peculiar handling of attributes in the XML namespace.

14 July. 2010

Added new alternative aspect value labelling system. Added new XLink unit resource to facilitate human readable labelling for XBRL unit measures.

29 June. 2010

Added new org.xbrlapi.Concept interface method to get facts that are children of XBRL instances - referred to as root facts.

22 June. 2010

Finished off the core components of the alternative Aspects implementation. This implementation is intended to be lighter weight and better suited to manipulation in more traditional database structures rather than only in XML databases.

3 June. 2010

Added method to enable testing for fraction items at the fact interface level.

Added method to enable testing for for substitution group heirarchies at the ElementDeclaration interface level.

14 May. 2010

Simplified implementation of getMinimumDocumentSet method for the base Store implementation.

14 May. 2010

Added in new methods to retrieve the XLink structures using a given custom role type.

13 May. 2010

Changed the Networks#getNetworks(URI) to return a Networks object rather than a list of networks.

Added new method to get child fragments of a given type. Deprecated the old method in the Store interface.

6 May. 2010

Added new methods to the period fragment interface to enable clear distinction between dates and dateTimes and dateTimes with and without timezone information.

5 May. 2010

Added new methods to retrieve Calendar objects for start and end dates and instants, all adjusted for XBRL 2.1 specification features.

3 May. 2010

Made the org.xbrlapi.Measure Comparable so that unit numerator and denominator measures could have a natural ordering.

Made the entity identification scheme a real URI rather than a string.

21 Apr. 2010

Added new method to the Store interface to count XML resources with a given type.

Added a getAllFacts method to the data store to allow retrieval of all facts (root level and those that are children of tuples).

15 Apr. 2010

Simplified the handling of serialization.

15 Mar. 2010

Added source fragment URI and target fragment URI data to relationship XML resources.

Modified the Linkbase#getExtendedLinks method to return the empty list rather than null if the linkbase contains no extended links.

11 Mar. 2010

Added new convenience methods to get sets of fragment indices from the data store.

2 Mar. 2010

Added a getConceptCount method to the org.xbrlapi.Schema interface.

Added the getImporters method to the .xbrlapi.Schema interface.

25 Feb. 2010

The org.xbrlapi.Fragment#getLanguage() method now works for any node in a fragment and it handles language code inheritance through the XML heirarchy.

7 Dec. 2009

Added a new history tracking system for loaders so that it is possible to reload the documents in a data store while preserving the document identifiers used in the initial loading process.

27 Nov. 2009

Fixed a bug in the linkbase fragment implementation that prevented retrieval of the child extended links in the linkbase.

25 Nov. 2009

Aligned constant URI syntax in XDT module with the URI syntax for constants in the utilities module.

24 Nov. 2009

Fixed a problem with determining if a location aspect value has a parent location aspect value when the location aspect value is for a fact that is contained within a tuple.

Changed getAxisAspects method on the AspectModel interface to always return a list. The list is empty if the axis has no aspects in the aspect model.

23 Nov. 2009

Changed label retrieval methods for aspects to make them uniform across all aspect implementations. Added new linkbase methods to analyse the extended links contained in them.

10 Nov. 2009

Made aspects record facts with missing aspect values rather than ignoring them.

9 Nov. 2009

Improved the handling of the dimension aspect labelling to exploit XBRL labels for such dimensions.

5 Nov. 2009

Added aspect label method so that labels can be provided that identify aspects.

Changed the getMatches method of the org.xbrlapi.aspects.Aspect interface to throw an exception if the aspect does not have an aspect value as the matching criterion.

Fixed a bug in the DimensionalAspectModel that prevented facts from having their dimensional aspect values recorded properly as new dimensional aspect values were discovered.

3 Nov. 2009

Made the org.xbrlapi.Concept#getPeriodType method return null for tuple concepts instead of throwing an exception.

Prevented the org.xbrlapi.Concept#isNumeric from tripping up on Tuple concepts.

30 Oct. 2009

Added means of getting fragments linking to a specified URI to the store interface.

29 Oct. 2009

Added the ability to test if concepts and type declarations are XBRL numeric item data types.

Added a method to the aspect model interface to enable retrieval of all aspect values (one per aspect in the model) for a given fact.

27 Oct. 2009

Added convenience methods to the org.xbrlapi.Fragment interface to support better analysis of fragment hierarchies within XML documents as opposed to XLink relationship networks.

Added new methods to the org.xbrlapi.aspects.AspectValue interface to support more sophisticated handling of hierarchies of values for a given aspect.

26 Oct. 2009

Standardised handling of missing aspect values. This became a big deal once tuples were allowed within aspect models and the location aspect was introduced. Added a new getLabels method for fragments to make it easier to have graceful fall back if first preferences for languages and label role are not able to be fulfilled.

22 Oct. 2009

Tuples are now treated as facts in aspect models.

Fixed a glitch in the tuple/fractionItem identification logic to prevent tuples within tuples from causing their parent tuples to be identified as fraction items.

21 Oct. 2009

Changed method names for the org.xbrlapi.aspects.AspectModel interface to replace the word dimension with the more consistently used word Axis.

20 Oct. 2009

Sorted out tuple identification and fraction item identification so that it works always. Also made fraction item methods robust to all kinds of perverse fraction items that restrict the fraction item type and rename the numerator and denominator elements in fraction items.

Enhanced location aspect handling in aspect models and simplified aspect value validation logic by adding a new version of the org.xbrlapi.XML#isa() method to take a class as an argument rather than a class name.

19 Oct. 2009

Fixed a bug in tuple detection.

8 Oct. 2009

Added method to the org.xbrlapi.cache.Cache interface to allow retrieval of a list of the URIs contained in a the cache directory corresponding to a given URI or in any of that directory's descendant directories. This can be a quick way to reload data into a data store. It is also useful if you want to unzip a set of taxonomy files directly into the cache, effectively faking their publication on the internet, and then loading the files that you have added directly to the cache.

25 Sep. 2009

Created a new Oracle Berkeley XML Database store constructor that gives users control over the cache size of the database.

18 Sep. 2009

Made the getReferencingItems method of the org.xbrlapi.FactDimensionContainer interface generic so that you can specify if the items are numeric (helpful for units for example).

Added new methods to the org.xbrlapi.Schema interface to support retrieval of all global complex and simple type declarations and to support retrieval of any named global declaration.

Added new methods to the org.xbrlapi.TypeDeclaration interface to support finality analysis and to support analysis of type derivation paths.

Fixed a bug in handling of QNames with no namespace prefixes when looking up QName namespaces via the org.xbrlapi.Fragment interface.

14 Sep. 2009

Modified the cache loading utility example to load a part of a cache rather than the whole cache. This provides a nice way of testing before publication of a taxonomy by copying it to a place in the taxonomy cache and then loading from there rather than from the prospective publication location.

Modified the org.xbrlapi.Instance interface to provide a range of new methods that reduce the computational burden involved in summarising the information contained in an XBRL business report.

10 Sep. 2009

Added new getTuples method to the org.xbrlapi.Instance interface to enable retrieval of all tuples that are children of the root element of the XBRL instance.

9 Sep. 2009

Fixed a bug, identified by Karel Arkema, in the org.xbrlapi.data.BaseStoreImpl#getTuplesFromInstances(List) method. This now ensures that tuples are correctly identified.

Fixed a bug in the relationship persistence behaviour of the Loader discover method that prevents analysis of relationships where the related fragments have not all been discovered yet.

Made the Transformer classes within Aspects public so that they can be accessed and customised.

Created a new utility example that loads all of the documents in a specified taxonomy cache location.

7 Sep. 2009

Added methods to the org.xbrlapi.Fragment interface that enable access to the XPointer expressions that could be used to reference the root element of the fragment.

Changed the method signatures for the Resource methods that retrieve the name of the language used for an extended link resource.

25 Aug. 2009

Started work on fleshing out an enhanced XML Schema fragmentation system to allow deeper analysis of XML schema content model declarations.

21 Aug. 2009

Fixed a bug in simple link traversal to ensure that matching URIs are taken care of behind the scenes. Previously a simple link to a duplicate document would show up as being broken, implying that the DTS has not been fully discovered.

20 Aug. 2009

Made the org.xbrlapi.SimpleLink#getTargetDocumentURI() method public.

18 Aug. 2009

Added new methods to the org.xbrlapi.networks.Networks interface to enable all relationships from or to a given fragment to be obtained for all networks in the set of networks.

13 Aug. 2009

Added new transient part of store state to keep track of the set of loaders that are currently loading data into the store. This enables loaders in different threads to co-ordinate their relationship persistence activities. Added new getSourceIndices method to the Store interface. Added methods to facilitate more efficient handling of concept analysis in terms of the facts for that concept.

11 Aug. 2009

Added new method to access a map of language names from a data store. Changed the getLanguage method to getEncoding for Language fragments. Added a new class to facilitate rapid analysis of language encodings and names.

7 Aug. 2009

Added new org.xbrlapi.impl.LanguageComparator method that compares Language fragments based on their codes and then the language names.

4 Aug. 2009

Added new method: org.xbrlapi.data.Store#getRootFragments(String). This provides access to document root fragments of a given type. It is useful for retrieving all schema root elements or all XBRL instance root elements.

3 Aug. 2009

Made the arcrole and linkrole parameter orderings for methods consistent for the networks and the data packages. Extended network related unit tests to check consistency. Added a new utility example that enables investigation of relationship properties for a specified document fragment in the data store.

1 Aug. 2009

Refined the org.xbrlapi.data.Store#getConcept method to use a single XQuery. This should improve performance. Fixed a bug in the retrieval of the data root element for fragments being built. The code used to just return the container element for the data root element for such fragments. Modified the handling of xml:lang attributes for XLink resources, copying inherited values onto the resource element itself. This makes for much faster querying and fixes a bug in the handling of the xml:lang attributes where previously inherited attributes were not being detected.

31 Jul. 2009

Modified the org.xbrlapi.Measures interface to capture the measure QName prefix as a measure property. This changes the implementation constructor. Added an additional example utility showing how to analyse units of measurement in an XBRL instance. Added new unit test for Oracle Berkeley XML database handling of multiple namespace prefix declarations for the one namespace. Fixed a problem in capturing namespace prefix declarations when the prefix is not used for an attribute or element and where the namespace being given the prefix is being used for an attribute or element.

28 Jul. 2009

Moved the DBConnection implementation to be an inner class of the eXist store implementation. Cleaned up the eXist store deletion method.

27 Jul. 2009

Eliminated the org.xbrlapi.networks.Relationship interface and implementation, replacing it throughout with the very similar but more complete org.xbrlapi.PersistedRelationship interface and implementation. Created additional org.xbrlapi.networks.Analyser implementations to filter relationships in various ways (all relationships or all relationships that are not marked as being prohibited on the arc declaring them). These alter the results relating to network methods for data stores that use persisted relationships.

21 Jul. 2009

Made most classes serializable. Introduced axes in place of dimensions in aspect models to avoid clashes with XDT dimensions. This causes backward incompatibility of the API but eliminates bugs in the dimension aspect implementations.

16 Jul. 2009

Added arc URI to the information persisted for each relationship. Added in persisted error information capture using the data store to track problems as they arise during persistence of relationships. Added Freemarker to the list of dependencies in the examples Maven POM file.

14 Jul. 2009

Simplified the org.xbrlapi.utilities.Constants class to use java.net.URI rather than strings for all URI constants. Refined the treatment of type="none" XLink attributes to ensure that such elements were not treated as XLink elements.

8 Jul. 2009

The examples have been repackaged, debugged, and extended to include a number of new data store maintenance utilities.

30 Jun. 2009

Finalised a broad range of modifications to the relationship persistence code; document matching performance improvements; 0 and the XPath 2.0 to XQuery 1.0 query language change.

18 Mar. 2009

Enabled the loader to augment persisted relationships upon successful completion of a document discovery process if the resulting data store contains a complete DTS (so that all relationship networks can be analysed without running into missing fragments). Finalised the persisted relationship rendering example.

11 Mar. 2009

Changed the methods retrieving active relationships from a network for a given source or target fragment to return a sorted set of relationships, sorted by order rather than a standard list of relationships. Eliminated the FragmentList interface and implementation. This is now done with standard Java collections.

10 Mar. 2009

Changed the getOrder method of the Arc fragment interface to return a Double rather than a String.

26 Feb. 2009

Eliminated the XBRLStore interface and implementation, merging the functionality back into the base store interface and implementation. This is a precursor to refactoring all network analysis code into the data store implementations and out of the fragment implementations so that data store specific optimisations are easier to exploit. Added a new method for Networks to allow two Network collections to be merged. Added more methods to get references for fragments. Removed remaining fragment data modification methods. Eliminated network analysis methods from the fragment interface, pushing responsibility for such operations to the store so that the store can optimise network analysis in various ways.

24 Feb. 2009

Completed a first cut of a network analyser that enables interaction and analysis of persisted networks of relationships. A lot of methods are available to facilitate easy interaction with labels and references.

20 Feb. 2009

Modified Store to provide a wider range of query options and to make query processing more efficient. Added a new store query method that returns the number of results generated rather than the actual results. Adjusted string and indices queries to work with sets rather than lists for efficiency purposes. Adjusted the getArcroles and getLinkroles methods of the XBRLStore to work with sets rather than lists for efficiency purposes.

19 Feb. 2009

Changed the store method names in the org.xbrlapi.data.Store interface. Continued modifying method signatures to use URI instead of String whereever pFree Open-Source Softwareible. Completed a first cut of the Storer interface and implementation for persisting active network relationships in the data store. This should facilitate more efficient network analysis in some circumstances by enabling the cost of network analysis to be handled in a once off operation prior to the interactive analysis of the data.

18 Feb. 2009

Additional changes to method signatures to pass URIs where possible instead of strings. Corrected bugs in the UsedOn fragment subclass to ensure that inherited methods are not overridden in manners that contradict their intent.

17 Feb. 2009

Refactored fragment interfaces to distinguish document fragments from other kinds of XML resources in the data store. This is needed to retain clarity now that a broader range of information about relationships is stored directly in the data store.

12 Feb. 2009

Made the loader process able to handle all kinds of exceptions during the parsing process without causing the document discovery process to be derailed or the document cache or data store to be corrupted. Improved the efficiency of the document queue for data loading to improve the performance when loading very large numbers of documents.

11 Feb. 2009

Added new queryForString and queryForStrings methods to the org.xbrlapi.data.Store interface and all implementations thereof. Modified the in-store URI matching to ensure that a signature only needs to be computed once for each document in the data store.

28 Jan. 2009

Modified additional function signatures to work with URI arguments rather than string representations of URI arguments. Added loader focussed unit testing for loading of duplicate resources.

26 Jan. 2009

Changed the loader's document queue to be a map from URIs to load status rather than from String representations of URIs to load status to enable better analysis of URI equality. Modified the data store to keep track of reasons for documents not being loaded when storing the loader state. This enables robust handling of situations where documents that should be in the DTS are have IO problems or have SAX parsing problems.

1 Jan. 2009

Created the local test data file release.

31. Dec. 2008

Replaced usage of URLs with URIs throughout the API. This was done to get better uniformity of handling of URLs and to take advantage of the better handling of different schemes in the java.net.URI interface compared to the java.net.URL interface. This change does cause significant backward compatibility issues. However, it is expected to resolve the ongoing problems that have been encountered when working with file-scheme URLs. Improved the network processing efficiency of the rendering example. Incorporated improvements to the Freemarker template file from Walter Hamscher.

10 Dec. 2008

Fixed the NPE bug in the handling of processing instructions that come before any markup in an XML document. Fixed missing class files in the examples JAR.

9 Dec. 2008

Added in XDT aspects and dimensional aspect model to the XDT module.

5 Dec. 2008

Changed the getAttribute methods of the Arc fragment interface to return null if the arc does not have the specified attribute rather than throwing an exception.

4 Dec. 2008

Added new methods to better handle analysis of presentation networks and to provide a more complete range of network construction methods. Added the new org.xbrlapi.networks.Network#complete method to allow for a network to be completely constructed in a single call.

24 Nov. 2008

Fixed NPE in the method to get denominator measures for an org.xbrlapi.Unit that does not have a denominator. Created the first XDT file release.

22. Nov. 2008

Fixed up the usage of the isNil method to use nil rather than nill and to be for facts rather than just items. Added a measure interface and implementation to handle measures in unit fragments. This makes it easier to access resolved measure QNames in numerators and denominators. This also causes backward incompatibility issues for some methods of the org.xbrlapi.Unit interface.

21 Nov. 2008

Made the getNetworkRoots method of the XBRLStore a generic method and ensured that it does not return locators.

20 Nov. 2008

Fixed a bug in the Fragment implementation relating to getting the local name from a QName. QNames without a prefix were not handled correctly. Squeezed more performance out of the method to get the labels for a fragment. Some new constants have been defined.

19 Nov. 2008

Added a new org.xbrlapi.aspects package to handle Aspect model population with facts. Aspect models can be loosely thought of as sparse hypercubes. They are very very useful!

14 Nov. 2008

Created the first examples file release.

19 Aug. 2008

Enabled the getFragments method to use a fragment class name rather than just part of the fragment interface name. This makes the method more able to work for fragment classes that are implemented in packages outside those in the core XBRLAPI fragment implementation package.

18 Aug. 2008

Added methods to the base store implementation to enable a store to limit query results to those fragments in the documents with a specified set of URLs. Changed the query methods for the various store implementations to filter query results if the store knows of a list of URLs to use in filtering query results. Implemented new store methods to determine the documents that directly reference and that are directly referenced by a given document based on link analysis.

7 Aug. 2008

Changed the org.xbrlapiSAXHandlers package name to org.xbrlapi.sax. This is not a backward compatible change and code using the XBRLAPI may need to be adjusted.

6 Aug. 2008

Removed the element depth from the set of state information tracked by the SAX content handler for the loader, the loader itself and the XBRL XLink handler. This was done by relying instead on tracking the ElementState during SAX parsing. Added Attributes to the parameters of the XLink processor's endElement method. Added the ElementState class to the org.xbrlapi.xlink package to provide basic infrastructure for tracking attributes and making them available to the endElement method in SAX content handlers that are using the XLink processor.

30 Jul. 2008

Fixed bug in queries to get network roots. Fixed bug in caching on Windows. Removed non-functional set methods Released version 3.1 Eliminated several memory leaks in the Oracle Berkeley XML data store.

April 16 2008

Fixed up eXist unit testing to reflect changes in the XBRLAPI itself. Added a range of new constants for the XBRL role and arcroles.

10 Apr. 2008

Added resource matcher facility.

12 Mar. 2008

Changed the fragment index generation system. This makes it easier to work across several data stores.

25 Feb. 2008

Discovery of documents provided as a string now works correctly. QName lookups for fragments is faster and always works. Network construction works for networks of various types of labels.

25. Oct. 2007

Fixed up a bug in Arc instantiation that was preventing them from being stored in the database. The bug was introduced during the redesign of the fragment constructors.

24 Oct. 2007

Added the getFacts method to the concept implementation. Added the isNumeric method to the fact implementation.

16 Oct. 2007

Modified the fragment factory to call the setFragmentIndex method when generating new fragments. October 16, 2006 Streamlined the DTS discovery process to eliminate all post processing of XLink materials. Enabled eXist data store to also operate in embedded mode, significantly enhancing performance.

17 Sep. 2007

Modified fragment implementations to make all fragments JavaBeans. Serialization of fragments, builders, and stores is yet to be implemented.

5 Sep. 2007

Eliminated non-working attempts to insert DTD declarations into data store fragments. Added a new getDeclaration method for reference part fragments. Fixed a bug in the removeFragment implementation for the DOM data store whereby the removed fragments were not getting taken out of the XML DOM structure, only the maps onto that DOM structure. Added the deleteDocument and deleteRelated document methods to the store interface. Provided implementations of these methods in the BaseStoreImpl class. Created tests of the methods using the DOM data store.

4 Sep. 2007

Added BDB XML indexing of the arcroleType and roleType URI attributes. Added ability to recognise generic labels and references as standard labels and references, respectively. Added the isProhibited method to arcs.

1 Sep. 2007

Added a method to get linkroles that contain arcs using a specified arcrole.

15 Aug. 2007

Added getSimpleLinks method to the fragment interface to get the child simple links of any fragment. Checked unit tests against the latest cut of the XBRL 2.1 conformance suite. Enabled caching for documents provided to a loader as a string rather than a URL. This fixed a bug in the XML Schema grammar construction for schemas provided as a string to the loader. Fixed a database deletion problem in the Xindice tests that arose because of multiple simultaneous stores using the same database. Provided a new getChildFragments method of the data store to enable retrieval of all child fragments with a given data type.

14 Aug. 2007

Enabled the discovery processes to optionally include analysis of XSI schema location attributes. Added schema method to enable discovery of extended links contained within the schema.

11 Aug 2007

Added new discoverNext method to the loader implementation to enable intervention in the load process between each document that gets parsed. Added unit tests of the discoverNext method using in-memory and persistent data stores.

9 August, 2007

Added unit tests to cover discovery of reference part declarations.

8 Aug. 2007

Fixed bug in the SimpleLink#getTargetFragment where href attributes without an XPointer would generate a query that did not restrict matching fragments to the document root. Extended the set of nodes in a data store that are indexed for equality matching for the BDB XML database implementation. Added getImports and getIncludes methods to the Schema fragment API. Added unit tests to cover schema imports.

July 29, 2007

Added new objects to provide functionality at the level of individual relationships and networks of relationships. Fixed up NPE bug in the hasFragment method of the eXist data store.

May 21, 2007

Fixed up omission of class files from the JAR file.

March 23, 2007

Created the api module by splitting out the non-DOM data store implementations and by splitting out the XLink, XMLBase and XPointer packages.

October 02, 2006

Completed implementation and testing of read-access fragment API.

September 25, 2006

Fixed up the Exist indexing. Added a lot of fragment interface implementation. Merged the data and metadata collections. Fixed up the Jar file manifest to make the -jar file option work from execution at the commandline.

September 14, 2006

Added in the patch from Henry S Thompson to support XLink 1.1. Improved usability from the command line. Extended the implementation of the fragment.

August 10, 2006

Implemented the data store using eXist and using an XML-DOM object. These are alternatives to the Xindice data store implementation.

July 29. 2006

Created the Oracle Berkeley Database XML data store module. Created the core utilities module that is required by all other modules.

March 23. 2006

Created the eXist module by splitting it out from the xbrlapi. This limits XBRLAPI dependencies on eXist to those users choosing to use eXist as the data store implementation.

December 11, 2005

Version 1.0 of the XPointer processor released.

December 9. 2005

Fixed errors in the previous release. Updated the API to handle XPointers. Added early support for the eXist database.

July 23. 2005

Initial cut of the XBRL API source code. Operational version of the XML Base resolver.

May 6, 2005

Initial cut of XLink processor. Initial cut of XML Base resolver.

Get Java XBRL API implementation at SourceForge.net. Fast, secure and Free Open Source software downloads