Repository navigation
Design
There is no schema for SVG 1.1, only a fairly idiosyncratic DTD. The JAXB reference implementation can't handle the complexities, so Eclipselink Moxy has been selected as the binding framework. Jackson was another possibility, but it can't cope with the free-for-all structure that the DTD allows.
The Moxy bindings will use the external bindings file, rather than the JAXB annotations. This allows some more complicated binding patterns to be used (e.g. to support/simulate multiple inheritance of interfaces), and keeps the source code clean.
The Foxglove domain objects will not directly extend JavaFX classes, but rather will support factory interfaces to create the JavaFX objects. This allows the XML classes to create their own inheritance hierarchy. There is a mostly one-to-one correspondence between the Foxglove classes and their JavaFX equivalents, but there are some places where more complex mapping is required. For the majority of SVG usage, there will typically be a direct mapping of the SVG elements to JavaFX nodes.
The root element SvgGraphic (bound to the element in XML) will create a JavaFX Region. It can optionally implement a fixed size region, based on the viewBox attribute of the element, or else fit to the overall size of its child components.