Release Notes GraphML Extension Package
GraphML 3.0.3 is the latest version of the yFiles XML extension package.
Technical Requirements
- Graph visualization library yFiles 2.5 and Sun Microsystems J2SDK 1.4 or higher is needed for software development.
- In order to browse the documentation use Microsoft Internet Explorer 6.0 or higher or Mozilla Firefox 1.5 or higher.
GraphML 3.0.3 - Changes Since 3.0.2
Incompatible API Changes
Bugfixes
- Fixed poor rendering performance of inlined images for JRE >= 1.6.
- Label model
edge_oppositewas not handled correctly. - XML namespace for core GraphML elements is determined automatically on parsing. This fixes problems with varying namespace declarations for these elements.
- Fixed indentation problems for several XML implementations.
- Made node order for output consistent in nested graphs.
- Fixed broken XSL stylesheets for XMLXSLIOHandler.
GraphML 3.0.2 - Changes Since 3.0.1
New Features
- Icons for labels are supported now.
- Icons for source and target ports are supported now.
Incompatible API Changes
- Class GraphicsSerializationToolkit: Several methods have been deprecated and superseded by context aware overloads.
Bugfixes
- Fixed invalid attribute exception when ImageNodeRealizers with active alpha channel are used.
- setReadEmbeddedResources: Value has been ignored for most input handlers. This has been fixed.
GraphML 3.0.1 - Changes Since 3.0
New Features
- .NET compatibility classes don't depend on Graph2D anymore.
- A custom .NET compatibility I/O handler has been added.
- Several new callback methods have been added to GraphMLIOHandler for easier customization.
Incompatible API Changes
- Interface XmlWriter: new methods writeAttribute and writeDocumentFragment.
Other Changes
- Classes in yext.graphml.graph2D don't throw exceptions when used together with other Graph implementations than Graph2D.
- Default RealizerSerializers can be retrieved through getFallbackRSM.
- Added convenience method addNamespace.
Bugfixes
- AttributeOutputHandler writes an empty element when null values are encountered.
- Added workaround for wrong yFiles extension namespace that has been written by some GraphML releases.
- Invisible line color for edges was not parsed correctly.
- Attributes with same name, but different scopes are now handled correctly.
GraphML 3.0 - Changes Since 2.4.2
New Features
- New interface XmlWriter for structured XML output.
- Support for embedded resources, used in class ImageNodeRealizerSerializer.
- Support for element ID persistence through interfaces IdAcceptor and IdProvider.
- GraphMLIOHandler now supports instance specific registration of
RealizerSerializers. - Support for .NET style layout information in package yext.graphml.compat.
- Framework support for
<port>elements. - Support for
<graphml>and<port>scopes. - Fine grained error handling through interfaces GraphMLParseErrorHandler and GraphMLWriteErrorHandler, together with exception nesting in GraphMLParseException.
- Classes GraphMLParseContext and GraphMLWriteContext implement new interface Lookup, which allows to carry arbitrary information through the (de)serialization process.
- Much more namespace awareness.
- Precedence for DOMInputHandler is now used for all scopes.
- GraphMLIOHandler: new properties for the new features, overloads for
readandwritemethods to read/write to different data sources/targets. - The schema definition has been updated to reflect the aforementioned changes and additions.
Incompatible API Changes
-
Class
org.graphdrawing.graphml.writer.IndentPrintWriterhas been removed and replaced by interface XmlWriter. -
Interface OutputHandler and implementing classes:
- Methods
getKeyAttributes,getDataAttributesreplaced by printKeyAttributes and printDataAttributes, respectively. -
All method signatures have been changed to
org.graphdrawing.graphml.writer.GraphMLWriteContext,org.graphdrawing.graphml.writer.XmlWriterandvoidreturn value.
- Methods
- Class AbstractOutputHandler: Changed signature of printDataOutput.
- Interface XMLAttributesProvider: All
getXXXAttributesmethods replaced by correspondingprintXXXAttributesmethods. - Interface XMLAttributesParser: Added method parsePortAttributes.
- Class GraphicsSerializationToolkit: All signatures that used
org.graphdrawing.graphml.writer.IndentPrintWriternow use XmlWriter instead. - Interface GraphElementProvider:
- Indexed access to graph elements in methods
getNodeObject(int),getEdgeObject(int),getHyperEdgeObject(int),getEndpoint(java.lang.Object, int)has been replaced by iterators getNodeObjects, getEdgeObjects, getHyperEdgeObjects, getEndpointObjects. - New methods getSourcePort, getTargetPort, getPortObjects.
- Indexed access to graph elements in methods
- Interface GraphElementFactory: changed signature of createPort.
- Classes DOMGraphMLParser and DirectGraphMLWriter: Multiple interface changes to adapt for other API changes.
- Interfaces NodeRealizerSerializer and EdgeRealizerSerializer and implementing classes: Signature changes for write and writeAttributes, new methods canHandle, canHandle, createRealizerInstance, getNamespaceURI, getNamespacePrefix. The abstract base classes AbstractNodeRealizerSerializer and AbstractEdgeRealizerSerializer provide backward compatible implementations for these methods.
-
Classes AbstractNodeRealizerSerializer and
AbstractEdgeRealizerSerializer: methods
setWriteSelectionStateEnabled(boolean)andisWriteSelectionStateEnabled(boolean)have been moved to class GraphMLIOHandler. - Class GraphMLParseContext is now abstract.
- Class PostprocessorOutputHandler: Method
getPostprocessorsString(y.base.Graph)has been removed, instead call printDataOutput directly. - Class XMLXSLIOHandler: changed all IOHandler method parameters to GraphMLIOHandler.
Deprecated Classes and Methods
- Class GeomGraphMLIOHandler has been deprecated.
- Adding a scoped DOMInputHandler with addInputHandler has been deprecated.
- Class GraphMLIOHandler: Static methods addEdgeRealizerSerializer and addNodeRealizerSerializer have been deprecated, use class RealizerSerializerManager instead for instance specific registration. This also applies to classes ReadNodeRealizerHandler, ReadEdgeRealizerHandler, WriteNodeRealizerHandler and WriteEdgeRealizerHandler.
Other Changes
-
Class DOMGraphMLParser as well as all
RealizerSerializerimplementations implement strict namespace handling. Therefore, documents with incorrect namespace declarations for the core GraphML namespace and/or the yFiles extensions won't be parsed correctly. - Adding a scoped DOMInputHandler with addInputHandler has been deprecated and won't use the scope at all. Scope filtering must now be implemented exclusively through acceptKey. The same applies to getInputHandlers which has been replaced by unscoped method getInputHandlers.
- By default, class ImageNodeRealizerSerializer reads the embedded image resource if both resource and image URL exist. This behavior can be changed with setReadEmbeddedResources.
- By default, ReadNodeRealizerHandler and ReadEdgeRealizerHandler always parse realizer geometry, even if no RealizerSerializer for the XML node could be found. This can be changed by supplying an own implementation of GraphMLParseErrorHandler to GraphMLIOHandler.
- By default, GenericNodeRealizerSerializer and GenericEdgeRealizerSerializer use a default configuration if no matching configuration could be found. This can be changed by supplying an own implementation of GraphMLParseErrorHandler to GraphMLIOHandler.
- DOMGraphMLParser correctly handles multiple
<data>tags with identical keys for the same attribute owner.
Bugfixes
- Bugfix for wrong interedges in nested graphs.
- Schema fixes for new attributes in yFiles 2.5.
- Updated included schemata to the newest version from http://graphml.graphdrawing.org.









